In Linux, these concepts are foundational:
You will see lots of faces in the list (like Mounts, Processes, …) while using containerization tools like Docker.
- Processes: These are running instances of programs. Linux manages them, allocating resources and scheduling their execution.
- Mounts: This refers to attaching a file system to a directory, enabling access to files in storage.
- chroot/pivot_root: These are methods to change the root directory.
chroot
changes the perceived root directory for a process, whilepivot_root
is used in system initialization, replacing the old root with a new one. - CoW Storage (Copy-on-Write): A resource-management technique where system resources are shared and copied only when modified, optimizing performance and memory usage.
- Users: In Linux, users are entities with permissions to access and manipulate files and processes. Each user has a unique ID.
- Namespaces: These are used to isolate processes, ensuring they only see certain system resources. They’re key in containerization, allowing safe and secure multitasking.
- Memory Management: Linux efficiently manages memory through techniques like paging and swapping, ensuring optimal use of RAM and storage resources for process execution.
For More Details:
- Linux Primitives Slides (Credits and Acknowlegement: Nati Cohen, Avishai Ish-Shalom)
- The Linux Kernel Documentation
- Linux man page