前辅文
1 Background of UNIX Operating System
1.1 Introduction of Operating System
1.2 Types of UNIX
1.3 History of UNIX
1.4 Summary
Problems
References
2 How to Start
2.1 UNIX Software Architecture
2.1.1 UNIX Kernel
2.1.2 System Call Interface
2.1.3 Standard Libraries and Language Libraries
2.1.4 UNIX Shell
2.1.5 Applications
2.2 UNIX Environment
2.3 Character User Interface Versus Graphical User Interface
2.4 UNIX Command Lines
2.4.1 UNIX Command Syntax
2.4.2 Directory Operation Commands
2.4.3 File Operation Commands
2.4.4 Displaying Online Help
2.4.5 General Utility Commands
2.4.6 Summary for Useful Common Commands
2.5 UNIX Window Systems
2.5.1 Starting X
2.5.2 Working with a Mouse and Windows
2.5.3 Terminal Window
2.5.4 Using a Mouse in Terminal Windows
2.6 Shell Setup Files
2.7 Summary
Problems
References
3 Text Editors
3.1 Difference Between Text Editors and Word Processors
3.2 Introduction of Pico Editor
3.2.1 Start pico, Save File, Exit pico
3.2.2 Create a New File with Pico
3.2.3 Cursor-moving Commands in Pico
3.2.4 General Keystroke Commands in Pico
3.3 The vi Editor and Modes
3.3.1 Three Modes of the vi and Switch Between Them
3.3.2 Start vi, Create a File, Exit vi
3.3.3 Syntax of the vi Commands
3.4 Practicing in Insert Mode of the vi Editor
3.5 Practicing in Command Mode and Last Line Mode of the vi Editor
3.6 Using Buffers of the vi Editor
3.7 The vi Environment Setting
3.8 Introduction of the emacs Editor
3.8.1 Start emacs, Create File, Exit emacs
3.8.2 Buffers, Mark and Region in emacs
3.8.3 Cursor Movement Commands
3.8.4 Keyboard Macros
3.8.5 Search and Replace
3.8.6 Operation Example
3.8.7 Programming in emacs
3.9 Summary
Problems
References
4 UNIX Process Management
4.1 Multiple Processes' Running Concurrently
4.1.1 Fundamental Concept for Scheduler and Scheduling Algorithm
4.1.2 UNIX Scheduling Algorithm and Context Switch
4.2 Process States
4.2.1 Fundamental Concept for Process States
4.2.2 UNIX Process States
4.3 Process Image and Attributes
4.3.1 UNIX Process Attributes in Kernel
4.3.2 UNIX Process Attributes from User Angle
4.4 Creating a Process in UNIX
4.4.1 Fork System Call
4.4.2 How UNIX Kernel to Execute Shell Commands
4.5 Process Control
4.5.1 Running Command in Foreground or in Background
4.5.2 More Concepts about Process Concurrently Execution in UNIX
4.5.3 UNIX Inter-Process Communication
4.5.4 UNIX Signals
4.5.5 Termination of Processes
4.5.6 Daemons—UNIX Background "Guardian Spirits"
4.6 UNIX System Boot and Init Process
4.7 Summary
Problems
References
5 UNIX Memory Management
5.1 Outline of Memory Management
5.1.1 Evolution of Memory Management
5.1.2 Memory Allocation Algorithms in Swapping
5.1.3 Page Replacement Algorithms in Demand Paging
5.2 Process Swapping in UNIX
5.2.1 Swapped Content
5.2.2 Timing of Swapping
5.2.3 Allocation Algorithm
5.2.4 Selection Principle of Swapped Processes
5.2.5 Swapper
5.2.6 Swapping Effect
5.3 Demand Paging in UNIX
5.3.1 Demand Paging
5.3.2 Page Replacement
5.4 Summary
Problems
References
6 UNIX File System
6.1 UNIX File System Structure
6.1.1 File System Organization
6.1.2 Home and Working Directories
6.1.3 Absolute and Relative Pathnames
6.1.4 UNIX Inodes and Data Structures for File System
6.2 UNIX File Concept and Types of Files
6.2.1 Types of Files
6.2.2 Ordinary Files
6.2.3 Directories
6.2.4 Special Files
6.2.5 Pipes
6.2.6 Sockets
6.2.7 Link Files
6.3 Managing Files and Directories
6.3.1 Displaying Pathname for Home Directory and Changing Directories
6.3.2 Viewing Directories and File Attributes
6.3.3 Creating Directories and Files
6.3.4 Displaying Type of a File
6.3.5 Making Lines in File Ordered
6.3.6 Searching Strings in Files
6.3.7 The eof and CRTL-D
6.4 File and Directory Wildcards
6.5 UNIX File Storage and File System Implementation
6.5.1 File System Physical Structure and Allocation Strategies
6.5.2 mode, Inode List and Inode Table
6.5.3 Disk Physical Structure and Mapping Pathname to Inode
6.5.4 File Descriptors
6.5.5 System Calls for File System Management
6.5.6 Standard Files
6.6 Summary
Problems
References
7 UNIX I/O System, I/O Redirection and Piping
7.1 Standard Input and Output, Standard Files
7.1.1 Standard Input and Output
7.1.2 Standard Input, Output and Error Files
7.2 Input Redirection
7.2.1 Input Redirection with < Operator
7.2.2 Input Redirection with File Descriptor
7.3 Output Redirection
7.3.1 Output Redirection with > Operator
7.3.2 Creating a File with Output Redirection
7.3.3 Output Redirection with File Descriptor
7.4 Appending Output Redirection
7.4.1 Appending Output Redirection with >> Operator
7.4.2 Appending Output Redirection with the File Descriptor
7.5 Standard Error Redirection
7.5.1 Error Redirection by Using File Descriptor
7.5.2 Appending Error Redirection by Using File Descriptor
7.5.3 Error Redirection in C Shell
7.6 Combining Several Redirection Operators in One Command Line
7.6.1 Combining Input and Output Redirections in One Command Line
7.6.2 Combining Output and Error Redirections in One Command Line
7.6.3 Combining Input, Output and Error Redirections in One Command Line
7.6.4 Combining Appending Redirection with Other Redirections in One Command Line
7.7 UNIX Pipes and Filters
7.7.1 Concepts of Pipe and Filter
7.7.2 Examples of Pipes and Filters
7.7.3 Combining Pipes and I/O Redirections in One Command Line
7.7.4 Practical Examples of Pipes
7.7.5 Pipes in C Shell
7.7.6 Named Pipes
7.8 UNIX Redirection and Pipe Summary
7.9 I/O System Implementation in UNIX
7.9.1 I/O Mechanisms in UNIX
7.9.2 Block Special Files and Buffer Cache
7.9.3 Character Special Files and Streams
7.9.4 Sockets for Networks in UNIX
7.10 Summary
Problems
References
8 UNIX Shell Introduction
8.1 Variety of UNIX Shells
8.1.1 Shell Evolution
8.1.2 Login Shell
8.2 UNIX Shell as a Command Interpreter
8.2.1 Shell Internal and External Commands
8.2.2 Shell's Interpreting Function
8.2.3 Searching Files Corresponding to External Commands
8.3 Environment Variables
8.3.1 Some Important Environment Variables
8.3.2 How to Change Environment Variables
8.3.3 Displaying the Current Values of Environment Variables
8.4 Switching Between UNIX Shells
8.4.1 Why to Change Shell
8.4.2 How to Change Shell
8.4.3 Searching for a Shell Program
8.5 Shell Metacharacters
8.6 Summary
Problems
References
9 How to Program in Bourne Shell (1)
9.1 Bourne Shell Scripts
9.1.1 Simplified Structure of Bourne Shell Scripts
9.1.2 Program Headers and Comments
9.1.3 Exit Command
9.2 Shell Variables
9.3 Bourne Shell Variable Commands
9.3.1 Reading Shell Variables
9.3.2 Assignment Statement
9.3.3 Resetting Variables
9.3.4 Exporting Variables
9.3.5 Making Variables Read-only
9.3.6 Reading Standard Input
9.4 Shell Scripts' Argument Transport
9.4.1 Shell Positional Parameters
9.4.2 Setting Values of Positional Parameters
9.4.3 Shift Command
9.5 How to Execute a Bourne Shell Script
9.5.1 Setting File Access Permissions
9.5.2 One Way to Make Bourne Shell Script Executable
9.5.3 Another Way to Make Bourne Shell Script Executable
9.6 Program Control Flow Statement (a): if Statement
9.6.1 The Simplest if Statement
9.6.2 The test Command
9.6.3 The if Statement with the else Keyword
9.6.4 Integral Structure of if Statement
9.7 Program Control Flow Statement (b): for Statement
9.7.1 The for Statement with a Word List
9.7.2 The for Statement without a Word List
9.8 Summary
Problems
References
10 How to Program in Bourne Shell (2)
10.1 Program Control Flow Statement (c): case Statement
10.2 Program Control Flow Statement (d): while Statement
10.3 Program Control Flow Statement (e): until Statement
10.4 Program Control Flow Statement (f): break and continue Commands
10.4.1 The break Command
10.4.2 The continue Command
10.5 Processing Numeric Data
10.6 The exec Command
10.6.1 Execution Function of the exec Command
10.6.2 Redirection function of the exec Command
10.7 Bourne Shell Functions
10.7.1 Defining Function
10.7.2 Calling Function
10.8 How to Debug Shell Scripts
10.9 Summary
Problems
References
11 UNIX in Internet and Computer Networking
11.1 UNIX's Contribution to Development of Computer Networking
11.2 General Concepts of Computer Networks and Internet
11.2.1 Request for Comments
11.2.2 Computer Networks and Internet
11.2.3 Client-server vs Peer-to-peer Models
11.2.4 TCP/IP and ISO models
11.2.5 TCP/IP Protocol Suite
11.3 Encapsulation and Demultiplexing
11.4 Networking Operating Systems
11.5 IP Protocol
11.5.1 IP Header
11.5.2 IPv4 Addressing
11.5.3 IPv4 Routing
11.5.4 Two commands, ping and traceroute
11.6 TCP Protocol and Applications
11.6.1 TCP Segment, Header and Services
11.6.2 TCP Applications
11.7 UDP Protocol and Applications
11.7.1 UDP Protocol
11.7.2 UDP Applications
11.8 Summary
Problems
References
Index