Overview of Linux System Architecture: Kernel, Shell, Filesystem, and Applications
This article provides a comprehensive overview of Linux system architecture, covering the kernel, memory and process management, virtual file system, device drivers, networking, shell types, filesystem hierarchy, partitioning, mounting, and common commands, offering a solid foundation for understanding Linux fundamentals.
1. Linux Kernel
The kernel is the core of the operating system, managing processes, memory, device drivers, files, and networking, which determines system performance and stability. It consists of memory management, process management, device drivers, filesystem, and network management. System call interfaces (SCI) enable user‑space programs to invoke kernel functions, with architecture‑specific implementations located in ./linux/kernel and ./linux/arch.
1.1 Memory Management
Linux uses virtual memory, dividing physical memory into 4 KB pages and providing mechanisms such as the slab allocator, swapping pages to disk when memory is exhausted, and managing page allocation via structures like ./linux/mm.
1.2 Process Management
Linux supports multitasking by time‑slicing processes, using a priority‑based scheduler. It provides inter‑process communication mechanisms (signals, pipes, shared memory, semaphores, sockets) and system calls (fork, exec, kill, exit) for creating, controlling, and synchronising processes.
1.3 Filesystem
Linux adopts a unified hierarchical VFS (Virtual File System) that abstracts various concrete filesystems (ext2, ext3, FAT, VFAT, etc.). VFS provides a common API (open, close, read, write) and sits above the buffer cache and device drivers, allowing user programs to access files without knowing the underlying filesystem type.
1.4 Device Drivers
Device drivers run in kernel mode, providing abstract interfaces to hardware while handling device‑specific details. Errors in drivers can crash the system.
1.5 Network Interface (NET)
Linux supports BSD sockets and the full TCP/IP stack. The network subsystem consists of socket APIs, protocol layers, and device drivers for hardware communication.
2. Linux Shell
The shell is the user interface that interprets commands and passes them to the kernel. Common shells include Bourne Shell, Bash (Bourne Again Shell), Korn Shell, and C Shell.
3. Linux Filesystem
Linux supports many filesystem types (ext2, ext3, ext4, FAT, VFAT, NTFS, XFS, JFS, ReiserFS, etc.). Files are organized into directories forming a single tree rooted at /. The article describes file types (regular, directory, link, device, FIFO, socket) and how to view them with ls -l, file, or stat.
3.1 File Types
Regular files, directories, symbolic links, hard links, device files (block and character), FIFO pipes, and sockets.
3.2 Linux Directory Structure
Key directories: /bin, /dev, /etc, /home, /lib, /sbin, /tmp, /root, /mnt, /proc, /var, /usr (with sub‑directories /usr/bin, /usr/sbin, /usr/lib, etc.).
3.3 Filesystem Types and Features
Describes ext2/ext3, RAMFS, NFS, FAT variants, NTFS, XFS, JFS, ReiserFS, UDF, and others, explaining formatting, superblock, inode, and data block concepts.
3.4 Inode and Block Allocation
Explains indexed allocation (used by ext2/3) versus FAT’s chained allocation, and the impact on fragmentation and performance.
3.5 Mounting Filesystems
Mounting attaches a filesystem’s root to a directory (mount point). The mount command syntax and common options ( -t, -o) are shown. Example for mounting a Windows FAT partition:
# mount -t vfat /dev/hda5 /mnt/winc3.6 Automatic Mounting via /etc/fstab
The /etc/fstab file lists filesystems to mount at boot, with fields for device, mount point, type, and options (e.g., defaults, ro, rw, user, noauto).
3.7 Hard and Symbolic Links
Hard links share the same inode; deleting one does not affect the other. Symbolic links are special files containing a pathname and can span filesystems; they become dangling if the target is removed.
3.8 Common File Management Commands
Disk utilities: fdisk, df, du. Directory navigation: cd, pwd, mkdir, rmdir. File operations: ls, cp, mv, rm. Viewing content: cat, more, less, head, tail. Permissions: chmod, chown, chgrp. Search: which, whereis, locate, find.
4. Linux Applications
Typical Linux distributions include editors, programming languages, X Window system, office suites, internet tools, and databases.
5. Linux Kernel Parameter Tuning
Kernel parameters are exposed via the /proc filesystem and can be adjusted at runtime to optimise performance.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Architects' Tech Alliance
Sharing project experiences, insights into cutting-edge architectures, focusing on cloud computing, microservices, big data, hyper-convergence, storage, data protection, artificial intelligence, industry practices and solutions.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
