Posted on 2011-09-19 20:56
幻海蓝梦 阅读(334)
评论(0) 编辑 收藏 所属分类:
Linux
2003年岁末,Linux社区最鼓舞人心的消息莫过于期盼已久的2.6.0内核正式推出。 新内核是振奋人心的,无论对于企业用户、个人爱好者还是开发者。新内核的功能比以往任何一个版本都更加强大,它支持更多类型的处理器,提高了可靠性和可扩 展性,势必推动Linux更广泛地应用。 对于高端服务器,新特性改进了性能、可扩展性、吞吐率,以及对多处理机服务器的支持。对于嵌入式领域,新内核合并了uCLinux,添加了新的体系结构和 处理器类型,包括对无MMU系统的支持。对于桌面用户,新内核则添加了一整套新的音频和多媒体驱动程序。Linux强劲的发展势头再次向人们展现了其独特 的魅力。
Linux 2.6内核新特性 支持更多处理器,比如AMD64、一些大型机及嵌入式等,同时改进了对已有处理器的支持。 采用抢占式内核,使交互式操作的响应速度大大提高。 修改了I/O子系统部分,保证在各种工作负荷下I/O都有很好的响应速度。 更新了IDE/ATA、SCSI等存储总线,解决和改善了以前的一些问题,比如2.6版内核可以直接通过IDE驱动程序来支持IDE CD/RW设备,而不必像以前一样要使用一个特别的SCSI模拟驱动程序。 大量改进文件系统,比如支持Windows的逻辑卷管理器、重写对NTFS文件系统的支持、改进HPFS等。 改进和部分重写了Modules功能,使之更稳定。 改进对USB的支持,使之能够支持当前多数主流的USB设备。 加强对无线设备的支持。 增加了ALSA(Advanced Linux Sound Architecture)。ALSA是有希望取代旧式OSS(Open Sound System)的另一种声音系统,能支持全杜比录音及回放、无缝混音、支持声音合成设备、USB声卡等。 支持更多种类和型号的多媒体设备。 网络功能新增了对IPSec协议的支持,改进了对IPv6的支持。 新增“Enable different security models”。 编译系统的改进。 ...... 实际上2.6版内核的很多新特性都是针对企业应用的改进,比如最大支持64个CPU、64GB内存、支持NUMA(非一致存储访问)等。对于普通PC用 户,从2.6版内核中感受到的将是USB支持、响应速度、音频、无线设备、PDA等方面的提高。
Windows VS Linux内核 从应用角度看,Linux内核的主要任务是I/O设备管理、TCP/IP及任务调度等。Linux内核表现出高度的可配置性和独立性,可以移植到多种平台 上。Linux内核的可配置、可移植性使得Linux在许多领域中被广泛使用。Linux的标准内核发布版本体积大概在40~50MB左右,而现在,一些 在评估板上试验用的嵌入式Linux系统(使用ARM或M68K系列嵌入式处理器)只用到2MB大小的内核,同样能够实现网络功能和完整的任务调度。这使 得Linux可以适用于从高端服务器到嵌入式应用的各等级平台。 与之相比,Windows并没有明确的内核概念,它更适合于台式机。Window NT从未真正地打入高端服务器领域,嵌入式领域的WinCE系统也同样遇到了一些结构性困难。 从性能角度比较,衡量一个内核优劣的重要指标是多任务环境下的安全性和任务调度效率。Linux在这方面继承了Unix的优点。在多任务效率的比较 上,Linux内核中的消息机制和通信模式使其在速度和性能上都更具优势。 而Windows 9x系列(包括Windows Me)并没有实现安全的多任务环境,Windows 2000/NT虽在安全性上下了功夫,但结果仍然存在诸多的安全隐患和漏洞。
Linux 2.6内核VS Linux 2.4内核 新内核较之以往内核在很多方面都有突破性地改进,前面已有列举。这里再简单对几个较突出的方面进行比较,使读者对新内核的新特性能有一个更清晰的了解。
1.服务器领域 在大型服务器领域,Unix一直独占鳌头。最新发布的Linux 2.6版内核增加了对安全性的改进和支持,从而使Linux具备了与Unix在这一领域抗衡的基础。 Linux的稳定性和安全性一直都是商家青睐它的主要原因,大型服务器更是Linux在商业领域发展的顶梁柱。2.6版内核对更多新硬件类型的支持中也包 含了对大型服务器更多的支持。这些服务器既有运行i386处理器的,也有运行其它处理器的。这些特性是新近加入Linux的,还有许多优化工作需要完成。 但这是Linux发展相当迅速的一个领域,预计在不久的将来,Linux将成为服务器领域更有力的竞争者。 在Linux 2.6内核中,整个基于核心的安全体系,即类Unix操作系统中的超级用户权限,已经被划分成一些可以被替换的安全模块。不过,目前提供的安全模块只有一 个缺省的,仅仅当作一个向我们展示如何自定义安全模块的例子。作为这个变化的一部分,核心的所有部分都被更新,以具有更细粒度的用户访问控制,而不是像以 前那样的“超级用户”系统。虽然几乎所有的Linux系统将仍然存在具有完全访问权限的root用户,但上述改变使得类Linux系统可以不再必须如此。 另一个与安全相关的变化是一些二进制模块不能再重载系统调用,也不能看到及修改系统调用表。这极大地限制了非开放源码模块在核心中的访问,同时也修补了 GPL版权协议在这方面可能存在的漏洞。
2.文件系统
(1)本地文件系统
相对于Linux 2.4而言,2.6版内核对于文件系统的支持在很多方面都有大的改进。 日志文件系统的最大优点是它的容错能力。一个设计精良的日志文件系统在损坏恢复方面,比传统的日志文件实现起来更容易、时间更短、返回服务功能更快。 2.6版内核增加了对日志文件系统功能的支持,解决了2.4版在这方面的不足。 2.6版内核在文件系统上的关键变化还包括对扩展属性及POSIX标准访问控制的支持。ext2/ext3作为大多数Linux系统缺省安装的文件系统, 在2.6版内核中是改进最大的一个。最主要的变化是对扩展属性的支持,即给指定的文件在文件系统中嵌入一些元数据。很多其它操作系统,如Windows已 经大量地使用了这种扩展属性。但Unix系的操作系统一般都还不能很好地支持扩展属性,很多用户级程序需要进行更新才能保存和转储这些扩展属性信息。
(2)网络文件系统
Linux下块设备最常见的用法是在块设备上建立一个文件系统。但并不是所有文件系统都作为块设备被加载,像进程、共享内存和设备文件系统等完全都是虚拟 的。还有其它一些文件系统是通过网络加载的,其完成的方法多样,许多操作系统都提供自己的方法来处理。Linux可以识别当前的大部分网络文件系统 (NFS)。 Linux 2.4内核在显著提高NFS加载目录稳定性的同时,还提供对NFS协议最新版本——NFSv3的支持。NFSv3能更好地支持文件系统同步、文件锁定等功 能。 Linux 2.6内核中,网络文件系统同样得到了更新和改进。最大的改进就是实验性地支持NFSv4协议在客户端和服务器端的实现。新版本有更强、更安全的身份认证 (采用加密技术),支持更智能化的锁管理、伪文件系统等。Linux 2.6还没有实现所有NFS4的新特征,但目前的版本已经比较稳定,并能够支持一些产品级的应用。同时,改进了基于Linux的NFS服务端的实现,从而 具有更好的扩展性、完整性、健壮性。通过新的NFSd文件系统能够更加便捷地管理,而不再需要通过系统调用来管理。 除了改进对网络文件系统的支持,Linux 2.6在对Windows类型的网络文件系统支持方面也进行了改进。Linux新内核能够在SMB协议的客户端对该协议的很多版本提供不错地支持。同 时,2.6新内核无需在内核编译阶段手动选择从Windows 9x或Windows NT/2000加载的选项,而能够自动检测远端操作系统的类型,并能够进行必要地排错。 Linux 2.6还加入了相对新的一些分布式网络文件系统,支持一个逻辑卷上的文件分布在多个节点中。
3.嵌入式系统
嵌入式系统是一种以应用为中心,计算机技术为基础,软件/硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统。 嵌入式领域是Linux应用的广阔天地。uCLinux是Linux应用在微控制器平台的一个项目,是一种针对不带MMU的ARM微处理器的嵌入式操作系 统。uCLinux完全符合GNU/GPL公约,完全开放代码,它的很多特性都和Linux相同,最典型的特征是无MMU(内存管理单元)。 Linux 2.6内核扩展多嵌入式平台支持的一个主要途径就是把uCLinux的大部分并入主流内核功能中。目前许多嵌入式处理器如ARM系列等,很多都是无MMU 的。uCLinux在嵌入式系统中的应用非常广泛。因此,Linux 2.6对无MMU体系结构的支持,及将Linux和uCLinux合并到统一的新内核中,无疑为Linux在嵌入式领域的广泛应用加重了砝码。
总结 我们从三个不同方面提纲挈领地介绍了Linux 2.6内核的一些特点,旨在为读者展示新内核的设计理念和相对于2.4版内核的进步。一个设计优良的操作系统应该有一个精简一致的构造,在添加新功能时不 必破坏原有的结构,并在后续发展中能够保持前后一致。Linux由于最初设计时的科学性,在后来的发展中没有在设计思想上做过大的变动。虽然Linux有 很多版本,但是通过POSIX标准,这些不同版本的系统在源代码上都能保持高度的兼容。因此,无论是最新推出的Linux 2.6版本内核,还是仍在不断完善稳定的2.4版本内核,或者是将来功能更加强大的新内核,Linux都将会在兼容的基础上继续进步。
原文:
http://www.ibm.com/developerworks/cn/linux/theme/kernel/index.html
http://mcuos.com/viewthread.php?action=printable&tid=4530