From be772f40c42711de54a3331db2781b1511acba9d Mon Sep 17 00:00:00 2001 From: garhve Date: Mon, 2 Jan 2023 06:02:01 +0800 Subject: change to zola --- content/post/architecture of linux kernel.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 content/post/architecture of linux kernel.md (limited to 'content/post/architecture of linux kernel.md') diff --git a/content/post/architecture of linux kernel.md b/content/post/architecture of linux kernel.md new file mode 100644 index 0000000..5547051 --- /dev/null +++ b/content/post/architecture of linux kernel.md @@ -0,0 +1,26 @@ ++++ +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... -- cgit v1.2.3-70-g09d2