Fundamentals 34 min read

Understanding Linux: Kernel, Shell, Filesystems and Core System Components

This article provides a comprehensive overview of Linux, covering its four main components—kernel, shell, file system, and applications—detailing kernel responsibilities such as memory and process management, the role of the virtual file system, device drivers, networking, shell types, file types, directory structures, disk partitioning, mounting mechanisms, hard and symbolic links, and essential command‑line tools for system administration.

Open Source Linux
Open Source Linux
Open Source Linux
Understanding Linux: Kernel, Shell, Filesystems and Core System Components

Linux System Overview

Linux consists of four main components: kernel, shell, file system, and applications.

1. Linux Kernel

The kernel is the core of the operating system, handling process management, memory management, device drivers, file system operations, and networking. Kernel source code resides in ./linux/kernel and architecture‑specific code in ./linux/arch.

Memory Management

Linux uses virtual memory, dividing RAM into pages (typically 4 KB). It employs a slab allocator, supports swapping pages to disk, and its memory‑management code is located in ./linux/mm.

Process Management

Linux provides multitasking via time slices and a priority‑based scheduler. System calls such as fork, exec, kill, and exit create, terminate, and manage processes. Inter‑process communication mechanisms include signals, pipes, shared memory, semaphores, and sockets.

File System

The Virtual File System (VFS) abstracts various concrete file systems (ext2/3, FAT, NTFS, etc.) and offers a uniform API for operations like open, read, write, and close. VFS sits between the kernel and specific file‑system drivers.

Device Drivers

Device drivers run in kernel space, providing hardware‑specific interfaces while exposing generic abstractions to the kernel. Drivers are written for IDE, SCSI, SATA, and other devices.

Network Interface (NET)

Linux implements the BSD socket API and the TCP/IP protocol stack. Network device drivers handle communication with hardware, and the network layer is built on top of the socket interface.

2. Linux Shell

The shell is a command‑line interpreter that lets users interact with the kernel. Common shells include Bourne Shell, Bash (Bourne Again Shell), Korn Shell, and C Shell.

3. Linux File System Details

File types in Linux include regular files, directories, symbolic links, device files, FIFO (named pipes), and sockets. Use ls -l to view file types. Standard directories such as /bin, /etc, /home, /usr, /var, and others each serve specific purposes.

Disk Partitions

Partitions are identified as /dev/hd[a‑z]X or /dev/sd[a‑z]X. Linux follows the PC partition scheme: primary, extended, and logical partitions. The fdisk -l command lists partition information.

Mounting

Each partition is attached to a directory (mount point) to become part of the unified directory tree. The mount command, with options -t (file‑system type) and -o (mount options), performs the operation. Automatic mounting at boot is configured in /etc/fstab.

Links

Hard links share the same inode as the original file; they cannot cross file‑system boundaries and cannot be created for directories. Symbolic (soft) links store a pathname to the target file and can span file systems. Deleting the original file invalidates hard links only when the last link is removed, while symbolic links become dangling.

Common Commands

Disk/space utilities: fdisk, df, du. Navigation: cd, pwd, ls. File operations: cp, mv, rm, ln. Permissions: chmod, chown, chgrp. Searching: find, locate, which, whereis.

Divider
Divider
Kernel diagram
Kernel diagram
VFS diagram
VFS diagram
File system hierarchy
File system hierarchy
Directory tree
Directory tree
Mount point example
Mount point example
Link diagram
Link diagram
Inode and block allocation
Inode and block allocation
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.

KernelLinuxprocessesvfsMounting
Open Source Linux
Written by

Open Source Linux

Focused on sharing Linux/Unix content, covering fundamentals, system development, network programming, automation/operations, cloud computing, and related professional knowledge.

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.