《Linux系统分析与高级编程技术》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:周巍松等编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:1999
  • ISBN:7111075366
  • 页数:416 页
图书介绍:

第1章Linux简介 1

1.1 Linux的起源 1

1.2 自由软件基金会的GNU计划 1

1.2 自由软件基金会的GNU计划 1

1.1 Linux的起源 1

第1章Linux简介 1

第一篇 Linux系统介绍 1

第一篇 Linux系统介绍 1

1.3 Linux的发音 2

1.4 Linux的特点 2

1.4 Linux的特点 2

1.3 Linux的发音 2

1.6如何获得Linux 3

1.6.2 从光盘获得Linux 3

1.5 基本硬件要求 3

1.6.1 从网上下载Linux 3

1.5 基本硬件要求 3

1.6如何获得Linux 3

1.6.1 从网上下载Linux 3

1.6.2 从光盘获得Linux 3

1.7 涉及Linux的Web网址和新闻讨论组 6

1.7 涉及Linux的Web网址和新闻讨论组 6

1.8 Linux的不足之处 7

1.8 Linux的不足之处 7

第2章 外壳及常用命令 8

2.1 登录和退出 8

2.2 Linux系统的外壳 8

2.1 登录和退出 8

2.2 Linux系统的外壳 8

第2章 外壳及常用命令 8

2.3 外壳的常用命令 9

2.3.2 联机帮助 9

2.3.4 文件或目录处理 9

2.3.3 远程登录 9

2.3.1 更改帐号密码 9

2.3 外壳的常用命令 9

2.3.1 更改帐号密码 9

2.3.3 远程登录 9

2.3.4 文件或目录处理 9

2.3.2 联机帮助 9

2.3.7 移动或更改文件、目录名称 10

2.3.5 改变工作目录 10

2.3.6 复制文件 10

2.3.7 移动或更改文件、目录名称 10

2.3.8 建立新目录 10

2.3.5 改变工作目录 10

2.3.6 复制文件 10

2.3.8 建立新目录 10

2.3.9 删除目录 11

2.3.10 删除文件 11

2.3.12 查看文件内容 11

2.3.11 列出当前所在的目录位置 11

2.3.10 删除文件 11

2.3.9 删除目录 11

2.3.11 列出当前所在的目录位置 11

2.3.12 查看文件内容 11

2.3.13 分页查看文件内容 11

2.3.14 查看目录所占磁盘容量 11

2.3.15 文件传输 11

2.3.15 文件传输 11

2.3.13 分页查看文件内容 11

2.3.14 查看目录所占磁盘容量 11

2.3.16 文件权限的设定 12

2.3.16 文件权限的设定 12

2.3.19 改变文件或目录的最后修改时间 13

2.3.18 改变文件或目录工作组所有权 13

2.3.19 改变文件或目录的最后修改时间 13

2.3.20 文件的链接 13

2.3.20 文件的链接 13

2.3.17 检查自己所属的工作组名称 13

2.3.18 改变文件或目录工作组所有权 13

2.3.17 检查自己所属的工作组名称 13

2.3.24 文件打印输出 14

2.3.25 一般文件的打印 14

2.3.26 troff文件的打印 14

2.3.24 文件打印输出 14

2.3.27 打印机控制命令 14

2.3.27 打印机控制命令 14

2.3.25 一般文件的打印 14

2.3.22 查寻文件或命令的路径 14

2.3.26 troff文件的打印 14

2.3.23 比较文件或目录的内容 14

2.3.23 比较文件或目录的内容 14

2.3.21 文件中字符串的查寻 14

2.3.22 查寻文件或命令的路径 14

2.3.21 文件中字符串的查寻 14

2.3.28 进程控制 15

2.3.28 进程控制 15

2.3.29 外壳变量 16

2.3.30 环境变量 16

2.3.31 别名 16

2.3.30 环境变量 16

2.3.29 外壳变量 16

2.3.31 别名 16

2.3.32 历史命令 17

2.3.33 文件的压缩 17

2.3.34 管道命令的使用 17

2.3.34 管道命令的使用 17

2.3.33 文件的压缩 17

2.3.32 历史命令 17

2.3.36 查看系统中的用户 18

2.3.37 改变用户名 18

2.3.36 查看系统中的用户 18

2.3.35 输入/输出控制 18

2.3.35 输入/输出控制 18

2.3.38 查看用户名 18

2.3.37 改变用户名 18

2.3.38 查看用户名 18

2.3.39 查看当前系统上所有工作站的用户 19

2.3.40 与某工作站上的用户交谈 19

2.3.40 与某工作站上的用户交谈 19

2.3.39 查看当前系统上所有工作站的用户 19

2.3.41 检查远程系统是否正常 19

2.3.42 电子邮件的使用简介 19

2.3.41 检查远程系统是否正常 19

2.3.42 电子邮件的使用简介 19

3.1.3 IPX/SPX 21

3.1 Linux支持的网络协议 21

3.1.1 TCP/IP 21

3.1.4 AppleTalk协议集 21

3.1.4 AppleTalk协议集 21

3.1.3 IPX/SPX 21

3.1.2 TCP/IP版本6 21

第3章Linux系统的网络功能 21

3.1 Linux支持的网络协议 21

第3章Linux系统的网络功能 21

3.1.2 TCP/IP版本6 21

3.1.1 TCP/IP 21

3.1.5 广域网 22

3.1.6 ISDN 22

3.1.7 PPP.SLIP及PLIP 22

3.2.2 Windows环境 22

3.2.1 Machintosh环境 22

3.2 Linux系统下的文件共享和打印共享 22

3.1.9 ATM 22

3.1.8 业余无线电 22

3.2.2 Windows环境 22

3.1.6 ISDN 22

3.1.7 PPP.SLIP及PLIP 22

3.1.8 业余无线电 22

3.1.9 ATM 22

3.2 Linux系统下的文件共享和打印共享 22

3.2.1 Machintosh环境 22

3.1.5 广域网 22

3.2.4 UNIX环境 23

3.3 Linux系统中的Internet/Intranet功能 23

3.2.4 UNIX环境 23

3.2.3 Novell环境 23

3.3.1 邮件 23

3.2.3 Novell环境 23

3.3.1 邮件 23

