本書為普通高等教育“十一五”國家級規劃教材。本書以操作系統的基本原理、概念和應用為框架,以傳統的UNIX為主線,分析了最近推出的Linux 3.10.12版本的存儲管理、進程管理、進程通信、設備管理和文件系統的基本結構、算法、重要的數據結構和流程,詳細給出了典型模塊的源代碼和注釋,還對Windows 7和操作系統安全進行了分析。全書分3篇:第1篇介紹操作系統的基本原理及較常用的操作系統實例,如UNIX、Linux、Windows 7/8和Windows Server 2012等;第2篇介紹在UNIX和Linux系統下的系統程序設計、應用開發工具及開發技術;第3篇介紹UNIX系統管理和網絡管理。
1. 普通高等教育“十一五”國家級規劃教材。 2. 涉及UNIX、Linux和Windows操作系統。 3. 分析了存儲管理、進程管理、進程通信、設備管理和文件系統的基本結構、算法、重要的數據結構和流程,詳細給出了典型模塊的源代碼和注釋。
陸松年,上海交通大學計算機科學與技術系教授,主要研究方向為計算機通信網、多媒體網絡通信、目錄系統、信息保密與安全(主要涉及防火墻、VPN、PKI以及PMI等)、操作系統和嵌入式系統等。
第1部分 原理篇
第1章 操作系統概論
1.1 什么是操作系統
1.2 操作系統的發展歷史
1.3 現代操作系統類型
1.4 操作系統的概念、特征和功能
1.5 UNIX操作系統概述
習題1
第2章 存儲管理
2.1 存儲管理基礎
2.2 基本存儲管理方法
2.3 可變分區存儲管理
2.4 內存擴充技術
2.5 純分頁的存儲管理
2.6 請求分頁系統 第1部分 原理篇
第1章 操作系統概論
1.1 什么是操作系統
1.2 操作系統的發展歷史
1.3 現代操作系統類型
1.4 操作系統的概念、特征和功能
1.5 UNIX操作系統概述
習題1
第2章 存儲管理
2.1 存儲管理基礎
2.2 基本存儲管理方法
2.3 可變分區存儲管理
2.4 內存擴充技術
2.5 純分頁的存儲管理
2.6 請求分頁系統
2.7 段式存儲管理
2.8 段頁式存儲管理
2.9 Linux存儲管理
習題2
第3章 進程管理
3.1 進程概述
3.2 進程控制塊
3.3 調度
3.3.1 調度概述
3.3.2 進程調度策略
3.3.3 進程調度算法
3.4 UNIX系統的進程調度
3.5 進程的控制
3.6 進程的創建和映像改換
3.7 線程
3.7.1 多線程
3.7.2 線程的狀態與功能
3.7.3 用戶級和核心級線程
3.7.4 線程應用示例
3.8 Linux進程管理
3.8.1 Linux進程控制塊
3.8.2 進程調度
3.8.3 進程創建
3.8.4 Linux的線程
習題3
第4章 進程通信
4.1 進程的同步與互斥
4.2 進程間互斥控制方法
4.3 信號量和semWait、semSignal
操作
4.4 信號量的應用
4.5 進程間的數據通信
4.6 軟中斷和信號機構
4.7 死鎖
4.8 Linux的IPC機制
4.8.1 Linux IPC概述
4.8.2 消息隊列
4.8.3 共享內存
4.8.4 信號量
習題4
第5章 設備管理
5.1 概述
5.2 操作系統與中斷處理
5.3 操作系統與時鐘系統
5.4 操作系統對I/O操作的控制
5.5 設備管理的數據結構
5.6 磁盤調度
5.7 UNIX系統V的設備管理
5.7.1 塊設備管理的主要數據結構
5.7.2 緩沖區管理
5.7.3 塊設備管理
5.7.4 字符設備管理
5.8 設備分配
5.9 Linux的設備管理
5.9.1 概述
5.9.2 Linux字符設備管理
5.9.3 Linux塊設備管理
5.9.4 Linux塊設備緩沖區的管理
5.9.5 網絡設備的管理
習題5
第6章 文件系統
6.1 概述
6.2 文件目錄
6.3 文件存儲資源分配
6.4 文件的系統調用
6.4.1 文件的創建、打開、關閉和
取消
6.4.2 文件的讀寫
6.4.3 調整文件讀寫位置lseek
6.4.4 創建任何類型文件mknod
6.4.5 其他文件系統調用
6.5 文件的標準子例程
6.6 UNIX文件系統的內部結構
6.6.1 索引節點
6.6.2 文件索引結構
6.6.3 目錄結構
6.6.4 打開文件結構
6.6.5 文件系統存儲資源管理
6.7 管道文件和管道通信
6.8 Linux虛擬文件系統
6.8.1 虛擬文件系統
6.8.2 VFS主要數據結構
6.8.3 VFS文件的打開
6.8.4 VFS文件的讀寫
6.9 Ext文件系統
6.9.1 Ext2文件系統
6.9.2 Ext2的主要數據結構
6.9.3 Ext2文件的操作
6.9.4 Ext3文件系統
6.9.5 Ext4文件系統
習題6
第7章 Windows操作系統
7.1 Windows操作系統發展歷程
7.2 Windows 7
7.2.1 系統體系結構
7.2.2 存儲系統
7.2.3 進程、線程及處理器管理
7.2.4 I/O系統
7.2.5 文件系統
7.2.6 網絡系統
7.3 Windows Server 2012
7.4 Windows 8
7.5 操作系統虛擬化及云計算
習題7
第8章 操作系統安全
8.1 操作系統的安全性
8.1.1 操作系統的安全需求
8.1.2 系統安全的評估與標準
8.1.3 Linux操作系統安全
8.1.4 Windows 2000操作系統安全
8.2 操作系統安全機制
8.2.1 標識與鑒別
8.2.2 可信路徑
8.2.3 最小特權管理
8.2.4 訪問控制
8.2.5 隱蔽通道檢測與控制
8.2.6 安全審計
8.3 安全操作系統設計與實現
8.3.1 操作系統安全設計原理
8.3.2 安全策略
8.3.3 安全模型
8.3.4 安全體系結構
8.3.5 典型安全操作系統
習題8
第2部分 應用和開發篇
第9章 UNIX使用基礎
9.1 登錄和退出系統
9.2 Shell基礎
9.3 文件系統基本知識
9.4 UNIX文件系統結構
習題9
第10章 UNIX實用程序
10.1 目錄操作命令
10.2 文件操作命令
10.3 顯示和打印命令
10.4 過濾器
10.5 設備操作
10.6 用戶信息與進程控制
10.7 壓縮和解壓縮
10.8 其他命令
習題10
第11章 軟件開發工具
11.1 文本編輯器vi
11.1.1 屏幕編輯命令
11.1.2 底行命令
11.1.3 在vi程序中執行Shell命令
11.2 C編譯系統
11.3 庫的維護
11.4 維護程序的程序(Make)
11.4.1 Make使用初步
11.4.2 Make的內部規則
11.4.3 Make中的宏
11.4.4 用Make維護庫
11.4.5 一個綜合例子
11.4.6 Make命令選項和參數
11.5 調試程序
11.6 源代碼控制系統(SCCS)
11.7 其他軟件開發工具
習題11
第12章 UNIX網絡通信
12.1 檢查計算機的連接情況
12.2 獲取遠程用戶信息
12.3 用戶間通話
12.4 遠程登錄和執行
12.5 遠程文件復制和傳輸
12.6 網絡服務命令
習題12
第13章 UNIX系統和網絡程序設計
13.1 文件系統程序設計
13.2 用文件的系統調用實現
進程通信
13.3 高級進程間通信
13.4 遠程進程間通信Socket
13.5 UDP套接字編程
習題13
第14章 Shell程序設計
14.1 Shell程序和參數
14.2 Shell變量
14.2.1 用戶定義變量
14.2.2 系統定義變量
14.2.3 Shell定義變量
14.2.4 參數替換
14.2.5 引號機制
14.3 測試和求值
14.4 控制結構
14.4.1 順序控制結構
14.4.2 if語句
14.4.3 case語句
14.4.4 for語句
14.4.5 while和until語句
14.4.6 break、continue、exit和
return語句
14.5 遞歸和Shell函數
14.6 Shell內部命令
14.7 Shell環境
14.8 Linux的BASH Shell
習題14
第3部分 系統和網絡管理篇
第15章 UNIX系統管理
15.1 系統的啟動和關閉
15.2 用戶管理
15.3 刷新系統緩沖區
15.4 檢查和修復文件系統
15.5 構造、安裝和拆卸文件系統
15.6 定時運行程序
習題15
第16章 UNIX網絡管理
16.1 配置TCP/IP
16.2 網絡服務監控進程
16.3 域名服務系統
16.4 網絡文件系統NFS
16.5 電子郵政系統
16.6 WWW服務器的配置
習題16
參考文獻