Template:Linux layers

class="wikitable linux-layers"

|+ Various layers within Linux, also showing separation between the userland and kernel space

scope="rowgroup" rowspan="3" class="linux-layers-width10" | User mode

| class="linux-layers-width10" | User applications

| colspan="5" class="linux-layers-width80" | bash, LibreOffice, GIMP, Blender, 0 A.D., Mozilla Firefox, ...

System components

| class="linux-layers-width15 linux-layers-sys" | init daemon:
OpenRC, runit, systemd...

| class="linux-layers-width15 linux-layers-sys" | System daemons:
polkitd, smbd, sshd, udevd...

| class="linux-layers-width15 linux-layers-sys" | Windowing system:
X11, Wayland, SurfaceFlinger (Android)

| class="linux-layers-width15 linux-layers-sys" | Graphics:
Mesa, AMD Catalyst, ...

| class="linux-layers-width30 linux-layers-other" | Other libraries:
GTK, Qt, EFL, SDL, SFML, FLTK, GNUstep, ...

class="linux-layers-cstd"

| C standard library

| colspan="5" | fopen, execv, malloc, memcpy, localtime, pthread_create... (up to 2000 subroutines)
glibc aims to be fast, musl aims to be lightweight, uClibc targets embedded systems, bionic was written for Android, etc. All aim to be POSIX/SUS-compatible.

scope="rowgroup" rowspan="3" | Kernel mode

| rowspan="3" | Linux kernel

| colspan="5" class="linux-layers-kernel" |stat, splice, dup, read, open, ioctl, write, mmap, close, exit, etc. (about 380 system calls)
The Linux kernel System Call Interface (SCI), aims to be POSIX/SUS-compatible{{cite web |title=Admin Guide README |url=https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/admin-guide/README.rst |website=Kernel.org git repositories }}

class="linux-layers-kernel"

| Process scheduling subsystem

| IPC subsystem

| Memory management subsystem

| Virtual files subsystem

| Networking subsystem

class="linux-layers-kernel"

| colspan="5" | Other components: ALSA, DRI, evdev, klibc, LVM, device mapper, Linux Network Scheduler, Netfilter
Linux Security Modules: SELinux, TOMOYO, AppArmor, Smack

class="linux-layers-hw"

! colspan="7" scope="row" | Hardware (CPU, main memory, data storage devices, etc.)

{{documentation}}