From 8bb6485b6c4d69bfdfa9f693f861986b7b3b1a0a Mon Sep 17 00:00:00 2001 From: tocariimaa Date: Sun, 2 Mar 2025 19:03:48 -0300 Subject: [PATCH] articles/kernel.md: new article --- articles/kernel.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 articles/kernel.md diff --git a/articles/kernel.md b/articles/kernel.md new file mode 100644 index 0000000..d87332f --- /dev/null +++ b/articles/kernel.md @@ -0,0 +1,16 @@ +# Kernel +A kernel is the fundamental part of an [operating system](operating_system.md) which has full +control of the machine is running on and is responsible of managing the fundamental +functionality required for a full OS (like memory management, security, hardware [in monolithic kernels], etc.). + +## Monolithic kernel +Monolithic kernels include all relevant functionality in the kernel side, including drivers. Naturally, this +mean that monolithic kernels are big and have a huge attack surface due to the amount of code running in kernel +mode (with full privileges). +Notable monolithic kernels are: the classical [Unix](unix.md), [Linux](linux.md) and the [BSD](bsd) kernels. + +## Microkernel +*See [Microkernel](microkernel.md)* + +A microkernel--unlike a monolithic one, has less functionality on the kernel side, moving most +to the userland.