第1章 Linux初探 1
1.1 初识Linux 1
1.1.1 Unix操作系统的基本理论 2
1.1.2 Linux核心系统的构成 3
1.2 Linux的历史与发展 4
1.2.1 Linux的历史沿革 4
1.2.2 Linux的发展趋势 6
1.2.3 Linux的常用版本 9
1.3 Linux的特性 13
1.3.1 Linux的新特性 14
1.3.2 Linux的特色 16
1.3.3 Linux与其他操作系统的区别 17
1.3.4 为什么要使用Linux 18
1.4 Linux的获取以及Linux的网上资源 20
1.4.1 如何获取Linux 20
1.4.2 Linux的网络资源 22
1.5 Linux在中国的前景与Clinux计划 25
第2章 Linux的安装 27
2.1 Linux安装的硬件要求 27
2.1.1 计算机硬件概述 27
2.1.2 计算机硬件的综合考察 28
2.1.3 选配一部可以用的LinuxPC 31
2.2 安装前的准备工作 32
2.2.1 Linux系统在新机器上的安装 33
2.2.2 在DOS系统上安装Linux 33
2.2.3 给Unix高手速读 34
2.2.4 如何将A:磁盘与B:磁盘互调 36
2.2.5 Slackware Linux软件简介 36
2.2.6 Linux/Unix对大小写字母过敏 37
2.2.7 硬盘的分区(Partition) 37
2.2.8 开机选择程序 38
2.2.9 Slackware Linux的系统安装盘 39
2.2.10 系统安装盘的选择 39
2.2.11 系统安装磁盘的制作 41
2.3 Slackware Linux的安装过程 44
2.3.1 系统安装步骤概述 44
2.3.2 系统的安装的开始 45
2.3.3 硬盘分区规划 47
2.3.4 系统安装过程 50
2.4. RedHat Linux的安装 66
2.4.1 安装前的准备工作 67
2.4.2 开始安装系统 74
2.4.3 系统的升级与继续安装 83
2.4.4 系统配置与结束安装 93
第3章 Linux的基本配置 100
3.1 网络配置 100
3.1.1 网络配置前的准备工作 100
3.1.2 网络配置文件简介 105
3.1.3 设定Loopback设备(强制选用) 106
3.1.4 设定以太网设备(ethernet device) 107
3.1.5 设定SLIP设备 108
3.1.6 设定PLIP设备 113
3.1.7 设定PPP设备 113
3.2 X Window的配置 116
3.3 通过控制面板设置Linux 123
3.3.1 文件系统配置 124
3.3.2 配置打印机 125
3.3.3 网络配置 128
3.3.4 时间与日期 132
3.3.5 内核守护进程配置 132
3.4 其他设备的配置 134
3.4.1 在Linux下配置光驱 134
3.4.2 声卡的设置 143
3.4.3 在Linux下配置网卡 152
3.4.4 在Linux下安装和配置打印机 155
第4章 Linux使用入门 160
4.1 Linux常用指令介绍 160
4.2 Linux的文件结构 176
4.2.1 Linux文件结构的概述 176
4.2.2 根文件系统 177
4.2.3 其他文件目录 179
4.2.4 Linux的文件系统 181
4.3 基本的系统操作 189
4.3.1 启动用户的RedHat Linux系统 189
4.3.2 登录,退出 189
4.3.3 帐号和口令 190
4.3.4 关闭RedHat Linux系统 192
4.3.5 X Window系统的操作 193
4.4 帮助文档 196
4.4.1 在线帮助 196
4.4.2 从因特网获得帮助 200
4.5 Emacs的使用 201
4.5.1 Emacs的基本操作 201
4.5.2 Emacs的扩充指令 205
4.5.3 Elisp简介 209
4.6 Vi的使用 210
4.6.1 Vi基本概念 210
4.6.2 Vi的基本操作 211
4.6.3 Vi使用技巧 212
4.7 RPM的使用 215
4.7.1 RPM概述 216
4.7.2 RPM的用途 217
4.7.3 使用RPM 218
4.7.4 建造RPM 220
4.7.5 多操作平台RPM的建造 228
4.8 Glint的使用 230
4.8.1 启动glint 231
4.8.2 显示软件包 231
4.8.3 配置 233
4.8.4 操纵软件包 233
第5章 Linux的系统管理 238
5.1 启动和关机 238
5.1.1 引导和关机概述 238
5.1.2 引导过程简析 238
5.1.3 关于关机的进一步讨论 240
5.1.4 重启动 242
5.1.5 紧急引导(软)盘 242
5.2 系统的账号管理 242
5.2.1 账号的基本概念 242
5.2.2 创建用户 243
5.2.3 改变用户属性与基本操作 244
5.2.4 用户、组及私有用户组 245
5.2.5 基于PAM的用户认证 248
5.2.6 影子工具 251
5.3 创建定制的核心 251
5.3.1 创建模组化的内核 251
5.3.2 创建initrd映像 254
5.3.3 创建单一的核心 254
5.4 网络应用的管理 254
5.4.1 设置邮件管理(Sendmail) 254
5.4.2 控制对服务的存取 255
5.4.3 匿名FTP 256
5.4.4 NFS设置 256
5.5 Boot,Init和Shutdown过程的描述 257
5.5.1 有关Sysconfig的信息 257
5.5.2 系统V的Init过程 262
5.5.3 Init的运行级 264
5.5.4 Initscript工具 264
5.5.5 在Boot时执行程序 264
5.5.6 系统关闭命令 265
5.6 紧急救护模式 265
5.6.1 通过LILO 265
5.6.2 应急Boot盘组 265
5.7 系统的备份与恢复 266
5.7.1 备份的重要 266
5.7.2 选择备份介质 266
5.7.3 选择备份工具 267
5.7.4 简单备份 267
5.7.5 多级备份 270
5.7.6 备份的内容 271
5.7.7 压缩备份 271
5.8 内存管理 272
5.8.1 虚拟内存的基本概念 272
5.8.2 产生对换空间 272
5.8.3 使用对换空间 273
5.8.4 与其他操作系统共享对换空间 274
5.8.5 分配对换空间 274
5.8.6 高速缓存 275
5.9 系统的时间管理与使用 276
5.9.1 硬件时钟和软件时钟 276
5.9.2 显示和设置时钟 276
5.9.3 调整时钟错误 277
5.10 开机程序的进一步讨论 278
5.10.1 Shell Script分析 278
5.10.2 Shell Script的进一步分析 287
第6章 Linux内核技术 295
6.1 操作系统 295
6.1.1 操作系统的基本概念 295
6.1.2 核心数据结构 297
6.2 Linux操作系统的内存管理模式 299
6.2.1 虚拟内存的抽象模型 299
6.2.2 高速缓存 304
6.2.3 Linux页表 304
6.2.4 页的分配和回收 305
6.2.5 内存映射 307
6.2.6 Demand Paging 308
6.2.7 Linux的页缓存 308
6.2.8 交换出去和废弃页 309
6.2.9 交换缓存 312
6.2.10 交换进程 312
6.3 设备驱动程序 313
6.3.1 轮询和中断 314
6.3.2 DMA 315
6.3.3 内存 316
6.3.4 设备驱动程序和核心接口 317
6.3.5 硬盘 319
6.3.6 网络设备 325
6.4 核心机制 327
6.4.1 Bottom Half Handling 327
6.4.2 任务队列 328
6.4.3 系统时钟 329
6.4.4 等待队列 330
6.4.5 Buzz锁 331
6.4.6 信号灯 331
6.5 模块 332
6.5.1 加载一个模块 333
6.5.2 删除模块 335
6.6 Linux核心源程序 336
6.6.1 Linux核心源程序的获得 336
6.6.2 核心源程序的组织 337
6.6.3 内存管理 337
6.6.4 设备驱动程序 338
6.6.5 其他核心文件 338
6.6.6 Linux数据结构 339
第7章 Linux下的程序设计 361
7.1 Linux系统程序设计入门 361
7.1.1 FindMan的Initial部分 362
7.1.2 取得User资料的pitch函数 364
7.2 安装GNU C编译器和程序库 369
7.2.1 GNU C各种资料的取得 369
7.2.2 GCC的安装与GCC的设定 370
7.2.3 移植程序与编译程序 372
7.2.4 除错与监管 375
7.2.5 链接 377
7.2.6 动态载入 381
7.3 GNU C Library的安装与使用 383
7.3.1 选择安装方式 383
7.3.2 取得函数库 384
7.3.3 安装测试用的函数库 385
7.3.4 将系统安装成主要函数库 387
7.3.5 使用非主要的C函数库编译程序 390
7.3.6 编译C++程序 392
7.3.7 Specs档示例 392
7.4 Linux下的C程序设计 393
7.4.1 C语言中应注意的几点 394
7.4.2 不同的C语言版本 395
7.4.3 C语言的资料形态 396
7.4.4 不定参数 398
7.4.5 Watcom C/C++ 400
7.4.6 宏 402
7.5 AWK编程简介 404
7.5.1 AWK简介 405
7.5.2 读取输入文件 406
7.5.3 打印 407
7.5.4 patterns 410
7.5.5 算式(Expression)作为Actions的语句 411
7.5.6 Actions里面的控制语句 412
7.5.7 内建函数(Built-in Functions) 414
7.5.8 用户自定义的函数(User-defined Functions) 416
7.5.9 Gawk程序示例 416
7.5.10 Gawk小结 417
7.6 Nachos简介 417
7.6.1 机器模拟 417
7.6.2 进程管理 420
7.6.3 文件系统 423
7.6.4 网络及虚拟内存 425
7.6.5 Nachos在普通PC上的实现 426
7.7 制作Makefile 432
7.7.1 简介 432
7.7.2 准备工作 432
7.7.3 一个简单的例子 433
7.7.4 原理分析 435
7.7.5 相关信息 437
7.7.6 Makefile简单小结 437
7.8 多进程编程基础 438
7.8.1 多进程程序的特点 438
7.8.2 多进程编程技巧 439
第8章 Linux工作原理 443
8.1 进程 443
8.1.1 Linux的进程 444
8.1.2 标识 445
8.1.3 调度 446
8.1.4 文件 448
8.1.5 虚拟内存 449
8.1.6 创建一个进程 451
8.1.7 时间和计时器 452
8.1.8 执行程序 452
8.2 进程间通讯机制 455
8.2.1 信号 455
8.2.2 管道 457
8.2.3 Sockets 458
8.3 PCI总线 463
8.3.1 PCI地址空间 463
8.3.2 PCI配置头 464
8.3.3 PCI I/O和PCI内存地址 465
8.3.4 PCI-ISA桥 466
8.3.5 PCI-PCI桥 466
8.3.6 Linux PCI初始化过程 467
8.4 中断和中断处理 474
8.4.1 可编程中断控制器 475
8.4.2 初始化中断处理数据结构 476
8.4.3 中断处理 477
8.5 文件系统 478
8.5.1 EXT2 479
8.5.2 虚拟文件系统VFS 484
8.5.3 核心守护进程bdflsuh 491
8.6 网络 493
8.6.1 TCP/IP网络概览 493
8.6.2 Linux TCP/IP网络分层 495
8.6.3 BSD socket接口 496
8.6.4 INET Socket层 498
8.6.5 IP层 501
8.6.6 地址解析协议 504
8.6.7 IP路由 505
第9章 系统安全与维护 508
9.1 系统的安全管理 508
9.1.1 超级用户与文件系统安全 508
9.1.2 作为root运行的程序 513
9.1.3 /etc/passwd文件 514
9.1.4 /etc/group文件 515
9.1.5 增加、删除、移走用户 516
9.1.6 安全检查 517
9.1.7 加限制的环境 520
9.1.8 小系统安全 521
9.1.9 物理安全 522
9.1.10 用户意识 522
9.2 用户安全 523
9.2.1 口令安全 523
9.2.2 文件许可权 524
9.2.3 目录许可 524
9.2.4 umask命令 524
9.2.5 设置用户ID和同组用户ID许可 525
9.2.6 cp mv ln和cpio命令 525
9.2.7 su和newgrp命令 526
9.2.8 文件加密 526
9.2.9 其他安全问题 526
9.2.10 保持户头安全的要点 528
第10章 系统汉化与Turbo Linux 530
10.1 中文系统在Linux实现的主要困难 530
10.2 中文软件的获得 531
10.2.1 Internet上的中文软件 531
10.2.2 使用Archie获得中文软件 532
10.3 中文显示与输入 532
10.3.1 xcin+crxvt 532
10.3.2 yact 533
10.3.3 bcs16 534
10.3.4 chdrv 534
10.3.5 cxterm 535
10.3.6 XA(Xcin Anywhere) 536
10.3.7 新增输入法 537
10.3.8 中文输入问题 537
10.4 X Window汉化 538
10.4.1 CXWin 538
10.4.2 安装中文字型 540
10.4.3 TaBE及B5LE 542
10.5 打印中文文件 542
10.5.1 cnprint 542
10.5.2 ps2cps 543
10.5.3 bg2ps 544
10.5.4 gb2ps 544
10.6 中文排版软件 545
10.6.1 LaTeX+CJK 545
10.6.2 ChiTeX 548
10.6.3 六书(Dtop) 550
10.6.4 ChinesePower 551
10.7 常用的中文软件 551
10.7.1 cjoe 552
10.7.2 celvis 552
10.7.3 cvim 552
10.7.4 he 553
10.7.5 hztty 553
10.7.6 ktty 553
10.7.7 Cemacs与CChelp For Emacs 554
10.7.8 Mule 554
10.7.9 hc 555
10.7.10 ctin 555
10.8 Turbo Linux应用简介 555
10.8.1 登录Turbo Linux 556
10.8.2 控制用户权限 556
10.8.3 基本网络命令 556
10.8.4 启动X Window系统 557
10.8.5 TurboDesk桌面环境 557
10.8.6 Turbo Linux的常用任务 561
10.8.7 中文外挂平台ZWinPro使用简介 562
10.8.8 软件推荐 567