图书简介
《Linux作业系统:基础、原理与套用(第2版)》是清华大学出版社出版的一本图书。
作者:张玲
定价:49元
印次:2-1
ISBN:9787302494072
出版日期:2019.08.01
印刷日期:2019.06.19
定价:49元
印次:2-1
ISBN:9787302494072
出版日期:2019.08.01
印刷日期:2019.06.19
图书内容
本书以理论结合实践,注重套用为原则,全面、系统地讲述作业系统的基本原理,并将其与Linux的实现和套用技术紧密结合。全书内容分为3部分:第1部分为基础篇,包括Linux系统概述、Linux系统的操作基础、vi文本编辑器的使用以及Linux C编程基础;第2部分为原理篇,介绍作业系统的基本原理和Linux核心实现技术,包括进程管理、存储管理、档案管理、设备管理和作业系统接口;第3部分为套用篇,包括Shell程式设计、Linux系统管理和网路与通信套用。
目录
第1部分 基础篇
第1章作业系统概述/ 3
1.1 认识作业系统 3
1.1.1 作业系统的概念 3
1.1.2 作业系统的功能 4
1.2 作业系统的发展与现状 5
1.2.1 作业系统的发展 5
1.2.2 作业系统的分类与现状 7
1.3 Linux作业系统概述 11
1.3.1 Linux的发展背景与历史 11
1.3.2 Linux作业系统的特点 13
1.3.3 Linux作业系统的组成 14
1.3.4 Linux作业系统的版本 14
1.3.5 Linux作业系统的套用与发展 17
习题 17
第2章Linux操作基础/ 18
2.1 Linux基本操作 18
2.1.1 登录 18
2.1.2 修改口令 19
2.1.3 退出 20
2.1.4 系统的关闭与重启 20
2.2 Linux命令 20
2.2.1 命令的格式 21
2.2.2 命令的输入与执行 21
2.2.3 几个简单命令 22
2.2.4 在线上帮助 25
2.3Linux档案操作 25
2.3.1Linux系统的档案 26
2.3.2Linux系统的目录 32
2.3.3常用的目录操作命令 33
2.3.4常用的档案操作命令 37
2.4输入输出重定向 53
2.4.1命令的输入与输出 53
2.4.2输入重定向 54
2.4.3输出重定向 55
2.4.4管道 59
习题 61
第3章vi文本编辑器/63
3.1vi文本编辑器概述 63
3.1.1vi文本编辑器介绍 63
3.1.2vi的工作模式 64
3.1.3vi的基本工作流程 64
3.2vi基本命令 65
3.2.1游标定位与移动 66
3.2.2文本输入与删除 67
3.2.3文本修改与替换 68
3.2.4文本複製、贴上与选择 69
3.2.5撤销与重做 71
3.3vi常用末行命令 71
3.3.1搜寻与替换命令 71
3.3.2档案操作与退出命令 73
3.3.3其他常用命令 73
习题 74
第4章LinuxC编程基础/75
4.1LinuxC编程方法概述 75
4.2gcc编译基础 76
4.2.1gcc编译过程 76
4.2.2gcc命令 78
4.2.3gcc套用举例 79
4.3在线上手册 82
习题 82
第2部分原理篇
第5章进程管理/87
5.1进程 87
5.1.1程式的顺序执行与并发执行 87
5.1.2进程的概念 89
5.1.3进程控制块 91
5.1.4Linux系统中的进程 92
5.2进程的运行模式 95
5.2.1作业系统的核心 95
5.2.2中断与系统调用 97
5.2.3进程的运行模式 98
5.3进程的描述与组织 98
5.3.1进程的资源 98
5.3.2进程的描述结构 100
5.3.3进程的组织 100
5.4进程控制 101
5.4.1进程控制的功能 101
5.4.2Linux系统的进程控制 102
5.4.3Shell命令的执行过程 109
5.5进程调度 110
5.5.1进程调度的基本原理 110
5.5.2Linux系统的进程调度 112
5.5.3Linux系统的进程切换 117
5.6进程的互斥与同步 120
5.6.1进程间的制约关係 120
5.6.2信号量同步机制 121
5.6.3Linux的信号量机制 123
5.6.4死锁问题 124
5.7进程通信 125
5.7.1进程通信的方式 126
5.7.2Linux信号通信原理 127
5.7.3Linux管道通信原理 132
5.8执行绪 132
5.8.1执行绪的概念 132
5.8.2执行绪与进程的比较 133
5.8.3核心级执行绪与用户级执行绪 133
5.8.4Linux系统的执行绪 134
习题 135
第6章存储管理/137
6.1存储管理概述 137
6.1.1记忆体的分配与回收 137
6.1.2存储地址变换 137
6.1.3记忆体的保护 140
6.1.4记忆体的扩充 140
6.2存储管理方案 141
6.2.1段式存储管理 141
6.2.2页式存储管理 143
6.3虚拟存储管理 146
6.3.1虚拟存储技术 146
6.3.2页式虚拟存储器原理 147
6.4Linux的存储管理 150
6.4.1Linux的记忆体访问机制 150
6.4.2进程地址空间的管理 154
6.4.3记忆体空间的管理 159
6.4.4页面的交换 162
习题 165
第7章档案管理/166
7.1档案管理技术 166
7.1.1档案与档案系统 166
7.1.2档案的逻辑结构与存取方式 168
7.1.3档案的物理结构与存储方式 169
7.1.4档案的共享与保护 173
7.1.5档案存储空间的管理 173
7.2Linux档案系统概述 174
7.2.1Linux档案系统的特点 174
7.2.2Linux档案系统的结构 175
7.3Ext档案系统 177
7.3.1Ext档案的结构 177
7.3.2Ext档案系统的磁碟布局 183
7.3.3Ext档案存储分配策略 187
7.4虚拟档案系统 188
7.4.1VFS的对象 188
7.4.2VFS对象的关联结构 192
7.4.3VFS档案与进程的接口 192
7.4.4VFS档案与快取的接口 194
7.4.5档案系统的注册与挂装 195
7.4.6档案的操作 196
习题 198
第8章设备管理/199
8.1设备管理概述 199
8.1.1设备管理的功能 199
8.1.2设备的分类 200
8.1.3设备与系统的接口 200
8.1.4I/O系统的硬体结构 203
8.1.5I/O系统的软体结构 204
8.2设备管理的相关技术 205
8.2.1中断技术 205
8.2.2缓冲与快取技术 207
8.2.3DMA技术 209
8.3I/O控制方式 210
8.3.1程式控制I/O方式 211
8.3.2中断I/O方式 211
8.3.3DMA方式 212
8.3.4通道方式 212
8.4设备的分配与调度 213
8.4.1设备分配的方法 213
8.4.2虚拟设备技术 214
8.5设备的驱动 215
8.5.1设备的驱动方式 215
8.5.2驱动程式与中断处理程式 215
8.6Linux设备管理 216
8.6.1Linux设备管理综述 216
8.6.2LinuxI/O系统的软体结构 218
8.6.3Linux的设备管理机制 219
8.6.4字元设备的管理与驱动 221
8.6.5块设备的管理与驱动 222
8.6.6档案的块I/O操作 225
8.6.7Linux的中断处理 229
习题 233
第9章作业系统接口/234
9.1作业系统接口概述 234
9.1.1作业与作业调度 234
9.1.2作业系统的接口 235
9.1.3Linux系统的接口 236
9.2Shell命令接口 236
9.2.1Shell界面的组成 236
9.2.2Shell的功能 236
9.2.3Shell的版本 237
9.2.4Shell的工作流程 238
9.3Linux图形用户界面 239
9.3.1XWindow系统概述 239
9.3.2X系统的体系结构 240
9.3.3X图形界面的组成 242
9.3.4新一代图形系统 246
9.3.5Linux桌面系统简介 248
9.4Linux系统调用接口 252
9.4.1系统调用接口概述 252
9.4.2系统调用接口的组成 253
9.4.3系统调用的分类 254
9.4.4系统调用的执行过程 255
习题 257
第3部分套用篇
第10章Shell程式设计/261
10.1Shell语言概述 261
10.1.1Shell语言的特点 261
10.1.2Shell程式 261
10.1.3Shell程式的建立与执行 262
10.2Shell特殊字元 263
10.2.1通配符 263
10.2.2输入输出重定向与管道符 264
10.2.3命令执行控制符 266
10.2.4命令组合符 267
10.2.5命令替换符 267
10.2.6其他元字元 268
10.2.7元字元的引用 268
10.3Shell变数 269
10.3.1变数的定义与使用 269
10.3.2变数的作用域 271
10.3.3变数的分类 272
10.3.4环境变数 273
10.3.5特殊变数 275
10.4Shell表达式 279
10.4.1数字运算表达式 279
10.4.2逻辑测试表达式 281
10.5Shell控制结构 284
10.5.1条件与条件命令 284
10.5.2分支控制命令 284
10.5.3循环控制命令 286
10.5.4退出循环命令 288
10.5.5退出命令 289
10.6Shell程式综合举例 290
习题 293
第11章Linux系统管理/295
11.1系统管理概述 295
11.1.1系统管理工作的内容 295
11.1.2系统管理工具 295
11.1.3root的权威性与危险性 296
11.2启动与关闭系统 296
11.2.1Linux系统的引导方式 296
11.2.2Linux系统的初始化机制 297
11.2.3系统的启动与关闭操作 300
11.3用户与用户组管理 301
11.3.1用户与用户组 301
11.3.2用户管理 303
11.3.3用户组管理 307
11.3.4用户许可权管理 307
11.4档案系统维护 309
11.4.1档案系统的目录结构 309
11.4.2档案存储设备及命名规则 311
11.4.3建立档案系统空间 314
11.4.4建立档案系统 316
11.4.5挂装与拆卸档案系统 316
11.4.6修复档案系统 319
11.5系统备份 319
11.5.1备份策略 320
11.5.2备份命令 320
11.6系统监控 323
11.6.1监视用户的登录 323
11.6.2监控进程的运行 324
11.6.3监视记忆体的使用 329
11.6.4监视档案系统的使用 329
11.7软体安装 331
11.7.1软体的打包与安装 331
11.7.2RPM软体包管理工具 332
11.7.3DNF软体包管理工具 335
习题 337
第12章网路与通信套用/338
12.1TCP/IP网路相关概念 338
12.1.1TCP/IP协定概述 338
12.1.2IP位址与域名 339
12.1.3协定连线埠 340
12.1.4客户/伺服器软体模型 341
12.2Linux网路套用技术 342
12.2.1网路套用软体概述 342
12.2.2网路探询 343
12.2.3DNS查询 344
12.2.4远程执行命令 344
12.2.5档案传输 346
12.2.6电子邮件 347
习题 350
附录ALinux系统的安装/351
A.1安装準备 351
A.1.1获得安装映像 351
A.1.2确定安装方式 352
A.2在虚拟机中安装Linux系统 352
A.2.1虚拟机技术简介 352
A.2.2安装虚拟机软体 353
A.2.3创建虚拟机 353
A.2.4在虚拟机中安装Linux 358
A.3在硬碟中安装Linux系统 363
A.3.1製作安装引导盘 363
A.3.2安装前操作 364
A.3.3安装过程 365
A.3.4设定系统引导 366
附录BLinuxC开发工具简介/369
B.1LinuxC开发环境 369
B.2make工具介绍 371
B.2.1makefile档案 372
B.2.2make命令 374
B.3调试工具介绍 376
B.3.1gdb命令 376
B.3.2gdb的使用 377
参考文献/385