Based on the Linux Master 2 exam syllabusReport an error
uname -r; under an old rule, an even second number meant a stable version.The fastest way to understand Linux is to draw the layered structure.
┌─────────────────────────────────┐
│ Applications │ vi, web browser, compiler
├─────────────────────────────────┤
│ Shell │ bash, sh, csh — command interpreter
├─────────────────────────────────┤
│ Kernel │ Linux itself
├─────────────────────────────────┤
│ Hardware │ CPU, memory, disk, network card
└─────────────────────────────────┘Questions asking for "the difference between the kernel and the shell" come up repeatedly in the exam. Just be sure of this: the shell only interprets and forwards commands; it does not handle hardware directly.
| Job | What it does | Examples |
|---|---|---|
| Process management | Decides which program gets the CPU and when | Scheduling, process creation and termination |
| Memory management | Hands out memory to each program and reclaims it | Virtual memory, swap |
| File system | Presents the 0s and 1s on disk as "files and directories" | Mounting ext4, xfs |
| Device management | Provides drivers that operate the hardware | Keyboard, printer, graphics card |
| Network | Handles the rules for sending and receiving packets | TCP/IP stack |
This is where beginners get confused the most.
That is why the free software camp argues we should call it "GNU/Linux." Commands we use every day like ls, cp, and bash were all made by the GNU project, not by the Linux kernel.
| Category | Monolithic kernel | Microkernel |
|---|---|---|
| Structure | Most functions live inside the kernel | Only minimal functions in the kernel, the rest outside |
| Speed | Fast (calls finish inside the kernel) | Relatively slow (communication overhead) |
| Stability | An error in one part can affect the whole | Problem parts can be isolated |
| Size | Large | Small |
| Examples | Linux, Unix | MINIX, Mach |
$ uname -r
5.15.0-88-generic
│ │ │
│ │ └── Patch level
│ └───── Minor version within the major version
└─────── Major version2.4 → stable / 2.5 → developmentAfter the even/odd rule went away, the official kernel site (kernel.org) classifies versions by nature.
| Category | Meaning |
|---|---|
| mainline | The main development line, maintained directly by Linus Torvalds. New features land here |
| stable | A stable version that takes a release from mainline and adds only bug fixes |
| longterm | A long-term support version that keeps getting fixes for several years. Distributions mostly pick this |
-88-generic part after 5.15.0 is a label added by the distribution. Even for the same 5.15 kernel, the trailing part differs by distribution./boot with a name like vmlinuz-version.The rule that "an upper layer cannot touch the layer below it directly" is not a mere convention; it is a distinction enforced by the CPU.
| Category | User mode | Kernel mode |
|---|---|---|
| What runs here | Applications, the shell, ordinary commands | The kernel, device drivers (modules) |
| Direct hardware access | Not allowed | Allowed |
| Memory it can see | Only its own process area | Everything |
| If an error occurs | Only that program dies | The whole system can halt (kernel panic) |
Follow what happens when the single line cat memo.txt runs, and the layered structure shows up exactly as drawn.
Shell (bash) Interprets "cat memo.txt" and launches the cat program
│
cat User mode — asks to "open, read, and write to the screen"
│ open() read() write() ← system calls
▼
Kernel Kernel mode — finds the location in the file system and calls the disk driver
│
Disk The actual data is read⚠️ Trap: "The shell controls the hardware" and "the kernel interprets commands" — both are wrong answer choices with the roles swapped. It is fixed: interpretation is the shell, control is the kernel.
This is the list that feeds questions in the "Understanding Linux" area asking you to pick "which is NOT a feature of Linux."
| Feature | Meaning |
|---|---|
| Multi-user | Several people can log in and use one system at the same time |
| Multi-tasking | Runs several programs at once. CPU time is sliced finely and handed out in turn |
| Excellent portability | Most of the kernel is written in C, so it moves to PCs, servers, smartphones, even embedded devices |
| Virtual memory | When memory runs short, it borrows the disk's swap area and uses it like memory |
| Hierarchical file system | Every file sits in a tree that branches out from a single / (root) |
| Shared libraries | Multiple programs share the same library code, saving memory and disk |
| Virtual consoles | Switch between several login screens on one monitor (Ctrl+Alt+F1~F6) |
| Strong networking | The kernel supports TCP/IP out of the box. That's why it is so widely used as a server |
| Open software | The kernel source is released under the GPL, so anyone can modify and use it |
The statement "modules are attached and detached" can be confirmed right away with a few commands.
| Command | What it does |
|---|---|
lsmod | Lists the modules currently loaded in the kernel |
modinfo module_name | Shows a module's description, file location, and dependencies |
modprobe module_name | Loads a module. It automatically loads any modules it depends on too |
insmod file_path | Loads just one module file. It does not handle dependencies |
rmmod module_name | Unloads a module |
$ lsmod | head -4
Module Size Used by
isofs 49152 1
xfs 1589248 2
e1000 151552 0/lib/modules/kernel_version/ and have the extension .ko (kernel object).Used by is not 0, someone is using it, so it can't be unloaded.uname -a # Everything: kernel name, version, architecture
uname -r # Kernel version only
cat /proc/version # Information the kernel reports about itself
echo $SHELL # The shell you are using now$ uname -a
Linux ubuntu 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/LinuxWith uname, each option corresponds to one piece of the output. -a simply strings them all together.
| Option | Output | In the example above |
|---|---|---|
-s | Kernel name | Linux |
-n | Hostname (network node name) | ubuntu |
-r | Kernel release (version) | 5.15.0-88-generic |
-v | Kernel build info (build number, date) | #98-Ubuntu SMP … |
-m | Hardware architecture | x86_64 |
-o | Operating system name | GNU/Linux |
GNU/Linux at the very end stands out. The kernel name (-s) is Linux and the operating system name (-o) is GNU/Linux — the "narrow sense / broad sense" distinction we saw earlier is split right there in the command output.uname only tells you about the kernel. To see the distribution name and version, use cat /etc/os-release.Tomorrow we follow where this kernel came from — the lineage from Unix to Linux.
Click a choice to reveal the answer and explanation.
Question 1
Which of the following correctly describes the structure of the Linux kernel?
Question 2
Which of the following best describes the shell?
Question 3
Which of the following is LEAST related to the kernel's main functions?
Question 4
What is the official channel called that prevents applications from accessing hardware directly and is used to request work from the kernel?
Question 5
Which of the following correctly describes the name "Linux"?