1、内核概念,操作系统是一个用来和硬件打交道并为用户程序提供一个有限服务集的低级支撑软件。一个计算机系统是一个硬件和软件的共生体,它们互相依赖,不可分割。计算机的硬件,含有外围设备、处理器、内存、硬盘和其他的电子设备组成计算机的发动机。但是没有软件来操作和控制它,自身是不能工作的。完成这个控制工作的软件就称为操作系统,在Linux的术语中被称为“内核”,也可以称为“核心”。Linux内核的主要模块(或组件)分以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。,一般地,可以从Linux内核版本号来区分系统是否是Linux稳定版还是测试
2、版。以版本2.4.0为例,2代表主版本号,4代表次版本号,0代表改动较小的末版本号。在版本号中,序号的第二位为偶数的版本表明这是一个可以使用的稳定版本,如2.2.5,而序号的第二位为奇数的版本一般有一些新的东西加入,是个不一定很稳定的测试版本,如2.3.1。这样稳定版本来源于上一个测试版升级版本号,而一个稳定版本发展到完全成熟后就不再发展。,Linux 2.6内核新特性,使用了新的调度算法,称为0/1算法。在高负载的情况下执行非常出色,并且在有很多处理器时可以很好的扩展,而2.4内核使用的是时间片重算法,严重影响效率。 采用抢占式内核,使交互式操作、多媒体应用程序的响应速度大大提高。改进的虚拟
3、内存 修改了I/O子系统部分,保证在各种工作负荷下I/O都有很好的响应速度。 大量改进文件系统,比如支持Windows的逻辑卷管理器、重写对NTFS文件系统的支持、改进HPFS等。 改进和部分重写了Modules功能,使之更稳定。 改进对USB的支持,使之能够支持当前多数主流的USB设备。 加强对无线设备的支持。 支持更多种类和型号的多媒体设备。,实际上2.6版内核的很多新特性都是针对企业应用的改进,比如最大支持64个CPU、64GB内存、支持NUMA(非一致存储访问)等。对于普通PC用户,从2.6版内核中感受到的将是USB支持、响应速度、音频、无线设备、PDA等方面的提高。,Windows
4、VS Linux内核,从应用角度看,Linux内核的主要任务是I/O设备管理、TCP/IP及任务调度等。Linux内核表现出高度的可配置性和独立性,可以移植到多种平台上。Linux内核的可配置、可移植性使得Linux在许多领域中被广泛使用。Linux的标准内核发布版本体积大概在4050MB左右,而现在,一些在评估板上试验用的嵌入式Linux系统(使用ARM或M68K系列嵌入式处理器)只用到2MB大小的内核,同样能够实现网络功能和完整的任务调度。这使得Linux可以适用于从高端服务器到嵌入式应用的各等级平台。 与之相比,Windows并没有明确的内核概念,它更适合于台式机。Window NT从未
5、真正地打入高端服务器领域,嵌入式领域的WinCE系统也同样遇到了一些结构性困难。 从性能角度比较,衡量一个内核优劣的重要指标是多任务环境下的安全性和任务调度效率。Linux在这方面继承了Unix的优点。在多任务效率的比较上,Linux内核中的消息机制和通信模式使其在速度和性能上都更具优势。 而Windows 9x系列(包括Windows Me)并没有实现安全的多任务环境,Windows 2000/NT虽在安全性上下了功夫,但结果仍然存在诸多的安全隐患和漏洞。,Linux 2.6内核VS Linux 2.4内核,新内核较之以往内核在很多方面都有突破性地改进,前面已有列举。这里再简单对几个较突出的
6、方面进行比较,使读者对新内核的新特性能有一个更清晰的了解。 1服务器领域 在大型服务器领域,Unix一直独占鳌头。最新发布的Linux 2.6版内核增加了对安全性的改进和支持,从而使Linux具备了与Unix在这一领域抗衡的基础。 Linux的稳定性和安全性一直都是商家青睐它的主要原因,大型服务器更是Linux在商业领域发展的顶梁柱。2.6版内核对更多新硬件类型的支持中也包含了对大型服务器更多的支持。这些服务器既有运行i386处理器的,也有运行其它处理器的。这些特性是新近加入Linux的,还有许多优化工作需要完成。但这是Linux发展相当迅速的一个领域,预计在不久的将来,Linux将成为服务器
7、领域更有力的竞争者。 在Linux 2.6内核中,整个基于核心的安全体系,即类Unix操作系统中的超级用户权限,已经被划分成一些可以被替换的安全模块。不过,目前提供的安全模块只有一个缺省的,仅仅当作一个向我们展示如何自定义安全模块的例子。作为这个变化的一部分,核心的所有部分都被更新,以具有更细粒度的用户访问控制,而不是像以前那样的“超级用户”系统。虽然几乎所有的Linux系统将仍然存在具有完全访问权限的root用户,但上述改变使得类Linux系统可以不再必须如此。 另一个与安全相关的变化是一些二进制模块不能再重载系统调用,也不能看到及修改系统调用表。这极大地限制了非开放源码模块在核心中的访问,
8、同时也修补了GPL版权协议在这方面可能存在的漏洞。,2文件系统,1) 本地文件系统 相对于Linux 2.4而言,2.6版内核对于文件系统的支持在很多方面都有大的改进。 日志文件系统的最大优点是它的容错能力。一个设计精良的日志文件系统在损坏恢复方面,比传统的日志文件实现起来更容易、时间更短、返回服务功能更快。2.6版内核增加了对日志文件系统功能的支持,解决了2.4版在这方面的不足。 2.6版内核在文件系统上的关键变化还包括对扩展属性及POSIX标准访问控制的支持。ext2/ext3作为大多数Linux系统缺省安装的文件系统,在2.6版内核中是改进最大的一个。最主要的变化是对扩展属性的支持,即给
9、指定的文件在文件系统中嵌入一些元数据。很多其它操作系统,如Windows已经大量地使用了这种扩展属性。但Unix系的操作系统一般都还不能很好地支持扩展属性,很多用户级程序需要进行更新才能保存和转储这些扩展属性信息。,2) 网络文件系统 Linux下块设备最常见的用法是在块设备上建立一个文件系统。但并不是所有文件系统都作为块设备被加载,像进程、共享内存和设备文件系统等完全都是虚拟的。还有其它一些文件系统是通过网络加载的,其完成的方法多样,许多操作系统都提供自己的方法来处理。Linux可以识别当前的大部分网络文件系统(NFS)。 Linux 2.4内核在显著提高NFS加载目录稳定性的同时,还提供对
10、NFS协议最新版本NFSv3的支持。NFSv3能更好地支持文件系统同步、文件锁定等功能。 Linux 2.6内核中,网络文件系统同样得到了更新和改进。最大的改进就是实验性地支持NFSv4协议在客户端和服务器端的实现。新版本有更强、更安全的身份认证(采用加密技术),支持更智能化的锁管理、伪文件系统等。Linux 2.6还没有实现所有NFS4的新特征,但目前的版本已经比较稳定,并能够支持一些产品级的应用。同时,改进了基于Linux的NFS服务端的实现,从而具有更好的扩展性、完整性、健壮性。通过新的NFSd文件系统能够更加便捷地管理,而不再需要通过系统调用来管理。 除了改进对网络文件系统的支持,Li
11、nux 2.6在对Windows类型的网络文件系统支持方面也进行了改进。Linux新内核能够在SMB协议的客户端对该协议的很多版本提供不错地支持。同时,2.6新内核无需在内核编译阶段手动选择从Windows 9x或Windows NT/2000加载的选项,而能够自动检测远端操作系统的类型,并能够进行必要地排错。 Linux 2.6还加入了相对新的一些分布式网络文件系统,支持一个逻辑卷上的文件分布在多个节点中。,3嵌入式系统,嵌入式系统是一种以应用为中心,计算机技术为基础,软件/硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统。 嵌入式领域是Linux应用的广阔
12、天地。uCLinux是Linux应用在微控制器平台的一个项目,是一种针对不带MMU的ARM微处理器的嵌入式操作系统。uCLinux完全符合GNU/GPL公约,完全开放代码,它的很多特性都和Linux相同,最典型的特征是无MMU(内存管理单元)。 Linux 2.6内核扩展多嵌入式平台支持的一个主要途径就是把uCLinux的大部分并入主流内核功能中。目前许多嵌入式处理器如ARM系列等,很多都是无MMU的。uCLinux在嵌入式系统中的应用非常广泛。因此,Linux 2.6对无MMU体系结构的支持,及将Linux和uCLinux合并到统一的新内核中,无疑为Linux在嵌入式领域的广泛应用加重了砝码
13、。,我们从三个不同方面提纲挈领地介绍了Linux 2.6内核的一些特点,旨在展示新内核的设计理念和相对于2.4版内核的进步。一个设计优良的操作系统应该有一个精简一致的构造,在添加新功能时不必破坏原有的结构,并在后续发展中能够保持前后一致。Linux由于最初设计时的科学性,在后来的发展中没有在设计思想上做过大的变动。虽然Linux有很多版本,但是通过POSIX(可移植性操作系统接口)标准,这些不同版本的系统在源代码上都能保持高度的兼容。因此,无论是最新推出的Linux 2.6版本内核,还是仍在不断完善稳定的2.4版本内核,或者是将来功能更加强大的新内核,Linux都将会在兼容的基础上继续进步。,