AlgoPlusAlgoPlus
Learn/Operating Systems
Lesson

Linux Basics

Linux is strictly a kernel; bundled with the shell, GNU tools, and a C library it forms a complete, open-source, Unix-like OS with a monolithic kernel.

9 min read Watch it move Build it

Here's a precise fact people get wrong: Linux is *strictly just a kernel* — the core that Linus Torvalds released in 1991. What you install and call "Linux" is a distribution: that kernel bundled with a shell, the GNU command-line tools, a C library, and a package manager. Together they form a complete, open-source, Unix-like operating system. (This is why some insist on the name "GNU/Linux".)

A monolithic, open-source kernel

The Linux kernel is monolithic: the scheduler, memory manager, file systems, and device drivers all run together in one privileged address space, which is fast because there's no costly boundary between them. To stay flexible, Linux also supports loadable kernel modules — drivers you can insert and remove at runtime without rebuilding the kernel. It's licensed under the GPL, so its source is public and freely modifiable, and it follows POSIX, a standard set of OS interfaces that lets Unix software move between systems.

Kernel vs distribution
The *same* Linux kernel sits under Ubuntu, Debian, Fedora, Android, and the servers running most of the internet. What differs is the userland wrapped around it — shell, tools, libraries, and package manager. The kernel is the constant; the distribution is the packaging.

How a typed command reaches the hardware

When you type a command, it travels down a clear stack. The shell parses what you typed and launches a program. That program calls a function in the C library (commonly glibc), which issues the actual system call — a trap into the kernel. The kernel, running in privileged mode, does the protected work through a device driver, then hands the result back up the chain.

app  -->  shell  -->  C library (glibc)  -->  system call  -->  kernel  -->  hardware
          parses        wraps the call        traps in        drivers       disk/NIC
          & launches                            (user->kernel)
Everything is a file
A defining Unix idea Linux keeps: devices, pipes, and even kernel state appear as files. Reading your mouse, a disk, or /proc/cpuinfo all use the *same* read() interface — one small set of operations works on almost everything.
OperationTimeSpace
Linux (strict) · released 1991, Torvaldsthe kernel only
Distribution · shell, GNU tools, libc, package mgrkernel + userland
Kernel design · one space; loadable modules add flexibilitymonolithic
Check yourself
In the strictest technical sense, what is "Linux"?