使用Linux 这么多年,一直都没有时间好好地把研究及经验整理出来,一方面也是因为Linux 下的kernel、软件更新速度实在是太快了,因此,在规划本书时,便希望尽量不要因为套件、版本的不同,而使内容有差异。
另一方面也希望将本书规划成一本非常实用的工具书,不论遇到何种系统的疑难杂症,都可以利用这本书找到真正核心的问题,因为Linux 并不是短时间即可学好的操作系统,所需要的入门知识太多了!
建议您在阅读本书时,一定要掌握一个重点——Linux 与硬件的关系是十分密切的,这也是本书一直强调的。虽然本书的范例说明是以Fedora为主,但只要是使用Linux 作为kernel 的操作系统,其内容都适用。本书的结构主要分成三大篇:
? 第一篇:进入系统
? 第二篇:管理系统
? 第三篇:GUI界面
本书篇名与系统的关系图
这三篇的关系就好比是整个操作系统的架构,从硬件到X Window 都绑在一起,彼此密不可分。尤其是第三篇的Virtual Machine,它是一个很新、很特别的机制,因为跨越了硬件、软件、操作系统的界线,而成为一个独立的虚拟操作系统。
第一篇:进入系统
本篇内容主要以Linux 基本概念为主,让读者可以通过实例,了解Linux 进入操作系统的每一个步骤,以及软、硬件之间的关系。本篇以整个开机流程为章节的顺序来介绍,从BIOS 一直到登录Linux 都涵盖在内。第1章“BIOS”虽然和Linux 没有直接关系,但BIOS 对Linux 开机及系统的实际操作上有一定程度的影响,因而将其加入到基本概念中。接着,第2章“开机管理程序”、第3章“Kernel 与initrd”、第4章“initrd中的init”及第5章“init”都是Linux中不得不知的细节。
Kernel 与initrd 是比较偏重硬件的部分,如果是CPU、内存或硬件出现问题,将造成无法开机,比较有可能的是在第3章及第4章初始化的过程中造成的,因为在这两章的阶段是开始激活kernel,但又尚未进入真正的操作系统。
在第5章“init”中提到很多开机时遇到的问题都是在这一阶段所产生的,因为这是进入系统的第一个阶段,所有的环境、局部变量,以及系统的设置都是在此建立的,也就是说,如果问题是由系统本身所造成的,将很有可能会停在这个步骤。
第二篇:管理系统
在硬件之上,如何通过Linux 内建的指令及一些外在的工具程序,判断系统的稳定性?第二篇的重点在于介绍如何检查系统软、硬件的搭配状况,这在系统实际上线时是非常重要的环节,但不知为何到目前为止,还未看过有专门的书介绍它们。很多硬件无法使用的原因并不一定来自硬件本身,能否顺利排除问题往往得靠用户对软、硬件的整合能力。一个系统的负载越大,本章的重要性便越高。
从系统管理员的角度来看,整个系统的稳定性都操控在自己手中,若没有将系统与软、硬件之间的关系理清楚,很容易产生非预期的结果。第一篇及第二篇都是非常重要的部分。
计算机一买来,就应该针对第6章“系统检查”所谈到的系统检查细节先行检查一次,因为这些都是计算机中很容易被忽略掉的问题,虽然不是每一项都能影响到开机的运作,但它们对计算机性能的影响是非常大的。
之后再运用第7章“系统性能”所介绍的系统性能概念,并参考其中所介绍的硬件测试工具或方法,了解性能所带来的差异。有时候某些硬件并不一定需要工具程序才可以评估其好坏,在有限的资源中,也有可以实时评估的方法。
第三篇:GUI界面
本篇主要分为“X Window”及“Virtual Machine”两部分,会将图形界面独立于系统之外重点介绍,主要是因为所有的GUI 软件都是构建于Linux 之上的。
第8章“X Window System”和以往所看到的如何在X Window 下使用各式各样的软件不同,它是以一个全新的角度来看窗口接口的架构的。与本书的基本精神一样,我们并不会讲解如何操作X Window,而是说明X Window 的运行流程及整个X Window 的架构,这对要在笔记本电脑中使用X Window 的用户而言,是非常有帮助的,尤其是当遇到运行X Window 的问题时。
第三篇另增加了一个内容,即第9章“Virtual Machine”,其原因在于Virtual Machine 在Linux 中是一个全新的架构,虽不能说是Linux的基本概念,但往后所有的Linux 都有可能加入到Virtual Machine 的行列中。因为是全新的功能,本章先将重点放在讲解如何操作上,这也是本书唯一介绍操作方法的章节,希望可以让读者以最快的速度学会此最新的功能。
Virtual Machine 是未来的趋势,不只是Linux,Windows 也已经走向此机制,Windows Server 2008 其实就已经是Virtual Machine 的操作系统了。连Windows 都已经默认以Virtual Machine 为系统架构,身为Linux 用户的您当然一定要知道。
本书所要带给读者的,不是速成地直接找到问题的解决之道,而是希望通过对整体Linux 操作系统架构的理解,让所有用户可以在问题发生时,了解其问题原因所在,以及未来防范的方法,相信唯有如此,才可以让一台Linux 的主机无后顾之忧,而不需要一直有追随版本的迷思。
附注:如何取得Linux 操作系统——Fedora Core
Fedora Core是由Red Hat 所主导的免费Linux-based操作系统,读者可至以下网站下载各版本的安装光盘image文件:
?官方网站:
http://mirrors.fedoraproject.org/publiclist/Fedora/8/
?大陆相关网站:
http://mirrors.cn99.com/Fedora-8-dvd-i386/
第一篇 进入系统
第1章 BIOS 3
1.1 何谓BIOS 4
1.2 Power On 7
1.3 POST 9
1.4 BIOS信息 11
1.5 BIOS修护 14
1.6 硬盘的主引导扇区(MBR) 14
1.7 BIOS与操作系统的交互 22
第2章 开机管理程序 25
2.1 何谓GRUB 26
2.2 GRUB的设置方式 34
2.3 多重开机的管理 41
2.4 安装GRUB 47
2.5 除错方式 55
2.6 拯救无法开机的情况 57
总结 62
第3章 Kernel与initrd 63
3.1 何谓kernel 66
3.2 编译kernel 68
3.3 何谓initrd 84
3.4 开机时常用的kernel参数 95
总结 99
第4章 initrd中的init 101
4.1 认识nash 104
4.2 挂载主要的文件系统 106
4.3 建立设备文件所需的文件系统 111
4.4 转移前的准备 124
总结 130
第5章 init 131
5.1 init的基本结构 132
5.2 /etc/rc.d/rc.sysinit 134
5.3 /etc/rc.d/rcX.d 138
5.4 通过登录程序进入shell 146
总结 156
第二篇 管理系统
第6章 系统检查 159
6.1 硬件部分 160
6.2 ext3与Journaling 171
6.3 固件部分 175
总结 186
第7章 系统性能 187
7.1 性能调整 188
7.2 硬件测试 197
总结 210
第三篇 GUI界面
第8章 X Window System 213
8.1 X重要组件 215
8.2 进入X Window流程的差异 224
8.3 操作X Window的Client-Server 228
总结 237
第9章 Virtual Machine 239
9.1 XEN的介绍 240
9.2 安装PV 248
9.3 安装FV 262
9.4 XEN相关设置 268
总结 272
附录A GRUB Stage1.5与Stage2错误信息对照表 273
写这本书的动机,主要是观察到市面上大部分的Linux相关书籍都着重在探讨Server 管理或建站,并将重点放在X Window 的操作上,很少将焦点放在讨论Linux 本身的概念上,所以,这类书看似入门简单却缺乏Linux 的根基;另外,也有一些Linux书籍完全以对Kernel的解析为主,并以C语言的方式来探讨,而将Linux 应用部分切除在外,对一位对C语言不熟的读者来说,要看完这样的书可能性实在太小了!
本书试图在这两种极端的Linux 书籍之间找到一个平衡点,换句话说,这是一本关于Linux 整体概念的书,难易度适中,不以C语言或架站的观点来解释,而是用最实际的操作步骤及开机流程来说明整个Linux 的架构,希望能最贴近Linux 用户的需求。
很多未曾接触过Linux 的人,可能会认为Linux 是一个复杂的操作系统(刚开始,笔者也是这样认为的),让人完全摸不到头绪;但其实用过Linux 之后便知道,Linux 是一个很有趣的操作系统,只要有过两三年的Linux 使用基础,并且会一点点程序语言,看得懂shell script,就可以把整个Linux 的架构、流程、系统管理、硬件管理等全部看清楚,因为Linux 中有很多东西都是通过shell script完成的。
笔者在不断学习Linux 的过程中,曾经遇到许多编程高手,他们大多数都认为Linux就是C语言;但其实除了打开Linux kernel,一行一行地欣赏程序外,Linux操作系统还有许多实际的应用在其中,包括如何善用GNU 或其他组织所提供的各种工具程序,改善Linux 主体以做到系统自动化等。这些不仅仅是程序层面,更可以学习到Linux 本身的系统流程和对硬件的支持,通过日积月累的经验,再加上不断尝试,将可以更深入理解此操作系统的奥秘。
本书的主要目的,是想让所有读者在看过本书之后,可以将学校相关课程如操作系统、硬件架构等观念与Linux 结合,而不是理论归理论,将实际应用放一边;也让所有对操作系统感兴趣的读者,可以通过Linux 看到一些硬件信息,以及操作系统整体的激活流程规划,知道Linux 是一个如此方便的操作系统,没有任何的隐私与保留,只为用户而存在。
当然,Linux 可应用的范围太广、太大,其流程涉及的内容也太多,无法在一本书中全部详述,很多想要分享的经验,像Clustering,限于篇幅,无法在本书中介绍,只能先将笔者认为应该说明而遗憾没在坊间书籍读到的Linux 基本概念于本书中阐述,希望未来有机会,再将高级内容另著书与读者分享。
最后将这本书献给挺着肚子陪我一起写书的爱妻、即将出生的宝贝儿子,以及最贴心的女儿,因为有你们才让我知道何谓幸福,何谓美满,何谓一辈子的快乐。此外,也要感谢陈祥辉学长在我求学路上的不断提携,让我可以一路跨越技术门槛到现在。感谢正在阅读本书的读者,如果没有您们的支持,就不会有这本书的存在,如果对本书有任何批评与指教,欢迎通过E-mail 直接和我联系。
邱世华
Juergen.chiu@gmail.com
2007 年8月
无封面