00.0 (Conspect) Overview
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Operating system goals:
- unification of resources interface
- separation of resources access
- logging (accounting) of resources utilization
Resources that are most important for computer operating:
- CPU time (the amount of time for which a central processing unit (CPU) was used for processing instructions of a computer program)
- RAM (a form of computer memory that can be read and changed in any order, typically used to store working data and machine code)
- Devices (input devices like the keyboard and mouse, and output devices such as the display or printer)
E. g.:
- Concurrent multitasking
- Scheduling
- Virtual memory
- Filesystems and file permissions
- Video rendering, sound, other input/output devices
- Networking
- video camera
Interfaces and tools
There are two types of processor work:
- Supervisor mode (kernel space)
Supervisor mode is a mode of execution in a device in which all instructions, including privileged ones, can be performed by the processor.
- user mode (user space):
The system is in user mode when the operating system is running a user application such as handling a text editor.
- hardware access restrictions
- virtual memory
- elimination of atomic resource concurrent usage
Monolithic Kernel VS Microkernel
«Flower architecture»
Kernel: syscalls. Used primarily inside kernel code (∃ klibc, in fact)..
- Utilities: programs to perform syscalls, with goodies.
- Shell: scripting utilities usage. I/O redirection, process manupulation, programming language.
- Services (Daemons): task is too complex/too slow for shell scripting; back to programming