《UNIX操作系统:依据UNIX内核服务的开发指南(英文版)》是一个源代码操作系统,广泛应用于企业级行业应用领域以及嵌入式设备中。《UNIX操作 系统:依据UNIX内核服务的开发指南(英文版)》全面地、系统地介绍了UINX操作系统的开发和管理原则、内核服务、shell、计算机联网和应用。内 容包括五个部分:背景以及如何开始、文本编辑器、UNIX的内核服务、UNIX的命令解释以及编程和UINX的网络连接。
《UNIX操作系统:依据UNIX内核服务的开发指南(英文版)》可作为高等院校计算机专业研究生和高年级本科生的教学参考书,也可供程序设计员参考。
- 前辅文
- 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