Kernel:作業系統核心
在 CS 中 kernel 指的是內核:負責管理 CPU、記憶體等硬體資源,並擔任應用程式與硬體之間的溝通橋樑。應用程式不直接碰硬體,一律透過 system call 向 kernel 要求服務。
三層結構

為什麼容器的討論繞不開它
- 容器共用主機的 kernel — 容器裡沒有自己的核心層,
/bin、/etc那些只是應用層的檔案;VM 才是連 kernel 一起虛擬化 → VM 與容器的差別在有沒有自己的 kernel - 隔離機制住在 kernel 裡 — namespace(限制看得到什麼)與 cgroups(限制能用多少)都是 Linux kernel 的功能,容器只是被這些機制關起來的普通行程 → 容器是被 namespace 與 cgroups 關起來的普通行程
- 也因此容器改不了主機時間、載不了 kernel module(那是核心層的事),而 Linux 容器不能跑在 Windows kernel 上——它要的 system call 介面根本不存在
VFS(虛擬檔案系統)這一格值得記住:它是 kernel 對「檔案系統」的抽象介面,SQLite 在瀏覽器裡換儲存後端談的也是同一個概念的 VFS。