summaryrefslogtreecommitdiff
path: root/content/post/architecture of linux kernel.md
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...