Linux-2.4.0网络部分改变
网络和协议网络和网络硬件一直是Linux领先的主要领域之一。这些设备既不是"字符设备"也不是"块设备",而是不需要设备节点的特殊空间。Linux 2.4会包括非常多的对这一层的更新,新的驱动,BUG修补,加在现有驱动上的新功能。
网络套接字的Linux的模型是和UNIX标准相兼容的,但不幸的是,这一标准存在可修正的不足。Linux 2.2或者再早些的版本中,如果有很多进程都在等待网络插口的一个事件(例如,一个WEB服务器),它们会在事件探测到时全部被唤醒。所以,对于每一个WEB页的请求,Linux会唤醒大量试图接收请求的进程。而多个进程处理同一个请求是无意义的,只有一个应该得到数据;剩下的只有从回到睡眠状态。Linux按此方式在尽可能快处理这些事件时,仍然很有效率,但是如果能去掉多余的唤醒会得到更高的效率。Linux 2.4实现了"唤醒一个"的改进,在Linux下将会允许我们完全移除这一多进程的"惊跑效应"。总之,"唤醒一个"正如它的名字一样:只唤醒针对事件的那一个进程。这样可以使象Apache这样的应用程序更加有效率,使Linux更好的成为WEB服务器的选择。
Linux 2.4还包括完全重写过的网络层。实际上,它被作的尽可能不连续,使它可以比Linux的以前版本更好衡量。另外,整个子系统都被从新设计过,目标是能在多处理器上尽可能稳定的运行,还有很多可能的崩溃被消除了(这就是所谓的"软网"变化的一部分,它是最近才被整合的)。而且,它被优化了,可以和特定的网络协议槽配合,他们用于一些通用的操作系统里,包括Windows。在这里还有一点需要提一下,Linux仍然是唯一完全和IPv4定义一致的操作系统(是的,IPv4;我们一直在使用的)而且Linux 2.4有引以自豪的IPv4实现,它比它的前辈更容易升级。
作为这次主要重写的一部分,内核的防火墙和IP伪装功能已经被完全再次重写。(老用户也许记得这些部件同样的在Linux 2.2下大量的重写过。)新的子系统已经被分为了两个部分:一个包过滤层和一个网络地址翻译层(NAT)。这些新的子系统比起它们的前辈有相当好的普遍性,而且它现在可能在任何的Linux系统中实现各种复杂的路由(第三层)。以前,这些功能只有在复杂而且私有的路由硬件上才能实现。不幸的是,这个主要的重写仍然也包括另外的用户层的工具来达到可能的功能。为了兼容性,现有允许你使用Linux 2.0(ipfwadm)或者Linux 2.2(ipchains)工具的模块,而不会有大的功能损失。这就可以使从任何一个这种版本的内核相对无缝的升级。
Linux的网络堆栈中增加了ECN(显示阻塞通知)功能。瞬时来说,ECN可以让相应的路由器通知Linux某个路由堵塞,然后Linux对其作出响应,减少文件包传送的速度。长远来说,可以使Linux减少在堵塞路由上发送的文件包,从而减少信息包和中继站传送的时间和宽带。
对于企业级的用户,有很多特性使Linux更好的集成到现有网络架构的老式和新式组件中去。这方面的一个重要补充是Linux 2.4新特性,对DECNet和ARCNet协议和硬件的支持(部分)。这样允许更好的和专有系统交互,包括更老式的Digital/Compaq。考虑到某些用户的特殊兴趣,Linux 2.4 将对高速网络的ATM网络适配器提供支持。
对于低端的桌面系统用户,PPP是一个日常生活中的重要部分。Linux 2.4包括一些重要的重写和大量代码的模块化,包括等候已久的ISDN层的PPP层和串行设备PPP层的结合,例如用调制解调器拨号连接。除了模块化,ISDN已经能支持更多新卡了。PLIP层(使用并行口的PPP)也被改进了,使用新的并行口抽象层。最后,以太网的PPP(PPPoE,供一些DSL提供者使用)支持也被加入了内核。
尽管在Linux 2.4中还不支持NetBEUI协议,MS操作系统所使用的,但工作现在也开始了。虽然微软将把它移出产品而转向TCP/IP,这个协议对于很多基于Windows的网络环境来说仍然是重要的。(以前,内核开发者曾评论说在内核里支持协议是费事,容易产生臭虫的。既然一个实现已经露出了,剩下的是看是否它能足够的稳定,一直呆在正式的内核里。)
页:
[1]