⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linux 2.6 内核的精彩世界.doc

📁 Linux 2.6 内核的精彩世界
💻 DOC
📖 第 1 页 / 共 5 页
字号:
    对于桌面用户而言,Linux 2.6 中最为期望的新特性之一是以 ALSA(Advanced Linux Sound Architecture)取代过时的声音系统。旧式的声音系统
    OSS(Open Sound System)很早的时候起便为 Linux 提供音频支持,但是它有许多体系结构上的缺陷。新系统首要的改进在于它从设计之初开始便是完全线程安全的,且能很好的工作于
    SMP 系统。这修正了过去的许多驱动程序在"桌面即意味着单 CPU "这一教条的例外情况下不能正常工作的问题。更为重要的是,此驱动程序从一开始便采用模块化设计(Linux
    旧版本的用户应该还记得,在 Linux 2.2 时代,模块被解构以适应声音系统),这使得系统能更好地支持多块声卡,包括不同类型的声卡。无论系统内部是多么完美,如果没有一些令人惊讶的新特性,系统对于用户来说仍没有任何改进。事实上,新的声音系统有许多这样的新特性。其中最为重要的是提供了对许多新硬件(包括
    USB 音频及 MID I设备)的支持,支持全杜比录音及回放、无缝混音、支持声音合成设备等等。无论你是一个音响发烧友或只是喜欢播放 MP3 的人,Linux
    提升的声音支持都将是大受欢迎的一个进步。 <br>
    <br>
    多媒体 <br>
    <br>
    现今单纯的音频支持似乎远远不够,用户想要的是对真正新奇的硬件的支持,比如网络摄像机,广播及电视适配器,数字视频录制器等。Linux 在 2.6 版本中对以上三者的支持都有所提升。
    <br>
    <br>
    Linux 对广播卡的支持(通常是通过用户空间实现历经了好几个开发周期,而对电视调谐器和视频摄像机的支持只是在最近的 1、2 个主要版本中才有。此系统通常称为
    V4L(Vedio4 Linux 译者注: &quot;4&quot; for &quot;for&quot;),在新版本的内核开发中得到了重大更新,包括
    API 的清理工作以及对设备更多功能的支持。新的API与旧版本不兼容,支持它的应用程序需要随内核的升级而升级。 <br>
    <br>
    作为一个全新的领域,Linux 2.6 首次包含对 DVB(Digital Video Broadcasting,数字视频广播)硬件的支持。这种硬件常见于机顶盒,它可以使得
    Linux 服务器通过适当的软件变为一台 tivo(类似机顶盒的设备)。 <br>
    <br>
    软件方面的改进 <br>
    Linux 的改进并不只关注于硬件及其它基础设施。没有支撑软件(如文件系统及网络协议),硬件支持将毫无意义(just so much a dead
    wood)。 <br>
    <br>
    网络 <br>
    <br>
    先进的网络支持一直是 Linux 的主要财富之一。Linux 作为一种操作系统,已经可以支持世界上大多数主流网络协议,包括 TCP/IP(v4 和
    v6)、AppleTalk、IPX等。(就 &quot;等&quot; 而言,唯一较为普遍的是微软老的、复杂的 NETBIOS/NetBEUI 协议。)
    <br>
    <br>
    像许多其它子系统一样,网络硬件针对 Linux 2.6 的改变是在幕后进行的,显得并不那么直接。这包括旨在利用 Linux 的设备模型底层的改进和许多设备驱动程序的升级。例如,Linux
    2.6 提供一个独立的MII(媒体独立接口,或是 IEEE 802.3u)子系统,它被许多网络设备驱动程序使用。新的子系统替换了原先系统中各自运行的多个实例,消除了原先系统中多个驱动程序使用重复代码、采用类似的方法处理设备的MII支持的情况。其他改变还包括对ISDN的改进等。
    <br>
    <br>
    在软件方面, Linux 的一个重要改进是提供了对IPsec协议的支持。IPsec,或者称之为安全IP,是在网络协议层为IPv4和IPv6提供加密支持的一组协议。由于安全是在协议层提供的,对应用层是透明的。它与SSL协议及其他tunneling/security协议很相似,但是位于一个低地多的层面。当前内核支持的加密算法包括SHA(&quot;安全散列算法&quot;)、DES(&quot;数据加密标准&quot;)等。
    <br>
    <br>
    在协议方面,Linux 还加强了对多播网络的支持。网络多播使得由一点发出的数据包可以被多台计算机接收(传统的点对点网络每次只能有两方通信)。这一功能主要被即时通讯系统(如
    Tibco)以及音频/视频会议软件使用。Linux 2.6 现在支持若干新的 SSM 协议(定源多播),包括 MLDv2(multicast
    listner discovery 多播侦听发现)协议以及 IGMPv3(Internet 组管理协议)协议。这些都是标准协议,被多数高端网络硬件提供商所支持,如思科。
    <br>
    <br>
    Linux 2.6 也提供了一个分离的 LLC 栈。LLC,即逻辑链路控制协议(IEEE 802.2),是一个底层协议,在若干个常用的高层网络协议之下使用,如
    Microsoft 的 NetBeui,IPX,以及 AppleTalk。作为修改的一部分,IPX,AppleTalk,以及令牌环驱动程序都已被重写,以利用这个新的公用子系统。此外,一个外部源(an
    outside source)整合了可以工作的 NetBEUI 协议栈,它是否要被加到的标准内核中还有待研究。 <br>
    <br>
    除了以上这些,还有其他一些小的改变。IPv6 做了一些主要的改进,使其可以运行在令牌环网络中。Linux 的 NAT/Masquerading 支持也得到了扩展,从更好地处理需要多个连接的协议(H.323,PPTP等)。在
    Linux 的路由器前端,对配置 VLAN 的支持也已经成熟,不再是 &quot;试验性的&quot; 了。 <br>
    <br>
    网络文件系统 <br>
    <br>
    Linux 对网络文件系统的支持构建在 Linux 健壮的网络协议支持之上,它也同样健壮。安装或者输出(export)一个网络文件系统,是需要内核直接参与的为数不多的几个上层网络相关操作之一。(另外比较明显的还有对于网络块设备的支持,在2.6中没有特别大的改变,并且也只是在类似文件系统操作的特定应用中使用。)所有其他的网络相关操作都可以被放到用户空间去,而不需要核心开发人员去考虑。
    <br>
    <br>
    在 Linux 和类 UNIX 世界中,最普遍的网络文件系统是一个名为 Network File System 的文件系统,简称 NFS。 <br>
    <br>
    NFS 是一个复杂的文件共享协议,跟 UNIX 特别是 Sun Solaris 有相当深厚的渊源。可以使用 TC P或 UDP 作为 NFS 的主要传输协议,但也需要其他一些子协议,这些协议又各自运行在
    RPC(远程过程调用)协议之上。这其中包括独立的用于认证的 mount 协议以及用于文件锁的 NLM(network lock manager)。(通常的实现版本同时也跟其他一些基于
    RPC 的协议紧密地结合在一起,比如用于身份验证的 NIS -网络信息服务--用于认证。NIS 在 Linux 机器上没有得到广泛应用,主要因为它缺乏安全性。)可能正是因为
    NFS 协议如此的复杂性,才没有被作为 &quot;Internet 协议&quot; 广泛接受。 <br>
    <br>
    Linux 2.6中,NFS 文件系统得到了很大的更新和改进。最大的改进就是实验性地支持新的并且还没有被广泛接受的 NFSv4 协议(以前的
    Linux 版本支持 NFS2 和 NFS3 两种协议)在客户端和服务器端的实现。新的版本有更强、更安全的身份认证(采用加密技术),支持更智能化的锁管理,支持伪文件系统等。Linux
    还没有实现所有 NFS4 的新特征,但是目前的版本已经比较稳定并且能够支持一些产品级的应用。并且,基于 Linux 的 NFS 服务端的实现已得到改进,从而具有了更好的扩展性,更好的完整性(支持
    UDP 还支持 TCP),更健壮(文件系统在输出文件的时候能够进行调整以维持它们自有的一些特征),更简便的管理(通过新的 nfsd 文件系统,而不再是系统调用)。还有其他方面的一些改进,比如分离
    lockd 和 nfsd,支持零拷贝传输等。NFS 客户端也因为底层 RPC 协议在缓存机制、UDP 连接控制以及其他在 TCP 协议上的改进而受益。Linux
    支持 NFS 共享卷作为根文件系统的功能也因为核心对 TCP 协议上的 NFS 的改进而改进。 <br>
    <br>
    除了改进对 UNIX 风格的网络文件系统的支持,Linux 2.6 对于 Windows 类型的网络文件系统的支持也进行了改进。Windows 服务器(也包括
    OS/2 和其他一些操作系统)的标准共享文件系统是遵循 SMB(server message block)协议的,Linux 核心在 SMB 协议的客户端对该协议的很多版本都已经有了非常优秀的支持。然而,Windows2000
    将 SMB 协议的一个超集的升级版标准化了,即熟知的 CIFS(&quot;common internet filesystem&quot;)。CIFS
    修改的主要目的是简化与精炼 SMB 协议中一些比较混乱的部分。(注:协议之前的定义很松散,甚至会出现 Win95/98/ME 版与
    WinNT/Win2k 版不兼容的情况。)CIFS 达到了修改的目的,并且增加了 UNICODE 支持,改善了文件锁,支持硬链接,彻底消除了对
    NetBIOS 的依赖,并给 Windows 用户增加了一些新的特征。既然 Linux 用户不打算始终呆在被遗忘的角落(译者注:CIFS是Windows系统提出的标准,之前仅在Windows系统之上有实现),
    Linux 2.6核心对本地安装 CIFS 文件系统的部分彻底进行了重写。Linux 2.6 现在也支持 SMB 和 CIFS 的扩展 -- SMB
    - UNIX,该扩展使得 Linux 可以访问 SMB 服务器(比如 Samba)上的可能存在的非 Windows 的文件类型(比如设备节点和符号链接)。
    <br>
    <br>
    尽管现在已经不常见到,但是 Linux 还是没有完全忘记 Novell NetWare 用户。 Linux 2.6 最多允许 256 个 Linux 客户端安装同一个使用
    NCP(NetWare Core Protocol)文件系统驱动的 NetWare 卷。 <br>
    <br>
    Linux 2.6 也加入了相对新的一些分布式网络文件系统(即在一个逻辑卷上的文件可以分布在多个节点中)的支持。除了 Linux 2.4 中引入的
    CODA 文件系统,Linux 现在也包含对另两个分布式文件系统:AFS 和 InterMezzo 的支持。AFS,即 the Andrew
    filesystem(如此命名是因为它最初是 CMU 开发的),特性非常有限,目前只支持读操作。另一个新支持的文件系统 InterMezzo(也是
    CMU 开发的)也在 Linux 2.6 中得到支持;它具有一些更为先进的特性,如:无连接操作(工作在客户端的缓存中),适合要求高可用性的应用,在那些应用环境中,需要保证存储区永远可用。同时它也支持保持数据在多个计算机之间(比如笔记本电脑、PDA
    和桌面电脑)同步的应用。很多对这些新的文件系统提供支持的项目都是在 Linux 平台上实现的,这也使得 Linux 能够走在对这些新特性支持的最前面。
    <br>
    <br>
    其他特性 <br>
    <br>
    安全性 <br>
    <br>
    Linux 2.6 的另一个没有引起足够注意的大的变化是跟安全相关的变化。甚至本质上,整个基于核心的安全体系(在类 UNIX 操作系统中的超级用户权限)已经被划分成一些可以被替换的安全模块。(不过目前提供的安全模式只有缺省的一个,权当一个向我们展示如何自定义安全模块的例子。)作为这个变化的一部分,核心所有的部分都被更新以具有更细粒度的用户访问控制,而不是象以前的&quot;超级用户&quot;系统。虽然几乎所有的
    Linux 系统中将仍然存在一个具有完全访问权限的root用户,但上述的改变使得类 Linux 系统可以不再必须如此。另一个安全相关的变化是一些二进制模块(比如硬件厂商提供的驱动程序)不能再重载系统调用,也不能看到以及修改系统调用表。这极大地限制了非开放源码的模块在核心中的访问,同时也修补了GPL版权协议在这方面的一些可能存在的漏洞。最后一个跟安全相关的变化就是新的核心能够使用硬件随机数生成器(一些新的处理器中提供),而不是依靠随机的硬件熵值变化。
    <br>
    <br>
    虚拟 Linux <br>
    <br>
    Linux 2.6 一个很有趣的特点是自包含了一个 &quot;用户态(user-mode)&quot; 的体系结构。它本质上是一种移植--将
    Linux 移植到它自身(正如移植到不同的硬件体系那样),从而允许一个完全虚拟的 Linux-on-Linux 运行环境。新的 Linux 实例像普通应用程序一样运行。在这个新的
    Linux 内部,你可以配置伪网络、文件系统或者其他一些设备,整个过程通过专用的驱动程序与宿主 Linux 进行安全交互。这被证明不仅是在开发方面(进行分析、统计等),而且在安全分析和密罐(honeypots)技术中都是非常有用的。当然大多数用户还不需要这样的支持,它只是被当作了一个可以运行在你的机器上的很酷的特性而已。(给你的朋友留下深刻的印象!)
    <br>
    <br>
    笔记本电脑 <br>
    <br>
    除了上面提到的一些通用的支持(比如 APM 和 ACPI 的改进,以及对无线支持的改进等),Linux 还有两个很难分类的与笔记本电脑用户相关的特征。第一个是新核心支持的软停机磁盘存储(sofware-suspend-to-disk
    译者注:保存内存镜像到磁盘,之后停机--类似 halt,再次开机时内核从磁盘获取保存的内存镜像并恢复运行;软停机功能不需要 APM、ACPI 等硬件支持)。
    <br>
    <br>
    另一个是对现代移动处理器的可根据用户是否在使用机器从而作出 cpu 运行速度(以及相应的电源需求)自动调节的支持。 <br>
    <br>
    向后兼容 <br>
    <br>
    尽管 Linux 2.6 是大的内核升级,但是对用户层应用的影响几乎是不存在的。主要的例外是线程,一些能够在 2.4 或 2.2 上运行的多线程程序将不能在
    2.6 上运行。 <br>
    <br>
    当然,一些底层的应用如模块工具将肯定不能工作。另外,/proc 目录和 /dev 目录下的一些文件和格式也发生了变化,如果上层应用对此有依赖,也可能不能继续工作。(当更多的内容被移动到
    /sys 虚拟文件系统中的时候,情况尤其如此。在 /dev 目录中,向后兼容的设备名很容易就能推出来。) <br>
    <br>
    除了提到的这些明显的变化,还有很多小的变化可能会对一些应

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -