Operating Systems (OS)
What is an Operating System
- The original meaning (and still used by hardware engineering): a basic set of functions to control the hardware and manage things like task scheduling and system calls.
- The modern terminology used by software developers, the collection of these functions is usually referred to as a kernel, while an operating system is expected to have a more extensive set of programs.
You may have seen the term GNU/Linux, Linux is the kernel, GNU is the toolset on top of that.
OS = kernel + drivers + software
Popular Operating Systems
- Unix-like
- Linux
- Android
- ChromeOS
- HarmonyOS (鸿蒙): https://consumer.huawei.com/en/harmonyos/
- BSD
- Darwin: macOS, iOS, ipadOS, watchOS, tvOS. Based on XNU ("X is Not Unix"). Hybrid kernel.
- QNX: a commercial Unix-like real-time operating system aimed primarily at the embedded systems market (Used by Audi, BMW, Ford, etc). Microkernel. Acquired by BlackBerry in 2010.
- Linux
- Windows
- Fuchsia:
- https://fuchsia.dev/
- already on Next Hub, to be on Next Hub Max
Monolithic Kernel vs Microkernel
- Microkernel provides the most basic functionalities: low-level address space management, thread management, IPC, etc.
- Device drivers, file systems, protocol stacks are included in Monolithic kernels, but are NOT in Microkernels, instead they run in user mode.
Examples:
- Linux is Monolithic.
- Google's Fuchsia, is based on a microkernel named Zircon. Fuchsia is NOT Linux.
Tanenbaum, the creator of Minix, arguing that microkernels are superior to monolithic kernels:
https://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate