+++ title = "Architecture of Linux Kernel" date = 2022-09-03 [taxonomies] categories = ["cs"] tags = ["linux"] [extra] math = true +++ ## Description Modern microcontrollers nowadays support at least two privilege levels. Intel/AMD x86-64 family supports 4 levels, whilst ARM (32bit) microcontrollers support up to 7 levels (6 privileged, 1 non-privileged). Modern operating systems support at least 2 levels: - **User space**: For applications to run in unprivileged user mode - **Kernel space**: For the kernel (and all its components) to run in privileged mode – kernel mode Address of these 2 spaces are separate. Applications in user mode will auto-linked to glibc(the GNU standard C library). Libraries only available in user mode, kernel mode doesn't have this conception. An application only can through **System call** to access kernel. On the other hand, system calls are the only legal entry point into the kernel space. > Libraries APIs: man section 3 > System calls APIs: man section 2 to be continue...