logo

Linux

These set of notes are Linux specific, check out OS page for general OS notes.

Recent / future developments

eBPF

eBPF: a handy way to build firewalls.

Extended Berkeley Packet Filter (eBPF) is an in-kernel virtual machine that runs user-supplied eBPF programs to extend kernel functionality.

A program is loaded into the kernel using the bpf(2) syscall and is provided by the user as a binary blob of eBPF machine instructions. (e.g. can compile C programs to eBPF bytecode, clang -target bpf)

C Library: libbpf

Microsoft chose to port eBPF into Windows rather than try to duplicate its functionality with its own program.

iptables is a firewall that is built into the Linux kernel. It allows you to filter and manipulate network traffic based on a set of rules that you define. eBPF is more flexible than iptables. eBPF is best suited for more complex tasks that require custom programs to filter and manipulate network traffic.

iptables => nftables

nftables is the new packet-filtering portion of Netfilter. nft is the new userspace utility that replaces iptables, ip6tables, arptables and ebtables.

io_uring

io_uring allows Linux to launch an operation asynchronously and wait for its completion. (predecessor: asynchronous I/O (AIO) subsystem)

io_uring uses a memory ring buffer shared between user space and the Linux kernel. This enables it to submit operations and collect the results without needing time-expensive Linux kernel calls. Its API is complex, but if your applications require lots of I/O, you get rewarded with vastly improved increased performance.

cgroup v2

Read more: cgroup

systemd

The init system. Read more: systemd

Wayland

Replacing X11.

Security

The Linux Unified Key Setup (LUKS) is a disk encryption specification.

What is vmlinuz?

vmlinuz is the compressed image of the kernel. It gets uncompressed, loaded into memory, and executed at boot.

What is a generic Linux kernel image

The one that the distribution's developers create specifically to boot on a wide variety of hardware; the device drivers for this generic kernel image are included as loadable kernel modules.

What is Linux-libre?

A modified version of the Linux kernel that contains no binary blobs, obfuscated code, or code under proprietary licenses.

License: GPL v2.

System files

  • /usr/src/linux-headers-$VERSION
  • /lib/modules/$VERSION