Linux Operating System: Features and Evolution
Introduction to Operating Systems
An Operating System (OS) is a program (or set of programs) designed to facilitate computer use and ensure efficient operation. It acts as a control program, managing and allocating resources.
Evolution of Operating Systems
- Stage I (1943-1955): No operating systems existed. The programmer also assumed the operator’s role, manually inputting the program and receiving output via a printer. Assemblers were later introduced.
- Stage II (1956-1963): Introduction of intermediate information carriers like magnetic tapes. Serial or batch job processing emerged.
- Stage III (1963-1979): Batch job processing was refined. Multiprogramming operating systems were developed, enabling interactive/conversational user experiences.
- Stage IV (1980-Present): Development of operating systems for personal computers.
Network operating systems can be considered an extension of conventional operating systems. They include control programs and network interfaces, allowing remote computer sessions and file transfers.
Distributed operating systems are more complex. They enable transparent execution of one or more programs across multiple processors simultaneously, potentially with data distributed across different file servers. This requires sophisticated algorithms for parallel task scheduling.
What is Linux?
Linux is a Unix-compatible operating system. Two key features distinguish it:
- It is free, requiring no licensing fees.
- It comes with the source code.
The Linux kernel is the core of the system, ensuring proper software and hardware interaction. Its primary functions include:
- Memory management for all programs.
- Administration of processor time used by running programs.
- Facilitating access to computer peripherals.
Linux Kernel Versions
There are two main types of Linux kernel versions:
- Production Version: The stable version, representing the final result of experimental development.
- Development Version: An experimental version used by developers to test new features, corrections, etc. These kernels are usually unstable and should be used with caution.
Kernel versions are numbered as XX.YY.ZZ:
- XX: Indicates the main kernel series. This number changes with major changes to the kernel’s operation.
- YY: Indicates whether the version is for development (odd number) or production (even number).
- ZZ: Indicates new releases within a version, primarily addressing programming flaws/bugs.
Main Features of Linux
- Multitasking: Ability to run multiple programs concurrently using preemptive multitasking.
- Multiuser: Multiple users can use the same machine simultaneously.
- Multiplatform: Runs on various hardware platforms.
- Multiprocessor: Supports systems with more than one processor.
- Runs in protected mode on 386 processors.
- Memory protection between processes.
- Loads only necessary parts of a program from disk.
- Copy-on-write policy for page sharing among executables.
- Virtual memory paging.
- Unified memory management for user programs and disk cache.
- Dynamic and static library support (DLLs).
- State dumps.
- POSIX, System V, and BSD compatibility at the source level.
- IBCS2 emulation.
- Full source code availability, including kernel and drivers.
- POSIX task control.
- Pseudo-terminals (pty’s).
- 387 emulation in the kernel.
- Support for multiple national keyboards.
- Multiple virtual consoles.
- Support for various filesystems.
- Transparent access to MS-DOS partitions.
- UMSDOS special filesystem.
- Read-only HPFS-2 OS/2 2.1 support.
- CD File System.
- TCP/IP, including FTP, Telnet, NFS, etc.
- Appletalk.
- Netware client and server software.
- Lan Manager/Windows Native (SMB) client and server software.
- Several network protocols included in the kernel.