operating systems
provides an environment for execution of programs and services to programs and users
user interface
program execution
i/o operations
file-system manipulation
communications
error detection
Enumerate a set of operating services that may help the user
resource allocation
logging
protection and security
Enumerate a set of operating services that ensures efficient operation of the system itself
logging
used to keep track of which users use how much and what kinds of computer resources
protection
involves ensuring that all access to system resources is controlled
security
requires user authentication from outsiders.
command line interpreter
allows direct command entry (it fetches user commands and executes them)
user operating system interface - GUI
User-friendy desktop metaphor interface
touchscreen interfaces
actions and selection based on gesture
virtual keyboard for text entry
voice commands
system calls
programming interface to the services provided by the OS
system-call interface
maintains a table indexed according to the numbers associated with each system call
system call interface
invokes the intended system call in OS kernel and returns status of the system call and any return values
pass the parameters in registers
pass block addresses as a parameter in a register (the blocks contain the parameters)
parameters placed onto the stack by the program and popped off the stack by the operating system
three general methods used to pass parameters to the OS
process control
file management
device management
information maintenance
communications
protection
types of system calls
debugger
used for determining bugs, single step execution
locks
used for managing access to shared data between processes
system programs
provide a convenient environment for program development and execution.
file manipulation
status information
programming language support
program loading and execution
communications
background services
application programs
system programs can be divided into:
file management
create, delete, copy, rename, print, dump, list, and generally manipulate files and directories
registry
used to store and retrieve configuration information
communications
provide the mechanism for creating virtual connections among processes, users, and computer systems
background services
known as services, subsystems, daemons; they provide facilities like disk checking, process scheduling, error logging, printing
relocatable object file
source code compiled into object files designed to be loaded into any physical memory location
linker
combines these (relocatable object files) into single binary executable file and brings in libraries
loader
programs residing on a secondary storage as a binary executable must be brought into memory by ___ to be executed
dynamically linked libraries
____ ____ ____ are loaded by modern general purpose systems
Application Binary Interface (ABI)
is architecture equivalent of API, defines how different components of binary code can interface for a given operating system on a given architecture, CPU, etc.
policy
refers to what needs to be done (in the context of designing and implementing an OS)?
mechanism
how to do something (in the context of designing and implementing an OS)?
false
it makes it easier to port but slower in performance
true or false: OS implementation utilizing a more higher-level language makes it hard to port but faster in performance
UNIX
utilizes a monolithic structure
limited by hardware functionality
its original version had limited structuring
system programs
the kernel
Two inseparable parts of the UNIX OS
monolithic plus modular design
the linux system structure
layered approach
is an OS implementation/approach that divides the OS into a number of layers (levels), each built on top of lower layers. The bottom layer (layer 0), is the hardware; the highest (layer N) is the user interface.
microkernels
an OS implementation that moves as much from the kernel into the user space.
message passing
communication in microkernels takes place between user modules using ___ ____
loadable kernel modules (LKMs)
uses object-oriented approach
each core component is separate
each talks to the others over known interfaces
each is loadable as needed within the kernel
bootstrap loader, BIOS
the ___ ____, ____, stored in ROM or EEPROM locates the kernel, loads it into memory, and starts it to boot the system
debugging
is finding and fixing errors or bugs
log files
OS generate ___ ___ containing error information
core dump
Application failure can generate ___ ___ file capturing memory of the process
crash dump
Operating system failure can generate ___ ___ file containing kernel memory
performance tuning
can optimize system performance (besides from crashing)
is per
Kernighan’s Law
debugging is twice as hard as writing the code in the first place
performance tuning
improves performance by removing bottlenecks
tracing
collects data for a specific event, such as steps involved in a system call invocation
strace
trace system calls invoked by a process
gdb
source-level debugger
perf
collection of Linux performance tools
tcpdump
collects network packets
BCC (BPF Compiler Collection)
is a rich toolkit providing tracing features for Linux