You are on page 1of 54

Understanding Operating Systems Sixth Edition

Chapter 16 Linux Operating System

Learning Objectives
After completing this chapter, you should be able to describe: The design goals for the Linux operating system The flexibility offered by using files to manipulate devices The differences between command-driven and menu-driven interfaces The roles of the Memory, Device, File, Processor, and Network Managers Some strengths and weaknesses of Linux
2

Understanding Operating Systems, Sixth Edition

Overview
POSIX-compliant Portable
Versions for cell phones, supercomputers, and computing systems in between

Source code: freely available


Configurable: run any device, meet any specification

User interface
Powerful desktop GUIs attracts users

Highly modular
Multiple modules load and unload on demand
Technically robust operating system
Understanding Operating Systems, Sixth Edition 3

History
Developed by Linus Torvalds (1991) Original purpose
Maximize Intel 80386 microprocessors limited capabilities Roots
Minix: miniature UNIX with more functionality

First version meant for small microcomputer


Expensive commercial computer features
Flexibility and functionality

Brought UNIX features to small computer


Understanding Operating Systems, Sixth Edition 4

History (cont'd.)
Open-source program
Updates accepted from anyone

User interface
Originally typed and cryptic commands Today
Command-driven interface (Terminal mode) Graphical user interface (GUI)

Red Hat Linux provided initial primary support


Worlds leading Linux distributor (until 2003)

GNU General Public License


Understanding Operating Systems, Sixth Edition 5

History (cont'd.)

Understanding Operating Systems, Sixth Edition

History (cont'd.)

Understanding Operating Systems, Sixth Edition

Design Goals
Three goals
Modularity Simplicity Portability

Numerous standard utilities


Eliminates need to write special code Used in combination for specific tasks

Numerous functions Conforms to IEEE POSIX specifications


Portable Operating System Interface for Computer Environments
Understanding Operating Systems, Sixth Edition 8

Design Goals (cont'd.)

Understanding Operating Systems, Sixth Edition

Memory Management
Space allocation
Kernel: 1 GB high order memory Executing processes: 3 GB memory

Process execution
Segment fixed size System calls change segment size

Memory protection
Based on information type stored in address space region for process

Understanding Operating Systems, Sixth Edition

10

Memory Management (cont'd.)


Page loading
Least recently used algorithm (LRU) Maintains a dynamically managed memory area and page cache (new and old pages inserted and deleted)

System page tables


Tracks free and busy pages

Virtual memory
Managed using multiple-level table hierarchy
64- and 32-bit architectures

Added flexibility with swap devices


May deactivate without rebooting
Understanding Operating Systems, Sixth Edition 11

Memory Management (cont'd.)


Virtual memory managed using multiple-level table hierarchy
Four fields in virtual address

Understanding Operating Systems, Sixth Edition

12

Memory Management (cont'd.)

Understanding Operating Systems, Sixth Edition

13

Memory Management (cont'd.)


Buddy algorithm
Grouping and splitting equal-sized page frames
Give more contiguous space to job

Page replacement algorithm


Clock page replacement policy expanded version Uses eight-bit byte to track pages activity
Referred to as age

Understanding Operating Systems, Sixth Edition

14

Memory Management (cont'd.)

Understanding Operating Systems, Sixth Edition

15

Processor Management
Uses same parent-child process management design found in UNIX Personality concept
Allow processes from other operating systems to be executed

Understanding Operating Systems, Sixth Edition

16

Organization of Process Table


Descriptor: references process Contains approximately 70 fields
Describes process attributes
Information needed to manage process

Dynamically allocated by kernel


Process execution time

Organized by doubly linked lists


Next run field Previously run field

Scheduler manages and updates descriptors


Macros
Understanding Operating Systems, Sixth Edition 17

Process Synchronization
Wait queues and semaphores
Synchronize two processes with each other

Wait queue
Linked circular list of process descriptors Problems solved
Mutual exclusion and producers and consumers

Semaphore structure
Three fields (semaphore counter, number of waiting processes, list of processes waiting for semaphore)
Counter contains binary values Except if several units of one resource available
Understanding Operating Systems, Sixth Edition 18

Process Management
Linux scheduler
Scans processes list in READY state Chooses process to execute
Using predefined criteria

Three scheduling types


Real-time processes (two) Normal processes (one)

Process scheduling policy determination


Combination of type and priority

Understanding Operating Systems, Sixth Edition

19

Process Management (cont'd.)

Understanding Operating Systems, Sixth Edition

20

Process Management (cont'd.)


First type
Highest priority (SCHED_FIFO)
First in, first out algorithm

Not preemptible Runs to completion unless:


Process goes into WAIT state Process relinquishes processor voluntarily

All FIFO processes complete


Scheduler processes lower priority types

Understanding Operating Systems, Sixth Edition

21

Process Management (cont'd.)


Second type
Medium priority (SCHED_RR)
Round robin algorithm with small time quantum

Time quantum expires


Other higher priority processes (FIFO, RR ) selected and executed Before first process allowed to complete

Third type
Low priority (SCHED_OTHER) Executed if no higher priority processes in READY queue
Understanding Operating Systems, Sixth Edition 22

Device Management
Device independent
Improves portability

Device drivers
Supervise data transmission
Between main memory and peripheral unit

Devices assigned
Name Descriptors
Further identify each device Stored in device directory
Understanding Operating Systems, Sixth Edition 23

Device Management (cont'd.)

Understanding Operating Systems, Sixth Edition

24

Device Management (cont'd.)


Device drivers
Comprehensive collection in Linux

Required driver not available


Obtain from another source
Install separately

Manually write the driver


Requires skilled programmer

Understanding Operating Systems, Sixth Edition

25

Device Classifications
Device identification
Minor device number
Passed to device driver as an argument Accesses one of several identical physical devices

Major device number


Index to array to access appropriate code

Configuration table for each class


Entry point into driver Only connection between system code and driver Importance
Allows quick creation of device drivers
Understanding Operating Systems, Sixth Edition 26

Device Drivers
Support for standard classes introduced by UNIX Allow new device classes supporting new technology Device classes not rigid
Create large, complex, multiple function drivers Discouraged because:
Users share code, demand simple drivers Modular code supports system scalability and extendibility goal

Encouraged: drivers maximizing systems effective device usage


Understanding Operating Systems, Sixth Edition 27

Device Drivers (cont'd.)


Notable feature
Accept new device drivers on the fly
System up and running No reboot necessary

Understanding Operating Systems, Sixth Edition

28

Device Classes
Three standard classes

Understanding Operating Systems, Sixth Edition

29

Device Classes (cont'd.)


Character (char) devices
Accessed as a stream of bytes
Communications port, monitor, other byte-stream-fed device

Implement open, close, read, write system calls Accessed by file system nodes
Look like ordinary data area

Drivers treated as ordinary files


Exception: drivers are data channels accessed sequentially
Understanding Operating Systems, Sixth Edition 30

Device Classes (cont'd.)


Block devices
Host a file system (hard disk) Accessed by file system nodes in /dev directory
Transfer in blocks of data

Similarity to char driver


Appear as ordinary files

Dissimilarity to char driver


Access file system in connection with device (not possible with char device)

Understanding Operating Systems, Sixth Edition

31

Device Classes (cont'd.)


Network interfaces
Function
Send and receive information packets Directed by network subsystem

Network device functions


Relate to packet transmission Not read and write calls Dissimilar from block and char

System device handled by device driver


Under direction of Linux subsystem
Understanding Operating Systems, Sixth Edition 32

File Management
Data structures Filename conventions Directory listings

Understanding Operating Systems, Sixth Edition

33

Data Structures
Files organized in directories
Connected in treelike structure

Five file types

Understanding Operating Systems, Sixth Edition

34

Filename Conventions
Case sensitive
Recognizes uppercase and lowercase letters

Up to 255 characters long Contain alphabetic characters, underscores, numbers File suffixes: optional Can include space
Complications if running command-line programs

Uses file hierarchy


First slash indicates an absolute path name
Understanding Operating Systems, Sixth Edition 35

Filename Conventions (cont'd.)

Understanding Operating Systems, Sixth Edition

36

Filename Conventions (cont'd.)


Path name rules
Path name starting with slash (at root directory) Path name
One name or list of names separated by slashes

Last name on list


Name of file requested Preceding names must be directory names

Two periods (..) in path name


Move upward in hierarchy (closer to root) Only way to go up hierarchy Other path names go down tree
Understanding Operating Systems, Sixth Edition 37

Filename Conventions (cont'd.)


Data structures: Virtual File System (VFS)
Kernel
Allows processes to access files in a consistent manner Maintains interface between file related system calls and file management code

Virtual file system layer


Receives process-initiated system call to files Performs file operations Independent of file system format Redirects request to module managing file
38

Understanding Operating Systems, Sixth Edition

Directory Listings
Creation
ls or ls -l command GUI interface

Displays:
File or directory name Size Modification date and time

Permissions column
Code: files type and access privileges Order of letters indicates the specific access granted
Understanding Operating Systems, Sixth Edition 39

Directory Listings (cont'd.)

Understanding Operating Systems, Sixth Edition

40

Directory Listings (cont'd.)


First column character: nature of folder entry
Dash (-) indicates a file d indicates a directory file l indicates a link b indicates a block special file c indicates a character special file

Next three characters (rwx): file owner privileges


r indicates read access w indicates write access x indicates execute access
Understanding Operating Systems, Sixth Edition 41

Directory Listings (cont'd.)


Next three characters
Group access privileges
Group: set of users, excluding owner, having something in common (project, class, department) System-wide group of users: world

Last three characters


Access privileges granted to others
Others: users at large (excluding owner and group member)

Understanding Operating Systems, Sixth Edition

42

Directory Listings (cont'd.)


Change file security
Owner (and only the owner) opens file properties to be protected
File-Properties from the File menu

Click on Permissions tab Choose the appropriate access


For owner, group, others

Understanding Operating Systems, Sixth Edition

43

User Interface
Early Linux versions
Required typed commands
Thorough knowledge of valid commands required

Current versions
Include powerful and intuitive GUI desktops
Novice user can use successfully

Navigate operating system Can still use Terminal mode


Type commands similar to those used for UNIX

Understanding Operating Systems, Sixth Edition

44

Command-Driven Interfaces
Typed command general syntax
command arguments filename

Command: legal operating system command Arguments: required or optional Filename: filename
Relative or absolute path name

Shell (bash shell)


Command interpreter Interprets and executes command Key to system program coordination and combination
Understanding Operating Systems, Sixth Edition 45

Command-Driven Interfaces (cont'd.)

Understanding Operating Systems, Sixth Edition

46

Graphical User Interfaces


Multiple graphical user interfaces (often free)
Allowing choice for end users Different GUIs used by different users on same system (certain environments) Flexibility Spurring Linux acceptance

Sophisticated Windows-compatible word processors, spreadsheet, presentation applications (some at no cost)


Spurring Linux popularity
Understanding Operating Systems, Sixth Edition 47

System Monitor
System Monitor window
System well-being information Immediate history
CPU, memory, network usage

Other information
Supported file systems Currently running processes information

Understanding Operating Systems, Sixth Edition

48

System Monitor (cont'd.)

Understanding Operating Systems, Sixth Edition

49

Service Settings
Variety of services help manage system
Linux distribution dependent (see documentation)

Understanding Operating Systems, Sixth Edition

50

System Logs
System logs
Provide detailed description of activity on system Invaluable to administrators
Tracking system malfunction Firewall failure Disabled device

Found in /var/log directory System log viewer to see data

Understanding Operating Systems, Sixth Edition

51

System Logs (cont'd.)

Understanding Operating Systems, Sixth Edition

52

Keyboard Shortcuts
Users easily switch from one task to another Keyboard shortcuts
Many identical to commonly used Windows operating systems shortcuts
Ease operating system transition

Example: CTRL-V
Quick way to issue PASTE command Linux, UNIX, and Windows

Understanding Operating Systems, Sixth Edition

53

Summary
Originally designed to gain more microcomputer chip power
Evolved into powerful, flexible operating system
Runs supercomputers, cell phones, many devices

Unparalleled popularity among programmers


Contribute standard code set enhancements

Supports broad range of applications


Available for minimal cost and easy to install Growing acceptance among non-programmers

Large organizations
Commercial Linux products available
Understanding Operating Systems, Sixth Edition 54

You might also like