3.3 Linux系统中的Internet/Intranet功能 23

3.3.3Web浏览器 24

3.3.4 FTP服务器和客户机 24

3.3.5 新闻服务 24

3.3.6 域名系统 24

3.3.7 DHCP和bootp 24

3.3.8 NIS 24

3.4 Linux系统下应用程序的远程执行 24

3.3.2 Web服务器 24

3.3.3Web浏览器 24

3.4 Linux系统下应用程序的远程执行 24

3.3.4 FTP服务器和客户机 24

3.3.8 NIS 24

3.3.5 新闻服务 24

3.3.6 域名系统 24

3.3.7 DHCP和bootp 24

3.3.2 Web服务器 24

3.4.3 X Window 25

3.5 Linux系统的网络互连功能 25

3.4.3 X Window 25

3.4.2 远程命令 25

3.4.1Telnet 25

3.4.1Telnet 25

3.4.2 远程命令 25

3.5.2 网桥 25

3.5 Linux系统的网络互连功能 25

3.5.1 路由器 25

3.5.3 IP伪装 25

3.5.1 路由器 25

3.5.3 IP伪装 25

3.5.2 网桥 25

3.5.6 流量限制器 26

3.5.7 防火墙 26

3.5.9 负载平衡 26

3.5.8 端口下传 26

3.5.6 流量限制器 26

3.5.4 IP统计 26

3.5.5 IP别名 26

3.5.7 防火墙 26

3.5.8 端口下传 26

3.5.9 负载平衡 26

3.5.5 IP别名 26

3.5.4 IP统计 26

25.2.2 L.cmds文件 27

3.5.10 EQL 27

3.5.11 代理服务器 27

3.5.12 按需拨号 27

3.5.13 管道、移动IP和虚拟个人网络 27

3.6 Linux系统中的网络管理 27

3.6.1 Linux系统下的网络管理应用程序 27

3.6.1 Linux系统下的网络管理应用程序 27

3.6 Linux系统中的网络管理 27

3.5.13 管道、移动IP和虚拟个人网络 27

3.5.12 按需拨号 27

3.5.11 代理服务器 27

3.5.10 EQL 27

25.2.2 L.cmds文件 27

3.6.2 SNMP 28

3.7 企业级Linux网络 28

3.7.3 冗余网络 28

3.7.2 RAID 28

3.7.1 高可用性 28

3.7.3 冗余网络 28

3.7.2 RAID 28

3.7.1 高可用性 28

3.7 企业级Linux网络 28

3.6.2 SNMP 28

第4章Linux系统管理简介 29

4.1 root帐号 29

4.2 启动和关闭系统 29

4.2.1 从软盘启动 29

4.2.2 使用LILO启动 29

4.2.2 使用LILO启动 29

4.2.1 从软盘启动 29

4.2 启动和关闭系统 29

4.1 root帐号 29

第4章Linux系统管理简介 29

4.3.1 挂接软盘 30

4.3 挂接文件系统 30

4.3.2 创建新的文件系统 30

4.2.3 关闭Linux系统 30

4.3.2 创建新的文件系统 30

4.2.3 关闭Linux系统 30

4.3 挂接文件系统 30

4.3.1 挂接软盘 30

4.4 检查文件系统 31

4.5 使用文件作为交换区 31

4.3.3 卸载文件系统 31

4.4 检查文件系统 31

4.3.3 卸载文件系统 31

4.5 使用文件作为交换区 31

4.6 系统和文件的备份 32

4.6 系统和文件的备份 32

4.7.4 设置登录信息 33

4.7.2 使用维护磁盘 33

4.7 设置系统 33

4.7.1 设置系统名 33

4.7.3 重新设置root帐号口令 33

4.7.4 设置登录信息 33

4.7.3 重新设置root帐号口令 33

4.7.2 使用维护磁盘 33

4.7.1 设置系统名 33

4.7 设置系统 33

5.1.1 创建外壳程序 35

第二篇Linux高级语言及管理编程 35

第5章 外壳编程 35

5.1创建和运行外壳程序 35

5.1.2 运行外壳程序 35

5.1.2 运行外壳程序 35

5.1.1 创建外壳程序 35

5.1创建和运行外壳程序 35

第5章 外壳编程 35

第二篇Linux高级语言及管理编程 35

5.2.1 给变量赋值 36

5.2 使用外壳变量 36

5.2 使用外壳变量 36

5.2.1 给变量赋值 36

5.2.2 读取变量的值 37

5.2.3 位置变量和其他系统变量 37

5.2.4 引号的作用 37

5.2.4 引号的作用 37

5.2.3 位置变量和其他系统变量 37

5.2.2 读取变量的值 37

5.3 数值运算命令 38

5.3 数值运算命令 38

5.4.1 if表达式 40

5.4 条件表达式 40

5.4 条件表达式 40

5.4.1 if表达式 40

5.4.2 case表达式 41

5.4.2 case表达式 41

5.5 循环语句 42

5.5 循环语句 42

5.5.2while语句 43

5.5.1 for语句 43

5.5.1 for语句 43

5.5.2while语句 43

5.6 shift命令 44

5.5.3 until语句 44

5.6 shift命令 44

5.5.3 until语句 44

5.7 select语句 45

5.7 select语句 45

5.8 repeat语句 46

5.9 子函数 46

5.8 repeat语句 46

5.9 子函数 46

6.3 文件、记录和字段 48

6.1 gawk的主要功能 48

6.2 如何执行gawk程序 48

6.3 文件、记录和字段 48

第6章 gawk语言编程 48

6.1 gawk的主要功能 48

6.2 如何执行gawk程序 48

第6章 gawk语言编程 48

6.4 模式和动作 49

6.4 模式和动作 49

6.6 内部函数 50

6.5 比较运算和数值运算 50

6.5 比较运算和数值运算 50

6.6 内部函数 50

6.6.1随机数和数学函数 51

6.6.2 字符串的内部函数 51

6.6.1随机数和数学函数 51

6.6.2 字符串的内部函数 51

6.7 字符串和数字 52

6.6.3 输入输出的内部函数 52

6.7 字符串和数字 52

6.8 格式化输出 52

6.8 格式化输出 52

6.6.3 输入输出的内部函数 52

