Book 13
Operating Systems
What happens underneath every program: processes and threads, memory, files, the shell and the kernel that runs it all.
Contents
- 01Bootloader1A bootloader is a small program that runs after the computer's firmware starts, loads the operating system kernel into memory, and hands control over to it.
- 02Command Line InterfaceCLI2A command line interface (CLI) is a text-based way of using a computer: you type a command with options and arguments, press Enter, and read its output.
- 03Context Switch3A context switch is when the operating system saves the state of the running thread or process and restores another one's state so it can use the CPU.
- 04CPUCentral Processing Unit4A CPU (central processing unit) is the processor that executes a program's instructions, doing the arithmetic, logic and control work all software runs on.
- 05CPU Cache5A CPU cache is a small, very fast memory on the processor that keeps copies of recently used data from RAM, so the CPU spends less time waiting for memory.
- 06CPU Scheduling6CPU scheduling is how an operating system decides which ready process or thread runs on each CPU core next, and for how long, so the processor is shared fairly.
- 07Daemon7A daemon is a program that runs in the background without a user interface, usually started at boot, to provide a service such as logging, scheduling, or SSH.
- 08Deadlock8A deadlock is a situation where two or more threads or processes wait forever for each other to release resources, so none of them can make progress.
- 09Device Driver9A device driver is software that lets the operating system control a specific piece of hardware, translating generic OS requests into device-specific commands.
- 10File Descriptor10A file descriptor is a small integer that a Unix-like operating system gives a process to refer to an open file, socket, pipe, or other input/output resource.
- 11File Permissions11File permissions are rules stored with each file that decide which users may read it, change it, or run it, enforced by the operating system on every access.
- 12File System12A file system is the part of an operating system that organizes data on a storage device into files and folders and tracks where each piece is stored.
- 13GPUGraphics Processing Unit13A GPU (graphics processing unit) is a processor whose thousands of small cores run the same calculation on lots of data at once, for graphics and AI.
- 14Heap Memory14Heap memory is the region for data a program allocates at runtime, whose size or lifetime isn't known in advance and can outlive the function that made it.
- 15Hypervisor15A hypervisor is software that creates and runs virtual machines, sharing one physical computer's CPU, memory, and devices among several isolated guest systems.
- 16Interrupt16An interrupt is a signal to the CPU that an event needs immediate attention, making it pause its current work and run a special handler in the kernel.
- 17Kernel17A kernel is the core part of an operating system that manages the CPU, memory, and hardware devices and controls how programs get access to those resources.
- 18Kernel Mode18Kernel mode is the privileged CPU state in which the OS kernel has full access to hardware and memory, while ordinary programs run in restricted user mode.
- 19Memory Leak19A memory leak is a bug where a program keeps holding memory it no longer needs, so its memory usage grows over time and can slow down or crash the system.
- 20MutexMutual Exclusion20A mutex is a lock that lets only one thread at a time enter a critical section of code, so threads can't corrupt shared data by changing it at the same time.
- 21Operating SystemOS21An operating system (OS) is the core software that manages a computer's hardware, shares it out among programs and gives them a common way to use it.
- 22Paging22Paging is a memory management scheme that splits memory into fixed-size pages and uses page tables to map each process's virtual pages to physical RAM.
- 23Process23A process is a running instance of a program, with its own memory space, resources, and at least one thread of execution managed by the operating system.
- 24Race Condition24A race condition is a bug where a program's result depends on the unpredictable timing of threads, processes, or requests that use shared data at the same time.
- 25RAMRandom Access Memory25RAM (random access memory) is a computer's fast, temporary working memory, holding the programs and data in use; its contents are lost when power goes off.
- 26Semaphore26A semaphore is a synchronization tool that keeps a counter of available permits, letting up to a fixed number of threads use a resource at the same time.
- 27Shell27A shell is a program that reads commands typed by a user or written in a script and asks the operating system to run them, usually through a text interface.
- 28Stack Memory28Stack memory is where a thread keeps its functions' local variables and return addresses, growing with each call and shrinking automatically on return.
- 29sudo29sudo lets a permitted user run a single command with root's or another user's privileges, after confirming their own password, and logs what was run.
- 30Swap Space30Swap space is an area on disk that the operating system uses as overflow for RAM, moving rarely used memory pages there when physical memory runs low.
- 31System Call31A system call is a request from a program to the operating system kernel to perform a privileged action, such as reading a file or starting a process.
- 32Terminal32A terminal is the program that shows a text interface, passing your keystrokes to a shell or command-line program and displaying the text it sends back.
- 33Thread33A thread is the smallest unit of execution an operating system can schedule, running inside a process and sharing that process's memory with other threads.
- 34Unix34Unix is a family of operating systems that began at Bell Labs in 1969 and whose design, with small tools, files and a shell, lives on in Linux and macOS.
- 35Unix Signal35A Unix signal is a short asynchronous notification the kernel delivers to a process to report an event, such as a stop request, an error, or an expired timer.
- 36User Space36User space is the restricted area where ordinary programs run, kept separate from kernel space so a buggy or malicious app cannot take down the whole system.
- 37Virtual Memory37Virtual memory is an operating system technique that gives each process its own private address space and maps it to physical RAM or disk behind the scenes.