Linux OS or GNU/Linux is a family of Unix-like operating systems based on the Linux kernel and that maintain some level of compatibility.
Do not confuse Linux OS or GNU/Linux with the Linux kernel. When there is a need to differentiate between kernel and the operating system, just add the term “OS” or “kernel” at the end of the Linux word.
The Linux kernel is free and open source software (FOSS) under a GPLv2-only license. It is maintained by the Linux Foundation.
Linux Architecture
A Linux has a kernel.
Linux Kernel
The independent kernel (also known as the monolithic kernel in traditional Unix/Linux systems) handles interrupts, low-level device drivers (lower half), and part of memory management. It is responsible for hardware communication, process scheduling, and other core functionalities.
The kernel is not the same across all platforms. While Linux is highly portable and can run on multiple architectures (x86, ARM, RISC-V, etc.), the kernel must be compiled specifically for each platform. Additionally, different architectures may require modifications or optimizations to work efficiently.
The kernel controls access to peripherals such as terminals, disk drives, and network interfaces. It does so through device drivers and system calls, ensuring that processes access hardware resources in a controlled and secure manner.
The kernel manages secondary memory (swap space) to optimize data storage and retrieval. It uses virtual memory techniques, swapping data between RAM and disk as needed to improve performance and ensure efficient memory utilization.
Linux Process Management
The number of process states in Linux systems is 6.
The total number of process priorities in Linux is 140.
The user can priorities their own priorities using the nice and renice commands. The default priority is 0, and user can manage from 19 to -20, raging 40 processes in total.
Linux schedulers:
- CFQ
- Deadline
- NOOP
Completely Fair Q. (CFQ)
Linux Memory Management
32-bit Linux has a 4-table memory system.
64-bit Linux has a 5-table memory system to be able to reach all memory addresses.
Linux Device Management
Types of devices considered by Linux:
- Character
- Block
- Network
Linux File Systems
ext is a file system in Linux.
ext2 is the main file system in Linux.
ext3 is a new version of ext2.
ext4 is the most modern ext family version as of 2025.
swap file system is used for the swap partition.
Network File System (NFS)
Network Information Service (NIS) is part of NFS.
Linux Layout
You can read this post about File Hierarchy System (FHS).
Hard links cannot be done between partitions.
Soft links can be done between partitions.
The inode is a data structure in a Unix-style file system that describes a file-system object such as a file or a directory.
An inode requires a single block. The size of the inode will be the same as a single block.
The classical Linux layout (<ext4) is 64 bits.
The ext4 Linux layout (ext4) is 256 bits.
It takes a minimum of 2 accesses, one to the inode, and another one for the data block.
It takes a maximum of 5 access in the worst case:
- inode
- Direct
- Single indirect
- Double indirect
- Triple indirect
Linux Printing Servers
Linux printing servers:
- BSD LPD
- LPRng
- CUPS
Linux User Interface
Aspectos of Linux user interfaces:
- CLI
- GUI
Linux Command-Line Interfaces
Linux command-line interfaces (CLI):
- Bourne shell
- Korn shell
- CSH shell
- Bash shell
Bourne shell was created at the Bouren university. It was one of the first shells.
C shell (csh) does not accept shells.
Bourne-again shell (Bash) is probably the most popular shell and the default one as of 2025.
You can read this post about Unix shell commands.
Linux GUIs
Linux GUI works in layers.
Linux GUI layers based on X Window, from bottom to top:
- Display client
- Display server
- Desktop environment
- Window manager
- Desktop environment or manager
- Themes
Linux Display Server
The most popular Linux display servers are X.Org and Wayland.
You can read this post about Linux display servers.
Linux Window Manager
GNOME has no default window manager and is compatible with many.
Enlightment is the most popular desktop environment used on GNOME desktop environment.
KDE Window Manager is the window manager used by KDE, and it is not compatible with other window managers.
Linux Desktop Environment
The most popular Linux desktop environments are GNOME and KDE.
You can read this post about Linux desktop environment.
You can read this post about touch-based Linux user interfaces.
GUI Programming Toolkits
X Window applications are programmed through the xlib application, that it is considered difficult to use.
Linux graphical applications are usually programmed using a widget framework like GTK (GNOME project) or Qt (KDE project).
You can read this post about GUI programming toolkits.
Linux Sound System
You can read this post about Linux sound system and servers.
Linux Administration
Operation, Administration & Maintenance (OA&M) system is run through the command sysadm.
Linux Security
Linux Firewall
iptables, arptables
Linux IDS/IPS
Linux Intrusion Prevention System (IPS) tools:
- LogCheck
- TripWire
- snort
You can read this post about snort.
Linux File Encryption
There are different programs to encrypt files in Linux.
crypt and PGP work at file level.
crypt is based on 56-bit DES.
TCFS and CFS work at disk level.
Linux Log Management
The daemon that controls logs is called syslogd.
Logs are usually stored in /var/log/messages.
Linux Endpoint Security
You can read this post about Linux endpoint security.
Linux Package Managers
You can read this post about Linux package managers.
Linux Software Development
Linux Software Package
- Autopackage
- AppImage
- Flatpak
- Snap
Flatpak is developed by Red Hat.
Snap is developed by Ubuntu.
Linux Distributions
A list of Linux distros can be found on this post.
Linux on Desktop
Linux on Desktop is a website that share user experience on installing Linux distros on laptops, by volunteer contributions. It seems not very active in the 2020s and a bit outdated.
Linux on laptops official website