Abstract


  • Decides on hardware allocation and management with regard to software


  • MacOS’s kernel is XNU

  • Windows’s kernel is NT Kernel

Kernel Booting


  1. Get configuration info from BIOS
  2. Check for missing Device Driver
  3. Start up Init System
  4. Initialise Page Table
  5. Starts up OS System Program
  6. OS is booted up and ready to be used by the User

Kernel Architecture


Micro Kernel Architecture

Process (进程) crashes, it doesn't crash the entire system

Lower performance due to the overhead of communication between different modules

Monolithic Kernel Architecture

  • By far, the most common Kernel architecture, used by Linux
  • The entire kernel runs as a single program in Kernel Mode
  • Consist of a collection of Procedures, linked together into a single large executable binary program. Each Procedures in the system is free to call any other one

Very efficient to have the ability to call any of the procedures

But having thousands of Procedures that can call each other without restriction may also lead to a system that is unwieldy and difficult to understand

A crash in any of these Procedures will take down the entire Kernel

Terminologies


Preemptive Kernel

CPU, and slow down user space process