Day2 of #90daysofdevops | Linux Basics: An Introduction for Beginners

ยท

6 min read

What is Linux?

Introduction: Linux, an open-source operating system, has become an integral part of the technology landscape. Whether you're interested in exploring a career in IT or simply want to expand your knowledge, understanding the basics of Linux is a valuable skill. In this article, we'll provide an introduction to Linux for beginners, covering its history, core concepts, and essential commands.

History Of Linux:

Linux has a fascinating history that begins with its creation by Linus Torvalds in 1991. Here's a brief timeline of key events in the history of Linux:

  1. 1991: Linus Torvalds, a Finnish computer science student, announces the creation of a new operating system kernel on August 25. He initially named it "Freax," a combination of "free," "freak," and "x" (for Unix). However, Ari Lemmke, who hosted the project's server, suggested the name "Linux."

  2. 1992: The first public release of the Linux kernel, version 0.12, becomes available. It was distributed under the GNU General Public License (GPL), which promotes free software and allows users to modify and distribute the source code.

  3. 1993: The first Linux distributions emerge, including Slackware and Debian. These distributions packaged the Linux kernel with additional software and utilities to provide a complete operating system experience.

  4. 1994: The X Window System (X11) is integrated with Linux, allowing for graphical user interfaces (GUIs) to be used on Linux-based systems.

  5. 1995: Red Hat, one of the most influential Linux companies, is founded. Red Hat introduced the Red Hat Linux distribution, focusing on providing commercial support and services for Linux.

  6. Late 1990s: The popularity of Linux starts to grow rapidly. Many individuals, businesses, and organizations adopt Linux for its stability, flexibility, and open-source nature. Linux becomes widely used in server environments and gains attention in the enterprise sector.

  7. 2001: The Linux kernel reaches version 2.4, bringing significant improvements in performance, scalability, and support for various hardware architectures.

  8. 2005: Linus Torvalds releases the Linux kernel version 2.6, which introduces significant enhancements, including improved support for desktop environments, virtualization technologies, and updated networking subsystems.

  9. 2011: Linux gains significant presence in the mobile industry with the introduction of Android, a Linux-based operating system for smartphones and tablets. Android's success contributes to the popularity of Linux as a mobile platform.

  10. 2015: Microsoft announces support for running Linux distributions natively on the Windows operating system, signaling a shift in the relationship between Linux and proprietary operating systems.

  11. Present: Linux has become a dominant force in the technology world, powering servers, supercomputers, embedded systems, mobile devices, and more. Numerous Linux distributions are available, catering to various use cases and user preferences. The Linux community continues to actively develop, improve, and expand the Linux ecosystem.

Linux's history is marked by its collaborative and open-source nature, attracting a vibrant community of developers and users who contribute to its growth and success. Today, Linux is widely recognized as a reliable, secure, and flexible operating system, powering critical infrastructure and driving innovation in various domains.

Linux Architecture:

  • Linux architecture can be described in terms of its components and layers. Here is a brief explanation of the Linux architecture:

    1. Hardware Layer: At the bottom layer is the hardware, which includes the physical components of the computer system, such as the processor, memory, storage devices, and input/output devices.

    2. Kernel: The kernel is the core component of the Linux operating system. It interacts directly with the hardware and provides essential services and abstractions for other software layers. The kernel manages system resources, handles device drivers, and provides the necessary interfaces for applications to communicate with the hardware.

    3. System Libraries: On top of the kernel, Linux provides a set of system libraries, collectively known as the GNU C Library (glibc). These libraries provide standard functionality to applications, including file operations, networking, process management, and memory allocation.

    4. System Utilities: Linux includes a range of system utilities that are essential for managing and configuring the operating system. These utilities, such as bash (the default shell), coreutils, grep, sed, and awk, offer command-line tools and administrative functions for users and system administrators.

    5. Application Layer: The top layer of the Linux architecture consists of user applications. These applications can range from simple command-line tools to complex graphical user interfaces (GUIs) and server software. Linux supports a wide range of applications, including web browsers, office suites, multimedia players, development tools, and server software like web servers and database systems.

It's important to note that Linux is highly modular, and different distributions may include additional layers or components specific to their purpose or design. The architecture described here represents a general overview of the Linux system and its key components.

Linux File System:

  1. / (Root Directory): The root directory serves as the starting point of the file system hierarchy. All other directories and files are organized beneath it.

  2. /bin (Binaries): The /bin directory contains essential executable files and commands that are available to all users. These binaries include fundamental system utilities needed for basic system operations.

  3. /sbin (System Binaries): The /sbin directory holds system binaries, which are executable files specifically intended for system administration tasks. These binaries are typically restricted to privileged users.

  4. /etc (Configuration Files): The /etc directory contains system-wide configuration files. These files define the settings and behavior of various components, such as network configuration, user accounts, services, and system preferences.

  5. /home (Home Directories): Each user on a Linux system has a home directory located under the /home directory. This directory stores personal files and user-specific configuration settings.

  6. /var (Variable Data): The /var directory contains variable data files that change frequently during system operation. This includes log files, temporary files, spool directories (for print queues and mail), and other dynamically generated data.

  7. /tmp (Temporary Files): The /tmp directory is used for storing temporary files that are created by processes and applications. Files in this directory are typically deleted when the system restarts.

  8. /dev (Devices): The /dev directory contains device files that represent and provide access to various hardware devices on the system. These files are used to interact with devices such as disks, terminals, printers, and input/output devices.

  9. /proc (Process Information): The /proc directory provides an interface to access information about system processes and their configuration. It contains virtual files that allow monitoring and interaction with the kernel and running processes.

  10. /usr (User Programs): The /usr directory contains user applications, libraries, documentation, and other files associated with user programs. It is typically read-only and shared across multiple systems.

These are just a few of the important directories in the Linux file system hierarchy. Linux distributions may have additional directories and variations depending on their specific configuration and purpose. Understanding the Linux file system is crucial for navigating and managing files and directories in a Linux environment.

Conclusion: Linux provides a powerful and flexible operating system that is widely used across various industries. By grasping the basics of Linux, you'll gain a solid foundation for exploring more advanced topics and mastering the command line interface. As you continue your Linux journey, remember that practice and experimentation are key to building confidence and proficiency in this versatile operating system.

ย