The Linux System: Speaker: Bilal Ahmad
The Linux System: Speaker: Bilal Ahmad
Speaker :
Bilal Ahmad
What is Linux?
What is Linux?
A Unix-like Operating System A famous open source project
Contents to be Discussed
Linux History Design Principles Process Management Scheduling Memory Management File Systems Input and Output Network Structure Security
Contents to be Discussed
Linux History Design Principles Process Management Scheduling Memory Management File Systems Input and Output Network Structure Security
Linux History
Linux is a modern, free operating system based on UNIX standards First developed as a small but self-contained kernel in 1991 by Linus Torvalds, with the major design goal of UNIX compatibility
Linux History
Its history has been one of collaboration by many users from all around the world, corresponding almost exclusively over the Internet. It has been designed to run efficiently and reliably on common PC hardware, but also runs on a variety of other platforms.
Linux History
GNU project started 1984 to produce a Unix-like OS
1. Founded by Richard Stallman 2. Wrote the GNU manifesto in 1985 outlining philosophy 3.Software that is free means more than free of charge
Linux Distributions
Early distributions included SLS and Slack ware. Red Hat and Debian are popular distributions from commercial and noncommercial sources, respectively.
Linux Licensing
The Linux kernel is distributed under the GNU General Public License (GPL), the terms of which are set out by the Free Software Foundation.
Contents to be Discussed
Linux History Design Principles Process Management Scheduling Memory Management File Systems Input and Output Network Structure Security
Design principles
Linux is a multiuser, multitasking system with a full set of UNIX-compatible tools. Its file system adheres to traditional UNIX semantics, and it fully implements the standard UNIX networking model Main design goals are speed, efficiency, and standardization.
The system libraries define a standard set of functions through which applications interact with the kernel, and which implement much of the operating-system functionality that does not need the full privileges of kernel code.
The system utilities perform individual specialized management tasks.
Contents to be Discussed
Linux History Design Principles Process Management Scheduling Memory Management File Systems Input and Output Network Structure Security
Process Management
UNIX process management separates the creation of processes and the running of a new program into two distinct operations. The fork system call creates a new process A new program is run after a call to execute Under UNIX, a process encompasses all the information that the operating system must maintain to track the context of a single execution of a single program. Under Linux, process properties fall into three groups: the processs identity, environment, and context.
Process identity
Process ID (PID). The unique identifier for the process; used to specify processes to the operating system when an application makes a system call to signal, modify, or wait for another process.
Process Environment
The processs environment is inherited from its parent, and is composed of two null-terminated vectors:
- The argument vector lists the command-line arguments used to invoke the running program; conventionally starts with the name of the program itself. - The environment vector is a list of NAME=VALUE pairs that associates named environment variables with arbitrary textual values.
Process Context
The (constantly changing) state of a running program at any point in time
The scheduling context is the most important part of the process context; it is the information that the scheduler needs to suspend and restart the process
Contents to be Discussed
Linux History Design Principles Process Management Scheduling Memory Management File Systems Input and Output Network Structure Security
Scheduling
The job of allocating CPU time to different tasks within an operating system
While scheduling is normally thought of as the running and interrupting of processes, in Linux, scheduling also includes the running of the various kernel tasks
Process Scheduling
Linux uses two process-scheduling algorithms:
A time-sharing algorithm for fair preemptive scheduling between multiple processes. A real-time algorithm for tasks where absolute priorities are more important than fairness.
Process Scheduling
Linux implements the FIFO and round-robin real-time scheduling classes; in both cases, each process has a priority in addition to its scheduling class
Content 5
Linux History Design Principles Process Management Scheduling Memory Management File Systems Input and Output Network Structure Security
Memory Management
Linuxs physical memory-management system deals with allocating and freeing pages, groups of pages, and small blocks of memory It has additional mechanisms for handling virtual memory, memory mapped into the address space of running processes
Memory Management
Splits memory into 3 different zones due to hardware characteristics
Splitting of Memory
Content 6
Linux History Design Principles Process Management Scheduling Memory Management File Systems Input and Output Network Structure Security
File Systems
To the user, Linuxs file system appears as a hierarchical directory tree obeying UNIX semantics. Internally, the kernel hides implementation details and manages the multiple different file systems via an abstraction layer, that is, the virtual file system (VFS).
Content 7
Linux History Design Principles Process Management Scheduling Memory Management File Systems Input and Output Network Structure Security
Metadata is cached in the buffer cache, a separate cache indexed by the physical disk block.
Content 8
Linux History Design Principles Process Management Scheduling Memory Management File Systems Input and Output Network Structure Security
Network Structure
Networking is a key area of functionality for Linux.
It supports the standard Internet protocols for UNIX to UNIX communications It also implements protocols native to non UNIX operating systems, in particular, protocols used on PC networks, such as AppleTalk and IPX
Network Structure
Internally, networking in the Linux kernel is implemented by three layers of software:
The socket interface Protocol drivers Network device drivers
Content 9
Linux History Design Principles Process Management Scheduling Memory Management File Systems Input and Output Network Structure Security
Security
The pluggable authentication modules (PAM) system is available under Linux.
PAM is based on a shared library that can be used by any system component that needs to authenticate users.
Security
Access control under UNIX systems, including Linux, is performed through the use of unique numeric identifiers (uid and gid).
Thank you