6.9 改变字段分隔符 54

6.10 元字符 54

6.10 元字符 54

6.9 改变字段分隔符 54

6.11 调用gawk程序 55

6.12 BEGIN和END 55

6.12 BEGIN和END 55

6.11 调用gawk程序 55

6.13 变量 56

6.13 变量 56

6.14 内置变量 56

6.14 内置变量 56

6.15 控制结构 57

6.15.1 if表达式 57

6.15.2 while循环 57

6.15 控制结构 57

6.15.1 if表达式 57

6.15.2 while循环 57

6.17 用户自定义函数 58

6.15.3 for循环 58

6.15.4 next和exit 58

6.16 数组 58

6.17 用户自定义函数 58

6.16 数组 58

6.15.4 next和exit 58

6.15.3 for循环 58

6.18 几个实例 59

6.18 几个实例 59

7.4.1 标量 60

7.3 初试Perl 60

第7章 Perl语言编程 60

7.1 什么是Perl 60

7.2 Perl的现状 60

7.4 Perl变量 60

7.2 Perl的现状 60

7.3 初试Perl 60

7.4 Perl变量 60

7.4.1 标量 60

7.1 什么是Perl 60

第7章 Perl语言编程 60

7.4.2 数组 63

7.4.2 数组 63

7.4.3 相关数组 65

7.5 文件句柄和文件操作 65

7.4.3 相关数组 65

7.5 文件句柄和文件操作 65

7.6 循环结构 66

7.6.2 判断运算 66

7.6.2 判断运算 66

7.6.1 foreach循环 66

7.6 循环结构 66

7.6.1 foreach循环 66

7.6.4 while和until 循环 67

7.6.3 for循环 67

7.7 条件结构 67

7.6.3 for循环 67

7.6.4 while和until 循环 67

7.7 条件结构 67

7.8 字符匹配 68

7.8 字符匹配 68

7.9 替换和翻译 69

7.9.1 替换 69

7.9.1 替换 69

7.9 替换和翻译 69

7.9.2 翻译 70

7.10 子过程 70

7.10.1 子过程的定义 70

7.10.2 参数 70

7.10.3 返回值 70

7.10.3 返回值 70

7.10.2 参数 70

7.10.1 子过程的定义 70

7.10 子过程 70

7.9.2 翻译 70

7.11 Perl程序的完整例子 71

7.11 Perl程序的完整例子 71

第8章Linux内核简介 73

8.1 系统初始化 73

8.1 系统初始化 73

第8章Linux内核简介 73

第三篇 Linux系统内核分析 73

第三篇 Linux系统内核分析 73

8.2 系统运行 73

8.2 系统运行 73

8.3.3 执行程序 74

8.3.2 创建和撤消进程 74

8.3.1 进程的基本概念和系统的基本数据结构 74

8.3 内核提供的各种系统调用 74

8.3.3 执行程序 74

8.3.2 创建和撤消进程 74

8.3.1 进程的基本概念和系统的基本数据结构 74

8.3 内核提供的各种系统调用 74

8.4 存取文件系统 75

8.4 存取文件系统 75

9.1 什么是进程 76

第9章 系统进程 76

9.2 进程的结构 76

9.2 进程的结构 76

9.1 什么是进程 76

第9章 系统进程 76

9.3 进程调度 78

9.3 进程调度 78

9.4 进程使用的文件 79

9.4 进程使用的文件 79

9.5 进程使用的虚拟内存 80

9.5 进程使用的虚拟内存 80

9.7.3 形象时钟 81

9.6 创建进程 81

9.7 进程的时间和计时器 81

9.7.1 实时时钟 81

9.7.2 虚拟时钟 81

9.7.3 形象时钟 81

9.6 创建进程 81

9.7 进程的时间和计时器 81

9.7.1 实时时钟 81

9.7.2 虚拟时钟 81

9.8.1 ELF文件 82

9.8.2 脚本文件 82

9.8 程序的执行 82

9.8.2 脚本文件 82

9.8 程序的执行 82

9.8.1 ELF文件 82

10.1 内存管理的作用 83

第10章 内存管理 83

10.1 内存管理的作用 83

第10章 内存管理 83

10.2 虚拟内存的抽象模型 83

10.2 虚拟内存的抽象模型 83

10.3 按需装入页面 84

10.3 按需装入页面 84

10.5 共享虚拟内存 85

10.6 存取控制 85

10.4 交换 85

10.4 交换 85

10.6 存取控制 85

10.5 共享虚拟内存 85

10.7.1 缓冲区高速缓存 86

10.7 高速缓存 86

10.7.1 缓冲区高速缓存 86

10.7.2 页面高速缓存 86

10.7.3 交换高速缓存 86

10.7.4 硬件高速缓存 86

10.8 系统页面表 86

10.7 高速缓存 86

10.7.4 硬件高速缓存 86

10.7.2 页面高速缓存 86

10.7.3 交换高速缓存 86

10.8 系统页面表 86

10.9 页面的分配和释放 87

10.9 页面的分配和释放 87

10.10 内存映射 88

10.9.2 页面的释放 88

10.9.1 页面的分配 88

10.10 内存映射 88

10.9.2 页面的释放 88

10.9.1 页面的分配 88

10.11 请求调页 89

10.12 页面高速缓存 89

10.11 请求调页 89

10.12 页面高速缓存 89

10.13 内核交换守护进程 90

10.13 内核交换守护进程 90

11.1 信号机制 91

11.1 信号机制 91

第11章 进程间通信 91

第11章 进程间通信 91

11.2 管道机制 92

11.2 管道机制 92

11.3.1 信息队列 93

11.3.1 信息队列 93

11.3 System V IPC机制 93

11.3 System V IPC机制 93

11.3.2 信号量 94

11.3.2 信号量 94

11.3.3 共享内存 96

11.3.3 共享内存 96

12.2 PCI地址空间 98

12.1 PCI系统 98

第12章 PCI 98

12.2 PCI地址空间 98

12.1 PCI系统 98

第12章 PCI 98

12.3 PCI设置头 99

12.3 PCI设置头 99

12.5 PCI-ISA桥 100

12.6 PCI-PCI桥 100

12.4 PCI I/O和PCI内存地址 100

12.4 PCI I/O和PCI内存地址 100

