分类: LINUX
2010-08-19 19:45:33
本书描述的是Linux 内核
本书的网页上列出了勘误表、示例和任何额外的信息。可登录以下网址查询:
Linux 内核2.6 版的目标是遵循IEEE POSIX 标准。这意味着在Linux 系统下,很容易编译和运行目前现有的大多数Unix 程序,只需少许或根本无需为源代码打补丁。此外,Linux 包括了现代Unix 操作系统的全部特点,诸如虚拟存储、虚拟文件系统、轻量级进程、Unix 信号量、SVR4 进程间通信、支持对称多处理器(Symmetric Multiprocessor,SMP)系统等。
Linux内核的特点如下:
*单块结构的内核(Monolithic kernel)
*编译并静态连接的传统Unix 内核
*内核线程
一些Unix内核,如Solaris 和SVR4.2/MP,被组织成一组内核线程(kernel thread)。
内核线程是一个能被独立调度的执行环境(context);也许它与用户程序有关,也
许仅仅执行一些内核函数。线程之间的上下文切换比普通进程之间的上下文切换花
费的代价要少得多,因为前者通常在同一个地址空间执行。Linux 以一种十分有限
的方式使用内核线程来周期性地执行几个内核函数;但是,它们并不代表基本的执
行上下文的抽象(这就是下面要讨论的议题)
*多线程应用程序支持
大多数现代操作系统在某种程度上都支持多线程应用程序,也就是说,这些用户程
序是根据很多相对独立的执行流来设计的,而这些执行流之间共享应用程序的大部
分数据结构。一个多线程用户程序由很多轻量级进程(lightweight process,LWP)
组成,这些进程可能对共同的地址空间、共同的物理内存页、共同的打开文件等等
进行操作。Linux 定义了自己的轻量级进程版本,这与SVR4、Solaris 等其他系统
上所使用的类型有所不同。当LWP的所有商用Unix变体都基于内核线程时,Linux
却把轻量级进程当作基本的执行上下文,通过非标准的clone()系统调用来处理
它们。
*抢占式(preemptive)内核多处理器支持
*多处理器支持
*文件系统
Linux 标准文件系统呈现出多种风格。如果你没有特殊需要,就可以使用普通的Ext2 文件系统。如果你想避免系统崩溃后冗长的文件系统检查,就可以切换到Ext3。如果你不得不处理很多小文件, ReiserFS文件系统可能就是最好的选择。 除了Ext3 和ReiserFS,还可以在Linux 中使用另外几个日志文件系统;这些文件系统包括IBM AIX 的日志文件系统(Journaling File System,JFS)和SGI 公司IRIX系统上的XFS 文件系统。有了强大的面向对象虚拟文件系统技术(为Solaris 和SVR4 所采用),把外部文件系统移植到Linux 比移植到其他内核相对要容易。
*STREAMS
尽管现在大部分的Unix 内核内包含了SRV4 引入的STREAMS I/O 子系统,并且
已变成编写设备驱动程序、终端驱动程序及网络协议的首选接口,但是Linux 并没
有与此类似的子系统。
对Linux 的评价充分说明,与商业化的操作系统相比,Linux 已经具备足够的竞争力。
而且,Linux 一些独具特色的特点使其成为一种趣味盎然的操作系统。商业化的Unix内核为了赢得更大的市场份额通常也引入了新特征,但这些特征本是可有可无,其稳定性和效率都值得商榷。事实上,现代Unix 内核有向更臃肿变化的倾向,而Linux 以及其他开放源代码的操作系统不受市场因素的制约,因此可以根据设计者的想法(主要是Linus Torvalds 的想法)自由地演进。尤其是,与商用竞争对手相比,Linux 有如下优势:
Linux 是免费的。除硬件之外,你无需任何花费就能安装一套完整的Linux 系统。
Linux 的所有成分都可以充分地定制。通过内核编译选项,你可以选择自己真正需要的特征来定制内核。而且有了通用公共许可证(GPL),你就可以自由地阅读、修改内核和所有系统程序的源代码(注4)。
Linux 可以运行在低档、便宜的硬件平台上。你可以用一个4MB内存的旧Intel 80386 系统构建网络服务器。
Linux 是强大的。由于充分挖掘了硬件部分的特点,使得Linux 系统速度非常快。Linux的主要目标是效率,所以,商用系统的许多设计选择由于有降低性能的隐患而被Linus 舍弃,如STREAMSI/O 子系统。
Linux 的开发者都是非常出色的程序员。Linux系统非常稳定,有非常低的故障率和非常少系统维护时间。
Linux 内核非常小,而且紧凑。我们甚至可以把一个内核映像和一些系统程序放在一张1.4MB 的软盘上!据我们所知,没有一个商用Unix 变体能从一张软盘上启动。
Linux 与很多通用操作系统高度兼容。Linux 可以让你直接安装以下文件系统的所有版本:MS-DOS 和 MS Windows、SVR4、OS/2、Mac OS X、Solaris、SunOS、NEXTSTEP,还有很多 BSD 变体等等。另外, Linux 也能对很多网络层进行操作,这些网络层如以太网[如:快速以太网和高速(Gbit/s 及10Gbit/s )以太网]、光纤分布式数据接口(Fiber Distributed Data Interface,FDDI)、高性能并行接口(High Performance Parallel Interface,HIPPI)、IEEE 802.11(无线局域网)和IEEE802.15(蓝牙)。。通过使用适当的库函数,Linux 系统甚至能直接运行为其他操作系统所编写的程序。例如,Linux 能执行为以下操作系统所编写的应用程序: MS-DOS、 MS Windows、SVR3 及SV R4、4.4BSD、 SCO Unix、Xenix,以及其他在Intel 80x86 平台上运行的操作系统。
Linux 有很好的技术支持。不管你信不信,Linux比任何有版权的操作系统更容易获得补丁和更新!如果你把遇到的难题发给一些新闻组或邮件列表,经常在几个小时内就会得到回应。此外,当新的硬件产品投放市场以后,其Linux 驱动程序通常在几周内就可得到。与此相反,硬件厂商仅仅给少数商业操作系统发布设备驱动程序,通常只有微软一家。因此,所有商用Unix 变体只能运行在有限的硬件上。
支持的硬件平台(略)