Fundamentals 34 min read

Understanding Linux: Kernel, Shell, Filesystem, and Core Components Explained

This article provides a comprehensive overview of Linux's core components—including the kernel, memory and process management, virtual file system, device drivers, network stack, shell variants, file types, directory hierarchy, partitioning, mounting, and essential command‑line tools—while illustrating each concept with diagrams and code examples.

Liangxu Linux
Liangxu Linux
Liangxu Linux
Understanding Linux: Kernel, Shell, Filesystem, and Core Components Explained

Linux System Overview

Linux systems consist of four main parts: the kernel, the shell, the file system, and user applications. Together they enable users to run programs, manage files, and interact with the operating system.

1. Linux Kernel

The kernel is the core of the OS, handling process scheduling, memory management, device drivers, the file system, and networking. Its source code resides under ./linux/kernel, with architecture‑specific code in ./linux/arch.

1.1 Memory Management

Linux uses virtual memory, dividing physical memory into 4 KB pages. The slab allocator abstracts these pages for efficient allocation. When memory runs low, pages are swapped to disk via the swap mechanism. Source code is located in ./linux/mm.

1.2 Process Management

Processes are scheduled using time slices; the scheduler selects the next runnable process based on priority. Linux provides inter‑process communication mechanisms such as signals, pipes, shared memory, semaphores, and sockets.

1.3 File System Layer (VFS)

Linux presents a unified Virtual File System (VFS) that abstracts underlying file system implementations (ext2, ext3, FAT, NTFS, etc.). VFS offers a common API for operations like open, read, write, and close. The VFS sits above the buffer cache, which in turn sits above device drivers.

1.4 Device Drivers

Device drivers run in kernel space with high privileges, providing abstract interfaces to hardware. Errors in drivers can crash the system.

1.5 Network Interface

Linux supports the BSD socket API and the full TCP/IP stack. Network drivers handle communication with physical network devices.

2. Linux Shell

The shell is the user interface that interprets commands and passes them to the kernel. Common shells include Bourne Shell, Bash (the default on most distributions), Korn Shell, and C Shell.

3. Linux File System Details

Linux supports many file system types (ext2, ext3, ext4, FAT, VFAT, NTFS, XFS, JFS, ReiserFS, etc.). Files are organized in a hierarchical tree rooted at /. Key directories include: /bin – essential binaries /sbin – system administration binaries /etc – configuration files /dev – device nodes /proc – virtual process information /var – variable data such as logs /usr – user applications and libraries /home – user home directories

File types include regular files, directories, symbolic links, hard links, device files, FIFOs, and sockets. Commands like ls -l, file, and stat reveal file type information.

3.1 Inodes and Blocks

Each file is represented by an inode storing metadata (permissions, timestamps, size) and pointers to data blocks. The superblock holds overall file system information such as total inode and block counts.

3.2 Mounting File Systems

Every partition is a separate file system that must be mounted to a directory (the mount point) to become accessible. The mount command syntax is:

mount [-t fstype] [-o options] device mount_point

Common options include ro (read‑only), rw (read‑write), user, and noauto. The /etc/fstab file defines filesystems to be mounted automatically at boot.

3.3 Example: Mount a Windows Partition

# mount -t vfat /dev/hda5 /mnt/winc   # mount a FAT32 (Windows) partition

3.4 Automatic Mounting

Entries in /etc/fstab such as:

/dev/hdb1 /mnt/winc vfat defaults,codepage=936,iocharset=cp936 0 0

enable the partition to be mounted automatically on boot.

3.5 Links

Hard links share the same inode as the original file; they cannot cross file system boundaries. Symbolic (soft) links are special files containing the pathname of the target and can span file systems.

4. Essential Command‑Line Tools

Disk and file management: fdisk, df, du. Directory navigation: cd, pwd, mkdir, rmdir. File operations: ls, cp, mv, rm. Viewing file contents: cat, more, less, head, tail. Permission handling: chmod, chown, chgrp, umask. Searching: which, whereis, locate, find.

5. Kernel Parameter Tuning

Kernel parameters are exposed via the /proc filesystem and can be adjusted at runtime to optimize performance.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

KernelLinuxOperating SystemShellvfsMount
Liangxu Linux
Written by

Liangxu Linux

Liangxu, a self‑taught IT professional now working as a Linux development engineer at a Fortune 500 multinational, shares extensive Linux knowledge—fundamentals, applications, tools, plus Git, databases, Raspberry Pi, etc. (Reply “Linux” to receive essential resources.)

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.