# Operating Systems Crash Course: From Kernels to Virtualization ![rw-book-cover](https://www.educative.io/v2api/editorpage/6292006289539072/image/5581777484644352) ## Metadata - Author: [[Educative]] - Full Title: Operating Systems Crash Course: From Kernels to Virtualization - Category: #articles - Summary: Operating systems (OS) are essential software that manage computer resources and enable applications to run efficiently. Understanding OS concepts like virtualization and process management is important for developers to create effective programs. This article provides a foundation in operating systems and prepares readers for more advanced topics. ## Highlights - Linux’s open-source properties allow it to be highly customizable and well suited for installing and running other open-source programs. This combination of open-source technologies has allowed Linux systems to develop far faster than Windows or macOS. For this reason, Linux is the most popular OS for developers across the board, particularly in [cybersecurity](https://www.educative.io/blog/cyber-security-guide) fields. ([View Highlight](https://read.readwise.io/read/01jte4b5617vxwzef08k616f8h)) - The kernel is the central core of an operating system that allows programs to access hardware resources. A kernel is how a system starts up, translates input, and outputs requests to the central processing unit ([View Highlight](https://read.readwise.io/read/01jte4ndy0515f7nzqss21gh18)) - Each OS must have a kernel to function. As a result, the kernel is stored in restricted memory space so it’s not accidentally overwritten. Developers working on kernels aim to make it as small as possible without altering functionality so that more memory is open to the user. ([View Highlight](https://read.readwise.io/read/01jte4p5z6spw7z1k4ss74bsdj)) - Kernels rarely change from version to version. In fact, the modern OS uses the same versions from over 20 years ago with only minor updates or modernizations. • **Linux** uses the Linux kernel • **macOS** uses the XNU kernel • **Windows** uses the Windows NT kernel ([View Highlight](https://read.readwise.io/read/01jte4pvhmq83662fayfaaes34)) - Resource management is one of the most important services of a kernel. The kernel delegates computer resources like memory and CPU to each process being executed. By regulating processes, the kernel prevents greedy programs from starving the system and slowing down other concurrent programs. This service ensures that all processes have enough resources to function and that each process makes use of all available resources. ([View Highlight](https://read.readwise.io/read/01jte4qh6hj30xdkmec9q1cb3r)) - A process is the basic unit of work in an executing program. The developer doesn’t write processes. Instead, they write programs that become processes when executed by the machine. ([View Highlight](https://read.readwise.io/read/01jte4r95hdmtvzprdz0ek2tvt)) - The kernel is our platform to run programs while services provide tools to the program to do its job. A service is a built-in set of functions that programs can use to implement common behaviors, like saving to files or sharing data. ([View Highlight](https://read.readwise.io/read/01jte8m8q416tx5gaewqrg92dz)) - A thread is the smallest sequence of programmed instructions and is the main component of any process. Each thread completes a particular command. When all threads are complete, the process has been fully executed. ([View Highlight](https://read.readwise.io/read/01jte8r9hkxx7ayvrwdrcp5d6c)) - Multiple threads can exist in one process and each share data and memory space between all threads in the process. Threads can be completed one at a time or [concurrently](https://www.educative.io/blog/multithreading-and-concurrency-fundamentals) using either context switching or multiple CPU cores. ([View Highlight](https://read.readwise.io/read/01jte8rtkyj9y4qw3zg91hb6f7)) - An operating system (OS) is the core software that contains a collection of services essential for the machine to run programs. Think of this as the **manager of a computer’s memory and processes**. ([View Highlight](https://read.readwise.io/read/01jmswq6ks4ak6evendrbr3hsf)) - The OS is how a computer schedules sequential tasks, completes tasks [concurrently](https://www.educative.io/blog/multithreading-and-concurrency-fundamentals), ([View Highlight](https://read.readwise.io/read/01jmswr48rx2p46m7h27ya57r7)) - Before operating systems were commonplace, developers had to design their programs to work with individual pieces of hardware. However, it was impossible to know what hardware your customers would have, so widely distributed software was nearly impossible. Operating systems provide a standard medium that developers can program. If the system can run the OS, it can run your program. ([View Highlight](https://read.readwise.io/read/01jmswrnyn2w1empv8k31e72bx))