Linux Kernel Fundamentals
The Linux kernel is the privileged core of a Linux system. It manages processors, memory, devices, filesystems, networking, and process isolation while exposing controlled services to applications.
itLinux | OpenSkills.info
Intro
Linux Kernel Fundamentals
The Linux kernel is the privileged program between applications and hardware. Applications run in user space with limited authority. The kernel runs in kernel space, schedules execution, manages memory, controls devices, implements networking and filesystems, and enforces access checks. A Linux distribution combines this kernel with user-space libraries, services, tools, and applications.
Linux is a modular monolithic kernel. Core subsystems and most drivers share one kernel address space, so they can call internal interfaces directly. Features may be built into the kernel image or loaded later as modules. This arrangement makes subsystem interaction efficient, but a defective kernel component can corrupt shared state or stop the system.
The control path
A user-space program requests kernel work through a system call. The processor switches privilege level, the kernel validates arguments and credentials, and a subsystem performs the operation. A file read can pass through the virtual filesystem, a filesystem implementation, the page cache, the block layer, and a device driver. A network send crosses the socket and protocol stacks before a driver queues data to hardware. The kernel returns a result or an error and resumes user-space execution.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://docs.kernel.org/admin-guide/README.html
Supports
- Kernel role
- boot
- configuration
- administration
- and troubleshooting interfaces
- https://man7.org/linux/man-pages/man2/syscalls.2.html
Supports
- System-call boundary and Linux system-call catalog
- https://docs.kernel.org/subsystem-apis.html
Supports
- Scheduler
- memory
- drivers
- filesystems
- networking
- timers
- and locking
- https://docs.kernel.org/scheduler/index.html
Supports
- Scheduling classes
- task selection
- affinity
- and scheduler diagnostics
- https://docs.kernel.org/admin-guide/mm/concepts.html
Supports
- Virtual memory
- pages
- mappings
- page cache
- reclaim
- and swap
- https://docs.kernel.org/filesystems/vfs.html
Supports
- File system-call dispatch
- VFS objects
- page cache
- and driver path
- https://docs.kernel.org/driver-api/driver-model/overview.html
Supports
- Devices
- buses
- drivers
- classes
- and binding
- https://docs.kernel.org/filesystems/sysfs.html
Supports
- Device
- driver
- module
- and kernel-object exposure through sysfs
- https://docs.kernel.org/admin-guide/sysfs-rules.html
Supports
- Unstable internal kernel API and documented sysfs access rules
- https://docs.kernel.org/admin-guide/abi-stable.html
Supports
- Module attributes
- parameters
- reference counts
- and syscall ABI
- https://docs.kernel.org/core-api/real-time/theory.html
Supports
- Interrupt context
- threaded handling
- preemption
- and process context
- https://docs.kernel.org/trace/index.html
Supports
- Tracepoints
- ftrace
- event tracing
- and kernel observation
- https://docs.kernel.org/admin-guide/namespaces/index.html
Supports
- Kernel namespace isolation used by containers
- https://docs.kernel.org/process/development-process.html
Supports
- Kernel development
- maintainers
- patch flow
- and releases
- https://docs.kernel.org/process/stable-api-nonsense.html
Supports
- Why internal kernel interfaces change and external modules require maintenance
- https://www.kernel.org/category/releases.html
Supports
- Mainline
- stable
- longterm
- and release-numbering policy
- https://www.kernel.org/doc/ols/2011/ols2011-masters.pdf
Supports
- 1991 through 2011 release
- licensing
- scalability
- Git
- and numbering milestones
- https://www.kernel.org/pub/linux/kernel/Historic/old-versions/RELNOTES-0.01
Supports
- Linux 0.01 publication and initial scope
- https://kernelnewbies.org/Linux_2_6_24
Supports
- Control groups in Linux 2.6.24
- https://kernelnewbies.org/Linux_3.18
Supports
- Extended BPF virtual machine in Linux 3.18
- https://kernelnewbies.org/Linux_4.0
Supports
- Live kernel patching infrastructure in Linux 4.0
- https://github.com/sindresorhus/awesome
Supports
- Awesome eBPF discovery
- https://github.com/qmonnet/awesome-ebpf
Supports
- Discovery of bpftrace
- BCC
- Inspektor Gadget
- Cilium
- and libbpf-bootstrap
- https://bpftrace.org/docs/
Supports
- High-level tracing language
- probes
- and kernel feature discovery
- https://github.com/iovisor/bcc/blob/master/docs/tutorial.md
Supports
- Packaged eBPF tools for process
- memory
- filesystem
- block
- and network paths
- https://inspektor-gadget.io/docs/latest/gadgets/
Supports
- Packaged eBPF observations for process
- filesystem
- memory
- and network events
- https://docs.cilium.io/en/stable/overview/intro/
Supports
- eBPF use in Linux networking
- observability
- and policy
- https://github.com/libbpf/libbpf-bootstrap
Supports
- BPF application scaffolding
- user-space loaders
- maps
- and CO-RE
- https://www.redhat.com/en/technologies/linux-platforms/enterprise-linux
Supports
- Red Hat Enterprise Linux kernel integration and support
- https://ubuntu.com/kernel
Supports
- Ubuntu kernel flavors
- maintenance
- hardware enablement
- and livepatch
- https://documentation.suse.com/sles/
Supports
- SUSE kernel maintenance
- modules
- updates
- and live patching
- https://docs.oracle.com/en-us/iaas/oracle-linux/uek/uek.htm
Supports
- Oracle Linux Unbreakable Enterprise Kernel and compatibility boundary
- https://kernel-team.pages.debian.net/kernel-handbook/
Supports
- Debian kernel packages
- configuration
- modules
- and rebuilds
- https://docs.fedoraproject.org/en-US/quick-docs/kernel-overview/
Supports
- Fedora kernel packaging
- development
- and update path
- https://docs.aws.amazon.com/linux/al2023/ug/kernel-hardening.html
Supports
- Amazon Linux kernel configuration and cloud operating context
- https://bottlerocket.dev/en/os/1.47.x/concepts/
Supports
- Bottlerocket container-host architecture
- image updates
- and limited user space
