Linux Architecture Diagrams

Rendering Stack

../_images/linux-rendering-stack.png

Networking Stack

../_images/linux-networking-stack.png
  • NAPI (New API): poll packets from the NIC in bulk so that it does not interrupt the CPU too much

  • Netlink: we use this to communicate with the kernel and configure the network stack

Storage Stack

../_images/linux-storage-stack.png

To manage read and writes to the storage device, the Linux kernel uses the bio structure which connects the filesystem to a particular storage device.

In order to not issue many commands to the storage device, the bio manages a page cache. This is a copy-on-write cache which gets checked before accessing a page. If data gets written to a page, the cache gets dirty, and it can be flushed to the device.

Unique Kernel Contributors per Subsystem

Subsystem

Percentage

Info

Drivers (General)

~55% - 60%

This includes GPU (about 30% of all drivers), Network, Multimedia, and Sound.

Networking (net/)

8% - 10%

Massive corporate focus from Meta, Google, and Mellanox/Nvidia. This is the core of the cloud.

Filesystems (fs/)

~7% - 8%

This is the “Data Integrity” tier. Recent spikes come from Bcachefs (Kent Overstreet) and cloud-scale optimizations for NVMe.

Core Kernel (kernel/, mm/)

~5%

The “Priesthood.” This is the smallest group of developers, but they have the highest gatekeeping standards. It includes scheduling and memory management.

eBPF (kernel/bpf)

~4%

This is the fastest-growing niche. eBPF is becoming the universal “glue” for observability and networking, drawing in engineers from Distributed Systems.

Arch Specific (arch/)

~10%

Mostly ARM64 and RISC-V churn. RISC-V is currently seeing a “gold rush” of first-time contributors.

Source: gemini.

Build systems

../_images/linux-build-systems.png