blob: 554705187a1a9ac0ee11b70a490ce78d434b259d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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...
|