Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

59
Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System

Transcript of Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Page 1: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems Fifth Edition

Chapter 16Linux Operating System

Page 2: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 2

Learning Objectives

• The design goals for the Linux operating system

• The significance of 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

Page 3: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 3

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

Page 4: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 4

History

• Developed by Linus Torvalds (1991)

• Original purpose– Maximize Intel 80386 microprocessor’s 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

Page 5: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 5

History (continued)

• 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– World’s leading Linux distributor (until 2003)

• GNU General Public License

Page 6: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 6

Page 7: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 7

History (continued)

Page 8: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 8

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

Page 9: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 9

Design Goals (continued)

Page 10: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 10

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

Page 11: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 11

Memory Management (continued)

• 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

Page 12: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 12

Memory Management (continued)

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

Page 13: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 13

Memory Management (continued)

Page 14: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 14

Memory Management (continued)

• 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 page’s activity

• Referred to as “age”

Page 15: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 15

Memory Management (continued)

Page 16: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 16

Processor Management

• Uses same parent-child process management design found in UNIX

• “Personality” concept– Allow processes from other operating systems to be

executed

Page 17: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 17

Organization of Table of Processes

• 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

Page 18: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 18

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

Page 19: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 19

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

Page 20: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 20

Process Management (continued)

Page 21: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 21

Process Management (continued)

• 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

Page 22: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 22

Process Management (continued)

• 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

Page 23: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 23

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

Page 24: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 24

Device Management (continued)

Page 25: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 25

Device Management (continued)

• Device drivers– Comprehensive collection in Linux

• Required driver not available– Obtain from another source

• Install separately

– Manually write the driver• Requires skilled programmer

Page 26: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 26

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

Page 27: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 27

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 system’s effective

device usage

Page 28: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 28

Device Drivers (continued)

• Notable feature– Accept new device drivers on the fly

• System up and running

• No reboot necessary

Page 29: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 29

Device Classes

• Three standard classes

Page 30: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 30

Device Classes (continued)

• 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

Page 31: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 31

Device Classes (continued)

• 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)

Page 32: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 32

Device Classes (continued)

• 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

Page 33: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 33

Device Classes (continued)

• Open and release– Allocate and deallocate the appropriate device– Open operation example

• Verify device available and working• Increase device usage counter by one (subsystem

knows module cannot be unloaded until file appropriately closed)

• Initialize device so old data is removed and device ready to accept new data

• Identify minor number and update appropriate pointer (if necessary)

• Allocate appropriate data structure

Page 34: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 34

Device Classes (continued)

• Open and release (continued)– Release operation example

• Deallocate resources allocated with open function

• Shut down device

• Reduce usage counter by one (device released to another module)

Page 35: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 35

File Management

• Data structures

• Filename conventions

• Directory listings

Page 36: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 36

Data Structures

• Files organized in directories– Connected in treelike structure

• Five file types

Page 37: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 37

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

Page 38: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 38

Filename Conventions (continued)

Page 39: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 39

Filename Conventions (continued)

• 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

Page 40: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 40

Filename Conventions (continued)

• 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

Page 41: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 41

Directory Listings

• Creation– ls or ls -l command– GUI interface

• Displays:– File or directory name– Size– Modification date and time

• Permissions column– Code: file’s type and access privileges– Order of letters indicates the specific access granted

Page 42: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 42

Directory Listings (continued)

Page 43: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 43

Directory Listings (continued)

Page 44: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 44

Directory Listings (continued)

• 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

Page 45: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 45

Directory Listings (continued)

• 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)

Page 46: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 46

Directory Listings (continued)

• 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

Page 47: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 47

Directory Listings (continued)

Page 48: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 48

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

Page 49: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 49

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

Page 50: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 50

Command-Driven Interfaces (continued)

Page 51: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 51

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

Page 52: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 52

System Monitor

• System Monitor window – System well-being information– Immediate history

• CPU, memory, network usage

• Other information– Supported file systems – Currently running processes information

Page 53: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 53

System Monitor (continued)

Page 54: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 54

Service Settings

• Variety of services help manage system– Linux distribution dependent (see documentation)

Page 55: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 55

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

Page 56: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 56

System Logs (continued)

Page 57: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 57

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

Page 58: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 58

Keyboard Shortcuts (continued)

Page 59: Understanding Operating Systems Fifth Edition Chapter 16 Linux Operating System.

Understanding Operating Systems, Fifth Edition 59

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