logo

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

Read more about Linux and GNU

Popular Operating Systems

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