对Linux来说,法律威胁也许是备受媒体关注的风险,不过这个流行的开源内核项目同时遇到了技术上的重大不足。
Andrew Morton是一名内核开发人员,负责维护名为“-mm tree”的测试内核项目,他以筛选及测试向该项目提交的新内核而广为人知。今年5月他在谷歌的《内核状态》演讲上指出了Linux有问题的三大方面: 文件系统、电源管理及系统性能检测工具。文件系统是内核开发方面需要最繁重的计算机科学工作的部分之一,这种软件决定了如何把数据放到磁盘或者其他的非易失性存储设备上,并进行检索,而Linux的文件系统跟不上大容量存储用户的需求。
项目创始人Linus Torvalds在一封电子邮件中表示,他认为Linux文件系统和电源管理需要改进。他说,后者是设备驱动程序存在的一个较重大问题引起的一方面。这个较重大问题就是驱动程序基本上能正常使用,但没有实现高级特性。不过Torvalds认为,Linux已经配有的简单检测工具足以处理实际性能问题。
文件系统
文件系统开发人员Val Henson指出: 到2013年,磁盘容量可能会增加16倍; 可是带宽只增加5倍,而寻道时间只会加快1.2倍。这意味着,文件系统检查实用程序fsck需要越来越长的时间才能运行完毕。Henson撰文道: “如今使用fsck对数TB的文件系统进行检查很可能需要两天,而将来需要更长的时间。其次,越来越多的I/O错误意味着,fsck的使用频率会高得多。”
Torvalds指出,标准Linux文件系统ext3在普通大小的磁盘上也浪费了一些时间。Torvalds 说: “ext3无所不在,但实际上在像fsync这些‘简单’的操作方面不是做得很好。在执行fsync操作时,ext3最后基本上会刷新整个日志,即使我们只是想对某个文件进行同步。”
只有把与某个文件有关的数据写入到磁盘时,才需要“fsync”系统调用。另一个“sync”系统调用负责刷新所有缓存数据并同步到磁盘上。在忙碌的服务器上,刷新额外的日志数据会导致试图仅仅对一个文件进行fsync操作的应用程序速度减慢。
Sun的ZFS是个热门的新文件系统,它把Linux上RAID、逻辑卷管理和文件系统等几个不同的层合并到单一子系统。不过,ZFS虽然采用了同样是开源的CDDL许可证,但与GPL不兼容,所以不能直接作为Linux的一部分使用。
开发人员Ricardo Correia已想出了一个办法避免许可证问题,这个办法采用FUSE技术在用户空间运行Sun自己的ZFS代码。虽然该项目的速度远不如传统的内核文件系统,但Correia声称,“基于FUSE的文件系统其性能与内核文件系统不相上下,因为瓶颈通常是在磁盘,而不是CPU。”把系统的重要角色交给拥有特别权限的用户空间程序,这方面已有先例,Linux上使用的 X Window System一直作为用户空间程序来运行。甚至有开发人员开发出了试验性的Linux发行版,把使用FUSE的ZFS集成到了安装程序中,不过这种方法似乎还没有经过严格测试。
虽然目前的文件系统围绕磁盘而设计,但Torvalds认为,将来这种思路可能需要改变。他说: “闪存存储设备有着完全不同的性能,这意味着如果你一开始其实需要的是闪盘,那样我们为传统磁盘所做的工作可能没有太大的实际意义。”
声明:LUPA开源社区刊登此文只为传递信息,并不表示赞同或者反对。





查看全部评论(1) 最新评论