Learning Objectives
- Understand what Linux is[cite: 37].
- Learn the difference between UNIX, GNU and Linux[cite: 37].
- Understand why Linux dominates enterprise environments[cite: 37].
- Learn the history behind Linux[cite: 37].
- Prepare for Linux Architecture in the next section[cite: 37].
- Understand common Linux terminology used throughout this course[cite: 37].
📋 Prerequisites
No previous Linux experience is required[cite: 37]. This chapter is designed for complete beginners and provides the foundation required for later topics including system administration, shell scripting, networking, storage management and enterprise Linux[cite: 37]. Throughout this learning series you will gradually progress from Linux fundamentals to filesystem administration, permissions, shell scripting, networking, storage management and production troubleshooting[cite: 37].
1. Introduction
Linux is one of the most important operating systems in the world[cite: 37]. It powers web servers, enterprise databases, cloud platforms, supercomputers, networking devices, embedded systems and even Android smartphones[cite: 37].
Unlike many commercial operating systems, Linux is open source, allowing anyone to study, modify and improve its source code[cite: 37]. Because of its reliability, security and flexibility, Linux has become the preferred operating system for organizations ranging from startups to Fortune 500 companies[cite: 37].
Today, almost every IT field—including Cloud Computing, DevOps, Cybersecurity, Artificial Intelligence, Kubernetes, Containers, High Performance Computing and IBM Power Systems—relies heavily on Linux[cite: 37].
2. What is Linux?
Linux is technically a kernel, not a complete operating system[cite: 37]. The kernel is the core software that communicates directly with hardware and manages critical system resources such as CPU scheduling, memory, storage devices, networking and security[cite: 37].
To create a complete operating system, the Linux kernel is combined with utilities from the GNU Project, libraries, package managers, desktop environments and user applications[cite: 37]. This complete operating system is commonly called GNU/Linux, although most people simply refer to it as Linux[cite: 37].
| Component | Purpose |
|---|---|
| Kernel | Manages hardware, memory, CPU, storage and networking[cite: 37]. |
| Shell | Provides a command-line interface for users[cite: 37]. |
| Filesystem | Stores and organizes files and directories[cite: 37]. |
| Applications | Programs such as editors, browsers and databases[cite: 37]. |
User
│
▼
Applications
│
▼
Shell
│
▼
Linux Kernel
│
▼
Hardware
3. Why Learn Linux?
Whether you want to become a Linux Administrator, Cloud Engineer, DevOps Engineer, Site Reliability Engineer (SRE), Cybersecurity Analyst, Platform Engineer or IBM AIX Administrator, Linux knowledge is considered a fundamental technical skill[cite: 37].
Many enterprise technologies are built on Linux or integrate closely with Linux systems[cite: 37]. Learning Linux provides a strong foundation that makes it easier to understand cloud infrastructure, automation, networking and enterprise server administration[cite: 37].
| Technology | Uses Linux? |
|---|---|
| AWS | Yes[cite: 37] |
| Microsoft Azure | Yes[cite: 37] |
| Google Cloud | Yes[cite: 37] |
| Docker | Yes[cite: 37] |
| Kubernetes | Yes[cite: 37] |
| Oracle Database | Yes[cite: 37] |
| SAP HANA | Yes[cite: 37] |
| IBM Power Systems | Yes[cite: 37] |
4. History of Linux
Understanding Linux history helps explain why modern Linux systems are built the way they are today[cite: 37]. Linux was not developed from scratch in isolation[cite: 37]. It evolved from decades of innovation beginning with UNIX and later the GNU Project[cite: 37].
UNIX (1969)
UNIX was developed at Bell Labs by Ken Thompson and Dennis Ritchie[cite: 37]. It introduced many concepts that are still used today, including hierarchical filesystems, multitasking and multi-user computing[cite: 37].
GNU Project (1983)
Richard Stallman started the GNU Project with the goal of creating a completely free UNIX-like operating system[cite: 37]. The project successfully developed compilers, editors, shells and many essential utilities—but it still lacked a working kernel[cite: 37].
Linux Kernel (1991)
In 1991, Finnish computer science student Linus Torvalds developed a new kernel as a personal project[cite: 37]. When combined with GNU software, it became the operating system we now know as Linux[cite: 37].
1969
│
├── UNIX
1983
│
├── GNU Project
1991
│
├── Linux Kernel
1992
│
├── GNU + Linux
Today
│
└── Cloud • AI • Containers • Enterprise
5. Linux Architecture
Linux follows a layered architecture where each layer has a specific responsibility[cite: 37]. This modular design makes Linux stable, secure and easy to maintain[cite: 37]. Instead of allowing applications to communicate directly with hardware, all requests pass through the Linux kernel, ensuring efficient resource management and system security[cite: 37].
+----------------------------------+
| User Applications |
+----------------------------------+
│
▼
+----------------------------------+
| Shell |
+----------------------------------+
│
▼
+----------------------------------+
| System Libraries |
+----------------------------------+
│
▼
+----------------------------------+
| Linux Kernel |
+----------------------------------+
│
▼
+----------------------------------+
| CPU • Memory • Disk • NIC |
| Hardware |
+----------------------------------+
Every command entered by a user follows this path[cite: 37]. For example, when you run the ls command, the shell sends the request to the kernel, which interacts with the filesystem and returns the results back to the terminal[cite: 37].
Architecture Components
| Layer | Responsibility |
|---|---|
| User Applications | Programs such as Firefox, MySQL, Apache and Vim[cite: 37]. |
| Shell | Interprets user commands and communicates with the kernel[cite: 37]. |
| System Libraries | Provide standard functions used by applications[cite: 37]. |
| Kernel | Controls hardware and manages system resources[cite: 37]. |
| Hardware | CPU, RAM, Storage, Network Interface Cards and peripherals[cite: 26]. |
6. Linux Kernel
The kernel is the heart of Linux[cite: 37]. It starts during system boot and remains in memory until the system is powered off[cite: 37]. Every hardware device communicates with users through the kernel[cite: 37]. Without the kernel, applications cannot access the processor, memory, storage devices or network interfaces[cite: 37].
Main Responsibilities of the Kernel
| Component | Function |
|---|---|
| Process Management | Creates, schedules and terminates processes[cite: 37]. |
| Memory Management | Allocates RAM and manages virtual memory[cite: 37]. |
| Device Drivers | Controls hardware devices such as disks and network adapters[cite: 37]. |
| Filesystem Management | Provides access to files and directories[cite: 37]. |
| Networking | Handles TCP/IP communication and routing[cite: 37]. |
| Security | Enforces permissions and access control[cite: 37]. |
7. What is a Shell?
The shell is a command interpreter that provides the interface between the user and the Linux kernel[cite: 37]. Whenever you type a command, the shell interprets it and requests the kernel to perform the required operation[cite: 37].
User ──► Command ──► Shell ──► Kernel ──► Hardware
Popular Linux Shells
| Shell | Description |
|---|---|
| Bash | Default shell on most Linux distributions[cite: 37]. |
| Korn Shell (ksh) | Popular in enterprise UNIX environments including AIX[cite: 37]. |
| Zsh | Advanced interactive shell with plugins[cite: 37]. |
| Fish | User-friendly shell with auto suggestions[cite: 37]. |
| Tcsh | Enhanced C Shell[cite: 37]. |
Useful Commands
# Display current shell
echo $SHELL
# List installed shells
cat /etc/shells
# Change login shell
chsh
8. CLI vs GUI
Linux systems can be managed using either a Command Line Interface (CLI) or a Graphical User Interface (GUI)[cite: 37]. While both perform the same tasks, enterprise administrators overwhelmingly prefer the command line[cite: 37].
| GUI | CLI |
|---|---|
| Mouse-driven[cite: 37] | Keyboard-driven[cite: 37] |
| Easy for beginners[cite: 37] | Powerful and fast[cite: 37] |
| Consumes more resources[cite: 37] | Lightweight[cite: 37] |
| Difficult to automate[cite: 37] | Easy to automate using scripts[cite: 37] |
| Requires graphical UI[cite: 37] | Works remotely over SSH[cite: 37] |
9. Linux Distributions
A Linux distribution combines the Linux kernel with system utilities, package managers, libraries and applications[cite: 37]. Different distributions are designed for different purposes such as desktop computing, enterprise servers or software development[cite: 37].
| Distribution | Based On | Typical Usage |
|---|---|---|
| Ubuntu | Debian[cite: 37] | Desktop, Cloud[cite: 37] |
| Debian | Independent[cite: 37] | Stable Servers[cite: 37] |
| Red Hat Enterprise Linux (RHEL) | Fedora[cite: 37] | Enterprise[cite: 37] |
| Rocky Linux | RHEL[cite: 37] | Enterprise[cite: 37] |
| AlmaLinux | RHEL[cite: 37] | Enterprise[cite: 37] |
| Fedora | Independent[cite: 37] | Latest Technologies[cite: 37] |
| Oracle Linux | RHEL[cite: 37] | Oracle Workloads[cite: 37] |
| openSUSE | Independent[cite: 37] | Desktop & Enterprise[cite: 37] |
10. Why Enterprises Prefer RHEL-Based Linux
Although Ubuntu is popular among developers, many enterprise organizations choose Red Hat Enterprise Linux (RHEL) or compatible distributions such as Rocky Linux and AlmaLinux[cite: 37].
- Long-term support (LTS)[cite: 37]
- Vendor support[cite: 37]
- Security updates[cite: 37]
- Certified hardware compatibility[cite: 37]
- Enterprise software certification[cite: 37]
- Stable release lifecycle[cite: 37]
- Professional technical support[cite: 37]
Commands Covered
uname- Print system information[cite: 37]lsb_release- Display Linux distribution info[cite: 37]whoami- Print effective user ID[cite: 37]hostname- Show or set system hostname[cite: 37]date- Display or set system date and time[cite: 37]uptime- Show how long system has been running[cite: 37]w- Show who is logged on and what they are doing[cite: 37]man- Display manual pages[cite: 37]info- Read Info documents[cite: 37]help- Display help for shell builtins[cite: 37]