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