12.5 PCI-ISA桥 100

12.6 PCI-PCI桥 100

12.7.1 Linux系统内核有关PCI的数据结构 101

12.7 PCI初始化 101

12.7 PCI初始化 101

12.7.1 Linux系统内核有关PCI的数据结构 101

12.7.2 PCI设备驱动程序 102

12.7.2 PCI设备驱动程序 102

12.7.3 PCI BIOS函数 105

12.7.4 PCI Fixup 105

12.7.3 PCI BIOS函数 105

12.7.4 PCI Fixup 105

13.1 中断 106

13.2 可编程中断控制器 106

第13章 中断和中断处理 106

13.1 中断 106

13.2 可编程中断控制器 106

第13章 中断和中断处理 106

13.3 初始化中断处理的数据结构 107

13.3 初始化中断处理的数据结构 107

13.4 中断处理 108

13.4 中断处理 108

14.1硬件设备的管理 109

第14章 设备驱动程序 109

第14章 设备驱动程序 109

14.1硬件设备的管理 109

14.3 直接内存存取 110

14.3 直接内存存取 110

14.2 轮询和中断 110

14.2 轮询和中断 110

14.5 设备驱动程序和内核之间的接口 111

14.4 内存 111

14.5 设备驱动程序和内核之间的接口 111

14.4 内存 111

14.5.1 字符设备 112

14.5.1 字符设备 112

14.6 硬盘 113

14.5.2 块设备 113

14.6 硬盘 113

14.5.2 块设备 113

14.6.3 SCSI硬盘 115

14.6.1 IDE硬盘 115

14.6.2 初始化IDE硬盘子系统 115

14.6.1 IDE硬盘 115

14.6.2 初始化IDE硬盘子系统 115

14.6.3 SCSI硬盘 115

14.6.4 初始化SCSI磁盘子系统 116

14.6.4 初始化SCSI磁盘子系统 116

14.6.5 传递块设备请求 118

14.7 网络设备 118

14.7.1 网络设备文件名 118

14.7.2 总线信息 118

14.7.2 总线信息 118

14.7.1 网络设备文件名 118

14.7 网络设备 118

14.6.5 传递块设备请求 118

14.7.3 网络接口标记 119

14.7.4 协议信息 119

14.7.5 初始化网络设备 119

14.7.5 初始化网络设备 119

14.7.4 协议信息 119

14.7.3 网络接口标记 119

15.1 Linux文件系统概述 121

第15章 文件系统 121

第15章 文件系统 121

15.1 Linux文件系统概述 121

15.2.1 ext2的索引节点 122

15.2.1 ext2的索引节点 122

15.2 ext2文件系统 122

15.2 ext2文件系统 122

15.2.3 ext2数据块组描述符 124

15.2.2 ext2超级块 124

15.2.2 ext2超级块 124

15.2.3 ext2数据块组描述符 124

15.2.5 在ext2文件系统中查找文件 125

15.2.4 ext2中的目录 125

15.2.4 ext2中的目录 125

15.2.5 在ext2文件系统中查找文件 125

15.2.6 改变ext2文件系统中文件的大小 126

15.2.6 改变ext2文件系统中文件的大小 126

15.3 VFS 127

15.3 VFS 127

15.3.1 VFS超级块 128

15.3.1 VFS超级块 128

15.3.3 登记文件系统 129

15.3.2 VFS索引节点 129

15.3.3 登记文件系统 129

15.3.2 VFS索引节点 129

15.3.4 挂接文件系统 130

15.3.4 挂接文件系统 130

15.3.5 在VFS中查找文件 131

15.3.6 撤消文件系统 131

15.3.6 撤消文件系统 131

15.3.5 在VFS中查找文件 131

15.3.7 VFS索引节点缓存 132

15.3.8 VFS目录缓存 132

15.3.7 VFS索引节点缓存 132

15.3.8 VFS目录缓存 132

15.4 缓冲区缓存 133

15.4 缓冲区缓存 133

15.5 /proc文件系统 135

15.5 /proc文件系统 135

第16章 网络系统 136

16.1 TCP/IP网络简介 136

第16章 网络系统 136

16.1 TCP/IP网络简介 136

16.2 TCP/IP网络的分层 137

16.2 TCP/IP网络的分层 137

16.3 BSD套接口 138

16.3 BSD套接口 138

16.4 INET套接口层 140

16.4 INET套接口层 140

16.4.2 给INET BSD套接口指定地址 141

16.4.1 创建BSD套接口 141

16.4.1 创建BSD套接口 141

16.4.2 给INET BSD套接口指定地址 141

16.4.4 监听INET BSD套接口 142

16.4.3 在INET BSD套接口上创建连接 142

16.4.4 监听INET BSD套接口 142

16.4.3 在INET BSD套接口上创建连接 142

16.4.5 接收连接请求 143

16.5 IP层 143

16.5.1 套接口缓冲区 143

16.5.1 套接口缓冲区 143

16.4.5 接收连接请求 143

16.5 IP层 143

16.5.3 发送IP数据包 144

16.5.4 数据碎片 144

16.5.2 接收IP数据包 144

16.5.3 发送IP数据包 144

16.5.4 数据碎片 144

16.5.2 接收IP数据包 144

16.6 地址解析协议 145

16.6 地址解析协议 145

17.1 Bottom Half处理 147

第17章 系统内核机制 147

17.1 Bottom Half处理 147

第17章 系统内核机制 147

17.2 任务队列 148

17.2 任务队列 148

17.3 计时器 149

17.4 等待队列 149

17.3 计时器 149

17.4 等待队列 149

17.5 信号量 150

17.5 信号量 150

第四篇 Linux系统高级编程 151

第18章Linux内核模块编程 151

18.1 一个简单程序Hello World 151

18.1 一个简单程序Hello World 151

第18章Linux内核模块编程 151

第四篇 Linux系统高级编程 151

18.2 设备文件 152

18.2 设备文件 152

18.3 /proc文件系统 156

18.3 /proc文件系统 156

18.4 使用/proc输入 158

18.4 使用/proc输入 158

18.5 与设备文件通信 162

18.5 与设备文件通信 162

18.6 启动参数 169

18.6 启动参数 169

18.7 系统调用 170

