





















































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
In these slides of the operating systems the main points are:Linux System, Linux History, Design Principles, Kernel Modules, Process Management, Scheduling, Memory Management, File Systems, Input and Output, Interprocess Communication
Typology: Slides
1 / 61
This page cannot be seen from the preview
Don't miss anything!






















































ļ® Linux History
ļ® Design Principles
ļ® Kernel Modules
ļ® Process Management
ļ® Scheduling
ļ® Memory Management
ļ® File Systems
ļ® Input and Output
ļ® Interprocess Communication
ļ® Network Structure
ļ® Security
ļ® 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
ļ® 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
ļ® The core Linux operating system kernel is entirely original, but it can run much existing free UNIX software, resulting in an entire UNIX- compatible operating system free from proprietary code
ļ® Many, varying Linux Distributions including the kernel, applications, and management tools
ļ® Version 0.01 (May 1991) had no networking, ran only on 80386- compatible Intel processors and on PC hardware, had extremely limited device-drive support, and supported only the Minix file system
ļ® Linux 1.0 (March 1994) included these new features:
ļ¬ Support for UNIXās standard TCP/IP networking protocols ļ¬ BSD-compatible socket interface for networking programming ļ¬ Device-driver support for running IP over an Ethernet ļ¬ Enhanced file system ļ¬ Support for a range of SCSI controllers for high-performance disk access ļ¬ Extra hardware support
ļ® Version 1.2 (March 1995) was the final PC-only Linux kernel
ļ® Linux uses many tools developed as part of Berkeleyās BSD operating system, MITās X Window System, and the Free Software Foundation's GNU project
ļ® The min system libraries were started by the GNU project, with improvements provided by the Linux community
ļ® Linux networking-administration tools were derived from 4.3BSD code; recent BSD derivatives such as Free BSD have borrowed code from Linux in return
ļ® The Linux system is maintained by a loose network of developers collaborating over the Internet, with a small number of public ftp sites acting as de facto standard repositories
ļ® Standard, precompiled sets of packages, or distributions, include the basic Linux system, system installation and management utilities, and ready-to-install packages of common UNIX tools
ļ® The first distributions managed these packages by simply providing a means of unpacking all the files into the appropriate places; modern distributions include advanced package management
ļ® Early distributions included SLS and Slackware
ļ¬ Red Hat and Debian are popular distributions from commercial and noncommercial sources, respectively
ļ® The RPM Package file format permits compatibility among the various Linux distributions
ļ® 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
ļ® Linux is designed to be compliant with the relevant POSIX documents; at least two Linux distributions have achieved official POSIX certification
ļ® The Linux programming interface adheres to the SVR4 UNIX semantics, rather than to BSD behavior
ļ® 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
ļ® Sections of kernel code that can be compiled, loaded, and unloaded independent of the rest of the kernel
ļ® A kernel module may typically implement a device driver, a file system, or a networking protocol
ļ® The module interface allows third parties to write and distribute, on their own terms, device drivers or file systems that could not be distributed under the GPL
ļ® Kernel modules allow a Linux system to be set up with a standard, minimal kernel, without any extra device drivers built in
ļ® Three components to Linux module support:
ļ¬ module management ļ¬ driver registration ļ¬ conflict resolution
ļ® Allows modules to tell the rest of the kernel that a new driver has become available
ļ® The kernel maintains dynamic tables of all known drivers, and provides a set of routines to allow drivers to be added to or removed from these tables at any time
ļ® Registration tables include the following items:
ļ¬ Device drivers ļ¬ File systems ļ¬ Network protocols ļ¬ Binary format
ļ® A mechanism that allows different device drivers to reserve hardware resources and to protect those resources from accidental use by another driver
ļ® The conflict resolution module aims to:
ļ¬ Prevent modules from clashing over access to hardware resources ļ¬ Prevent autoprobes from interfering with existing device drivers ļ¬ Resolve conflicts with multiple drivers trying to access the same hardware
ļ® 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
ļ® Credentials. Each process must have an associated user ID and one or more group IDs that determine the processās rights to access system resources and files
ļ® Personality. Not traditionally found on UNIX systems, but under Linux each process has an associated personality identifier that can slightly modify the semantics of certain system calls ļ¬ Used primarily by emulation libraries to request that system calls be compatible with certain specific flavors of UNIX
ļ® The processās 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
ļ® Passing environment variables among processes and inheriting variables by a processās children are flexible means of passing information to components of the user-mode system software
ļ® The environment-variable mechanism provides a customization of the operating system that can be set on a per-process basis, rather than being configured for the system as a whole