18.7 系统调用 170

18.8 阻塞进程 172

18.8 阻塞进程 172

18.9 替换printk 177

18.9 替换printk 177

18.10 调度任务 178

18.10 调度任务 178

19.2.1 基本概念 181

19.2.1 基本概念 181

19.2 半双[ UNIX管道 181

19.1 进程间通信简介 181

第19章 有关进程通信的编程 181

第19章 有关进程通信的编程 181

19.1 进程间通信简介 181

19.2 半双[ UNIX管道 181

19.2.2 使用C语言创建管道 182

19.2.2 使用C语言创建管道 182

19.2.3 创建管道的简单方法 185

19.2.3 创建管道的简单方法 185

19.2.4 使用管道的自动操作 187

19.2.4 使用管道的自动操作 187

19.3 命名管道 188

19.3 命名管道 188

19.3.1 基本概念 188

19.3.2 创建FIFO 188

19.2.5 使用半双工管道时的注意事项 188

19.2.5 使用半双工管道时的注意事项 188

19.3.2 创建FIFO 188

19.3.1 基本概念 188

19.3.3 FIFO操作 189

19.3.3 FIFO操作 189

19.3.5 SIGPIPE信号 190

19.4 System V IPC 190

19.4.1 基本概念 190

19.3.4 FIFO的阻塞 190

19.3.4 FIFO的阻塞 190

19.4.1 基本概念 190

19.4 System V IPC 190

19.3.5 SIGPIPE信号 190

19.4.2 消息队列基本概念 191

19.4.2 消息队列基本概念 191

19.4.3 系统调用msgget() 194

19.4.3 系统调用msgget() 194

19.4.4 系统调用msgsnd() 195

19.4.4 系统调用msgsnd() 195

19.4.5 系统调用msgctl() 197

19.4.5 系统调用msgctl() 197

19.4.6 一个msgtool的实例 199

19.4.6 一个msgtool的实例 199

19.5.1 基本概念 201

19.5 使用信号量编程 201

19.5.1 基本概念 201

19.5 使用信号量编程 201

19.5.2 系统调用semget() 202

19.5.2 系统调用semget() 202

19.5.3 系统调用semop() 203

19.5.3 系统调用semop() 203

19.5.4 系统调用semctl() 204

19.5.4 系统调用semctl() 204

19.5.5 使用信号量集的实例 :semtool 205

19.5.5 使用信号量集的实例 :semtool 205

19.6 共享内存 209

19.6.1 基本概念 209

19.6.2 系统内部用户数据结构shmid_ds 209

19.6.2 系统内部用户数据结构shmid_ds 209

19.6.1 基本概念 209

19.6 共享内存 209

19.6.3 系统调用shmget() 210

19.6.3 系统调用shmget() 210

19.6.5 系统调用shmctl() 211

19.6.4 系统调用shmat() 211

19.6.4 系统调用shmat() 211

19.6.5 系统调用shmctl() 211

19.6.7 使用共享内存的实例 :shmtool 212

19.6.7 使用共享内存的实例 :shmtool 212

19.6.6 系统调用shmdt() 212

19.6.6 系统调用shmdt() 212

20.2 一个简单的例子 215

20.2 一个简单的例子 215

20.1 线程的概念和用途 215

第20章 高级线程编程 215

20.1 线程的概念和用途 215

第20章 高级线程编程 215

20.3 线程同步 217

20.3 线程同步 217

20.4 使用信号量协调程序 218

20.4 使用信号量协调程序 218

20.5 信号量的实现 220

20.5.1 Semaphore.h 220

20.5.1 Semaphore.h 220

20.5 信号量的实现 220

20.5.2 Semaphore.c 221

20.5.2 Semaphore.c 221

21.4 数据结构 225

21.4 数据结构 225

第21章 Linux系统网络编程 225

21.1 什么是套接口 225

21.2 两种类型的Internet套接口 225

21.3 网络协议分层 225

21.3 网络协议分层 225

21.2 两种类型的Internet套接口 225

21.1 什么是套接口 225

第21章 Linux系统网络编程 225

21.5 IP地址和如何使用IP地址 226

21.5 IP地址和如何使用IP地址 226

21.5.2 bind() 226

21.5.1 socket() 226

21.5.2 bind() 226

21.5.1 socket() 226

21.5.3 connect() 227

21.5.3 connect() 227

21.5.5 accept() 228

21.5.4 listen() 228

21.5.5 accept() 228

21.5.4 listen() 228

21.5.6 send()和recv() 229

21.5.6 send()和recv() 229

21.5.7 sendto()和recvfrom() 230

21.5.8 close()和shutdown() 230

21.5.7 sendto()和recvfrom() 230

21.5.8 close()和shutdown() 230

21.5.10 gethostname() 231

21.5.9 getpeername() 231

21.5.10 gethostname() 231

21.6 DNS 231

21.6 DNS 231

21.5.9 getpeername() 231

21.7 客户机/服务器模式 232

21.8 简单的数据流服务器程序 232

21.7 客户机/服务器模式 232

21.8 简单的数据流服务器程序 232

21.9 简单的数据流客户机程序 234

21.9 简单的数据流客户机程序 234

21.10 数据报套接口 235

21.10 数据报套接口 235

21.11 阻塞 237

21.11 阻塞 237

22.1.1 一般的方法 240

22.1 如何在C语言下使用I/O端口 240

第22章 Linux I/O端口编程 240

第22章 Linux I/O端口编程 240

22.1 如何在C语言下使用I/O端口 240

22.1.1 一般的方法 240

22.1.2 另一个替代方法/dev/port 241

22.3 高精确的时间 241

22.1.2 另一个替代方法/dev/port 241

22.3.1 延迟时间 241

22.3.1 延迟时间 241

22.3 高精确的时间 241

22.3.2 时间的量测 243

22.5一些有用的I/O端口 243

22.5一些有用的I/O端口 243

22.5.1 并行端口 243

22.5.1 并行端口 243

22.4 使用其他程序语言 243

22.3.2 时间的量测 243

22.4 使用其他程序语言 243

22.5.2 游戏端口 244

22.5.2 游戏端口 244

22.5.3 串行端口 245

22.5.3 串行端口 245

第23章 系统管理员安全 247

23.2 超级用户 247

第五篇 Linux系统安全分析 247

23.3 文件系统安全 247

23.3.1 Linux文件系统概述 247

23.3.1 Linux文件系统概述 247

23.3 文件系统安全 247

23.2 超级用户 247

23.1 安全管理 247

第23章 系统管理员安全 247

第五篇 Linux系统安全分析 247

23.1 安全管理 247

23.3.2 设备文件 248

23.3.2 设备文件 248

23.3.4 安全考虑 249

23.3.3 /etc/mknod命令 249

23.3.3 /etc/mknod命令 249

23.3.4 安全考虑 249

23.3.6 secure程序 250

23.3.5 find命令 250

23.3.6 secure程序 250

23.3.7 ncheck命令 250

23.3.8 安装和拆卸文件系统 250

23.3.5 find命令 250

23.3.8 安装和拆卸文件系统 250

23.3.7 ncheck命令 250

23.4 作为root运行的程序 251

23.4.1 启动系统 251

23.3.9 系统目录和文件 251

23.4 作为root运行的程序 251

23.4.1 启动系统 251

23.3.9 系统目录和文件 251

23.4.2 init进程 251

23.4.2 init进程 251

23.4.3 进入多用户 252

23.4.4 shutdown命令 252

23.4.5 系统V的cron程序 252

23.4.6 系统V版本2之后的cron程序 252

23.4.6 系统V版本2之后的cron程序 252

23.4.5 系统V的cron程序 252

23.4.4 shutdown命令 252

23.4.3 进入多用户 252

23.4.7 /etc/profile 253

23.5 /etc/passwd文件 253

23.5.1 口令时效 253

23.5.1 口令时效 253

23.5 /etc/passwd文件 253

23.4.7 /etc/profile 253

23.5.2 UID和GID 254

23.6 /etc/group文件 254

23.7.1 增加用户 254

23.7 增加、删除和移走用户 254

23.6 /etc/group文件 254

23.5.2 UID和GID 254

23.7 增加、删除和移走用户 254

23.7.1 增加用户 254

23.8 安全检查 255

23.8.1 记帐 255

23.7.2 删除用户 255

23.7.3 将用户移到另一个系统 255

23.8 安全检查 255

23.8.1 记帐 255

23.7.2 删除用户 255

23.7.3 将用户移到另一个系统 255

23.8.2 其他检查命令 256

23.8.3 安全检查程序的问题 256

23.8.3 安全检查程序的问题 256

23.8.2 其他检查命令 256

23.8.4 系统泄密后怎么办 257

23.8.4 系统泄密后怎么办 257

23.9 加限制的环境 258

23.9.1 加限制的外壳 258

23.9.2 用chroot()限制用户 258

23.9.2 用chroot()限制用户 258

23.9.1 加限制的外壳 258

23.9 加限制的环境 258

23.11 物理安全 259

23.10 小系统安全 259

23.10 小系统安全 259

23.11 物理安全 259

23.12 用户意识 260

23.12 用户意识 260

23.13 系统管理员意识 261

23.13 系统管理员意识 261

23.13.1 保持系统管理员个人的登录安全 261

23.13.2 保持系统安全 261

23.13.2 保持系统安全 261

23.13.1 保持系统管理员个人的登录安全 261

24.1.2 进程控制 263

24.1 系统子程序 263

第24章 系统程序员安全 263

24.1 系统子程序 263

24.1.1 I/O子程序 263

24.1.2 进程控制 263

第24章 系统程序员安全 263

24.1.1 I/O子程序 263

24.1.3 文件属性 264

24.1.3 文件属性 264

24.1.4 UID和GID的处理 265

24.2.1 标准I/O 265

24.2 标准C程序库 265

24.2.1 标准I/O 265

24.2 标准C程序库 265

24.1.4 UID和GID的处理 265

24.2.2 /etc/passwd的处理 266

24.2.2 /etc/passwd的处理 266

24.2.3 /etc/group的处理 267

24.2.3 /etc/group的处理 267

24.2.4 加密子程序 268

24.2.5 运行外壳 268

24.3.1 需要考虑的安全问题 268

24.3 编写安全的C程序 268

24.2.4 加密子程序 268

24.3 编写安全的C程序 268

24.3.1 需要考虑的安全问题 268

24.2.5 运行外壳 268

24.3.3 编译、安装SUID/SGID程序的方法 269

24.3.2 SUID/SGID程序指导准则 269

24.3.3 编译、安装SUID/SGID程序的方法 269

24.3.2 SUID/SGID程序指导准则 269

24.4 root用户程序的设计 270

24.4 root用户程序的设计 270

25.1 UUCP系统概述 272

25.1.1 UUCP命令 272

25.1.2 uux命令 272

第25章 Linux系统的网络安全 272

第25章 Linux系统的网络安全 272

25.1 UUCP系统概述 272

25.1.1 UUCP命令 272

25.1.2 uux命令 272

25.2.1 USERFILE文件 273

25.1.4 uuxqt程序 273

25.1.3 uucico程序 273

25.1.4 uuxqt程序 273

25.2 UUCP的安全问题 273

25.1.3 uucico程序 273

25.2.1 USERFILE文件 273

25.2 UUCP的安全问题 273

25.2.3 uucp登录 274

25.2.4 uucp使用的文件和目录 274

25.2.4 uucp使用的文件和目录 274

25.2.3 uucp登录 274

25.3 HONEYDANBER UUCP 275

25.3.1 HONEYDANBER UUCP与老UUCP的差别 275

25.3.1 HONEYDANBER UUCP与老UUCP的差别 275

25.3 HONEYDANBER UUCP 275

25.3.2 登录名规则 276

25.3.2 登录名规则 276

25.3.3 MACHINE规则 277

25.3.3 MACHINE规则 277

25.3.4 组合MACHINE和LOGNAME规则 278

25.3.5 uucheck命令 278

25.3.6 网关 278

25.3.4 组合MACHINE和LOGNAME规则 278

25.3.5 uucheck命令 278

25.3.6 网关 278

25.3.7 登录文件检查 279

25.4 其他网络 279

25.4.1 远程作业登录 279

25.3.7 登录文件检查 279

25.4 其他网络 279

25.4.1 远程作业登录 279

25.5 通信安全 280

25.4.2 NSC网络系统 280

25.5 通信安全 280

25.5.1 物理安全 280

25.5.1 物理安全 280

25.4.2 NSC网络系统 280

25.5.2 加密 281

25.5.2 加密 281

25.5.3 用户身份鉴别 282

25.5.3 用户身份鉴别 282

25.6.1 确保NFS的安全 283

25.6.1 确保NFS的安全 283

25.6 SUN OS系统的网络安全 283

25.6 SUN OS系统的网络安全 283

25.6.2 NFS安全性方面的缺陷 284

25.6.3 远程过程调用鉴别 284

25.6.4 Linux鉴别机制 284

25.6.4 Linux鉴别机制 284

25.6.3 远程过程调用鉴别 284

25.6.2 NFS安全性方面的缺陷 284

25.6.5 DES鉴别系统 285

25.6.5 DES鉴别系统 285

25.6.6 公共关键字的编码 286

25.6.7 网络实体的命名 286

25.6.7 网络实体的命名 286

25.6.6 公共关键字的编码 286

28.6.9 遗留的安全问题 287

25.6.8 DES鉴别系统的应用 287

28.6.9 遗留的安全问题 287

25.6.8 DES鉴别系统的应用 287

25.6.11 启动和setuid程序引起的问题 288

25.6.10 性能 288

25.6.11 启动和setuid程序引起的问题 288

25.6.10 性能 288

25.6.12 小结 289

25.6.12 小结 289

第26章 Linux系统的用户安全性 290

26.1 口令安全 290

26.1 口令安全 290

第26章 Linux系统的用户安全性 290

26.2 文件许可权 290

26.2 文件许可权 290

26.4 umask命令 291

26.3 目录许可 291

26.4 umask命令 291

26.5 设置用户ID和同组用户ID许可 291

26.6 cp mv ln和cpio命令 291

26.3 目录许可 291

26.5 设置用户ID和同组用户ID许可 291

26.6 cp mv ln和cpio命令 291

26.7 su和newgrp命令 292

26.7.1 su命令 292

26.7.2 newgrp命令 292

26.7 su和newgrp命令 292

26.7.1 su命令 292

26.8 文件加密 292

26.7.2 newgrp命令 292

26.8 文件加密 292

26.9 其他安全问题 293

26.9 其他安全问题 293

26.9.1 用户的.Profile文件 293

26.9.2 ls-a 293

26.9.1 用户的.Profile文件 293

26.9.2 ls-a 293

26.9.5 UUCP和其他网络 293

26.9.4 暂存文件和目录 293

26.9.3 .exrc文件 293

26.9.3 .exrc文件 293

26.9.4 暂存文件和目录 293

26.9.5 UUCP和其他网络 293

26.9.6 特洛伊木马 294

26.9.7 诱骗 294

26.9.8 计算机病毒 294

26.9.9 要离开自己已登录的终端 294

26.9.10 智能终端 294

26.9.11 断开与系统的连接 294

26.9.11 断开与系统的连接 294

26.9.10 智能终端 294

26.9.9 要离开自己已登录的终端 294

26.9.8 计算机病毒 294

26.9.7 诱骗 294

26.9.6 特洛伊木马 294

26.10 保持帐户安全的要点 295

26.9.12 cu命令 295

26.10 保持帐户安全的要点 295

26.9.12 cu命令 295

27.1.1 X的特点 297

27.1 X Window系统介绍 297

第27章X Window系统的基本知识 297

第六篇 X Window系统的内部结构和使用 297

27.1.1 X的特点 297

27.1 X Window系统介绍 297

第27章X Window系统的基本知识 297

第六篇 X Window系统的内部结构和使用 297

27.1.2 什么是窗口系统 298

27.1.2 什么是窗口系统 298

27.1.4 X的产品 299

27.1.5 MIT发行的X 299

27.1.3 X发展的历史 299

27.1.4 X的产品 299

27.1.5 MIT发行的X 299

27.1.3 X发展的历史 299

27.2 X的基本结构 302

27.2 X的基本结构 302

27.2.1 X的基本元素 303

27.2.1 X的基本元素 303

27.2.2 服务程序和客户程序如何交互通信 304

27.2.2 服务程序和客户程序如何交互通信 304

27.2.3 X的网络概况 306

27.2.3 X的网络概况 306

27.3.1 管理界面 :窗口管理器 307

27.3 从用户界面的角度概观X 307

27.3.1 管理界面 :窗口管理器 307

27.3 从用户界面的角度概观X 307

27.3.3 其他系统角度 309

27.3.2 应用程序界面和工具箱 309

27.3.3 其他系统角度 309

27.3.2 应用程序界面和工具箱 309

27.4.1 术语 310

27.4 术语和符号 310

27.4 术语和符号 310

27.4.1 术语 310

27.4.2 符号 311

27.4.2 符号 311

27.5.1 启动X 312

27.5 启动和关闭X 312

27.5 启动和关闭X 312

27.5.1 启动X 312

27.5.2 执行X程序的方式 313

27.5.2 执行X程序的方式 313

27.5.3 关闭X 314

27.5.3 关闭X 314

27.6.3 基本窗口操作-uwm的菜单 315

27.6.2 启动uwm 315

27.6.1 什么是窗口管理器 315

27.6 窗口管理器基础---uwm 315

27.6.2 启动uwm 315

27.6 窗口管理器基础---uwm 315

27.6.1 什么是窗口管理器 315

27.6.3 基本窗口操作-uwm的菜单 315

27.6.5 重定窗口大小 316

27.6.6 建立新窗口 316

27.6.4 移动窗口 316

27.6.4 移动窗口 316

27.6.5 重定窗口大小 316

27.6.6 建立新窗口 316

27.6.7 管理屏幕空间 318

27.6.7 管理屏幕空间 318

27.7 使用X的网络设备 320

27.6.8 中止应用程序窗口 320

27.6.9 激活uwm菜单的其他方式 320

27.7 使用X的网络设备 320

27.6.9 激活uwm菜单的其他方式 320

27.6.8 中止应用程序窗口 320

27.7.1 指定远程终端机---display选项 321

27.7.1 指定远程终端机---display选项 321

27.7.2 实际使用远程的显示器 322

27.7.3 控制存取显示器---xhost 322

27.7.2 实际使用远程的显示器 322

27.7.3 控制存取显示器---xhost 322

27.8.1 选择xterm功能---菜单与命令行选项 323

27.8 终端机模拟器-详细介绍xterm 323

27.8 终端机模拟器-详细介绍xterm 323

27.8.1 选择xterm功能---菜单与命令行选项 323

27.8.2 滚动xterm屏幕 324

27.8.2 滚动xterm屏幕 324

27.8.4 剪贴文本 325

27.8.3 记录与终端机的交互过程-写记录 325

27.8.4 剪贴文本 325

27.8.3 记录与终端机的交互过程-写记录 325

27.8.5 使用Tektronix模拟功能 326

27.8.5 使用Tektronix模拟功能 326

27.8.8 其他xterm选项 327

27.8.6 使用不同的字体 327

27.8.7 使用颜色 327

27.8.8 其他xterm选项 327

27.8.7 使用颜色 327

27.8.6 使用不同的字体 327

27.8.9 设定终端机键盘 328

27.8.9 设定终端机键盘 328

第28章 实用程序和工具 329

28.1实用程序 329

28.1实用程序 329

第28章 实用程序和工具 329

28.2 保存、显示和打印屏幕图像 330

28.2 保存、显示和打印屏幕图像 330

28.3 使用X的应用程序 332

28.3 使用X的应用程序 332

28.3.1 文字编辑器-Xedit 333

28.3.1 文字编辑器-Xedit 333

28.4 示例和游戏程序 336

28.4 示例和游戏程序 336

28.4.1 找出通过随机迷宫的路径-maze 336

28.4.2 担任鼠标指针的大眼睛-xeyes 336

28.4.1 找出通过随机迷宫的路径-maze 336

28.4.2 担任鼠标指针的大眼睛-xeyes 336

28.3.2 邮件/信息处理系统---xmh 336

28.3.2 邮件/信息处理系统---xmh 336

28.7 显示信息和状态的程序 337

28.7 显示信息和状态的程序 337

28.4.3 智慧盘游戏---puzzle 337

28.4.4 打印一个大X标志-xlogo 337

28.4.5 跳动的多面体---ico 337

28.4.6 动态几何图案-muncher与plaid 337

28.4.4 打印一个大X标志-xlogo 337

28.4.6 动态几何图案-muncher与plaid 337

28.4.5 跳动的多面体---ico 337

28.4.3 智慧盘游戏---puzzle 337

28.7.1 列出X服务程序的特征---xdpyinfo 338

28.7.2 获取有关窗口的信息 338

28.7.1 列出X服务程序的特征---xdpyinfo 338

28.7.2 获取有关窗口的信息 338

28.7.3 观察X的事件-xev 340

28.7.3 观察X的事件-xev 340

29.1.1 字体初步 341

第29章 定制X Window系统 341

29.1 使用X的字体和颜色 341

29.1.1 字体初步 341

29.1 使用X的字体和颜色 341

第29章 定制X Window系统 341

29.1.2 字体命名 342

29.1.2 字体命名 342

29.1.4 保存字体和位置 343

29.1.3 观察特定字体的内容-xfd 343

29.1.4 保存字体和位置 343

29.1.3 观察特定字体的内容-xfd 343

29.1.5 例子 :在你的服务程序中增加新字体 345

29.1.5 例子 :在你的服务程序中增加新字体 345

29.1.6 使用X的颜色 346

29.1.6 使用X的颜色 346

29.2 定义和使用图形 347

29.2 定义和使用图形 347

29.2.1 系统图形程序库 347

29.2.2 交互编辑图形---bitmap 347

29.2.1 系统图形程序库 347

29.2.2 交互编辑图形---bitmap 347

29.2.3 编辑图形的其他方法 349

29.2.3 编辑图形的其他方法 349

29.2.4 定制根窗口-xsetroot 349

29.2.4 定制根窗口-xsetroot 349

29.3 定义应用程序的缺省选项---Resources 350

29.3.1 什么是资源 350

29.3 定义应用程序的缺省选项---Resources 350

29.3.1 什么是资源 350

29.3.2 XToolkit 351

29.3.2 XToolkit 351

29.3.3 管理资源-资源管理器 353

29.3.3 管理资源-资源管理器 353

29.3.4 资源的类型-如何指定值 358

29.3.4 资源的类型-如何指定值 358

29.4.1 在何处保存资源的缺省值 359

29.4 实际使用资源 359

29.4.1 在何处保存资源的缺省值 359

29.4 实际使用资源 359

29.4.2 在服务程序上保存缺省值---xrdb 363

29.4.2 在服务程序上保存缺省值---xrdb 363

29.4.3 常见的错误和修正 366

29.4.3 常见的错误和修正 366

29.5 定制键盘和鼠标 367

29.5 定制键盘和鼠标 367

29.5.1 实际使用转换 368

29.5.1 实际使用转换 368

29.5.2 转换---格式和规则 374

29.5.2 转换---格式和规则 374

29.5.3 转换规范中常见的问题 377

29.5.3 转换规范中常见的问题 377

29.6 键盘和鼠标---对应和参数 379

29.6.1 键盘和鼠标映射-xmodmap 379

29.6.1 键盘和鼠标映射-xmodmap 379

29.6 键盘和鼠标---对应和参数 379

29.6.2 键盘和鼠标参数设定-xset 382

29.6.2 键盘和鼠标参数设定-xset 382

29.7.1 uwm的新特征 384

29.7 进一步介绍和定制uwm 384

29.7 进一步介绍和定制uwm 384

29.7.1 uwm的新特征 384

29.7.2 定制uwm 386

29.7.2 定制uwm 386

29.8 显示器管理器---xdm 390

29.8.1 需要做些什么 390

29.8.1 需要做些什么 390

29.8 显示器管理器---xdm 390

29.8.2 xdm 391

29.8.2 xdm 391

29.8.3 xdm的更多信息 392

29.8.3 xdm的更多信息 392

29.8.4 uwm配置 395

29.8.4 uwm配置 395

附录A GCC使用介绍 396

附录A GCC使用介绍 396

附录B 安装X Window窗口系统 410

附录B 安装X Window窗口系统 410