- 论坛徽章:
- 2
|
从使用NetBSD以来我就一直在想NetBSD缺少什么。今天看了C M. H 的话才醒悟,原来我一直觉得NetBSD欠缺的应该是方向或者说定位。
从处理器角度看市场分为server,desktop,embedded,相应的OS也可以从这三方面观察。当然除去一些用作教学的OS如minix(1,2)。
server上的 高性能计算(HPC), 高可用(HA), 均衡负载(load balance), SMP等现代信息化企业使用比较多的特性,NB的支持甚是有限。HPC,和HA我现阶段不是很熟悉,单从Load Balance来说,Linux和FreeBSD分别采用的O(1)和ULE调度器,都支持一定程度上的负载均衡,甚至2005年时的O(1)调度器在NUMA上的性能/功能比ULE要好一些(由SGI的工程师试验)。SMP支持我没有试验环境,也不敢说NB的SMP不好用,不过从表面来判断,FB采用细锁来保证SMP的实现,而在NB上我没有注意到类似代码。
Embedded,大致分为几个子市场,一个是监控/实时,一个是消费电子,还有路由,交换机等市场。现阶段官方NetBSD的支持也不能不说是遗憾。首先real-time没有,其次mmu-less没有,这就严重限制了NB的使用范围。因为现在很多embedded设备仍然在使用mmu-less的8-bit的C51(当然,其上可能也不需要OS) 或者由于成本因素而采用的mmu-less arm7 processor(比如我没记错的话ipod应该是用的ARM9+ARM7双core结构)。而embedded OS的一个很大的区别于generic OS 的特性就是他的实时性,这点可以从vxworks/QNX等产品的成功便可看出来。项目列表上这两个方向已经贴出来很久了,可惜没有有能力的志愿者去完成。还有Flash file system,这些的缺乏,如果是像Linux这样的GPL kernel的话到可以直接拿现成的来用,不过BSDL和GPL不兼容。
desktop可以不用说了,*NIX变体中,除了apple,其他的都没有把desktop作为目标。
FreeBSD、OpenBSD和DrangonFlyBSD的定位都是服务器,一个面向高可用、高性能(高质量带来的稳定和现阶段对性能的(S)MP改造),一个面向安全(安全),一个面向高性能(通过对cache,I/O,Thread的一系列革新设计)。而以过去在嵌入式上闻名的NetBSD,到现在都还不支持real-time, flash fs, mmu-less等嵌入式支持,不能不说是遗憾。就连教学系统Minix3在其主页上也明确表示它的微内核设计应用方向是嵌入式。
大量使用NetBSD的路由器,交换机等公司,毕竟不能代表社区。Wasibi公司说可以订制NetBSD,不过,呵,要收钱的。(不过,该公司是NetBSD社区的一个很大的贡献者,NetBSD许多代码出自Wasibi)
where is the direction of NetBSD?
结合CMH的话想想看,我总结出上面的对NetBSD现阶段的看法。
我觉得NetBSD应该学习FreeBSD,在SMP上入手。SMP可以作为基础,在此基础上完成其他的功能性支持比较容易。比如Load Balance, HPC, Real-time。对称多处理的线程做好了,至少上面三个方向比较容易实现。FreeBSD用了FreeBSD 5.X一个系列来改造thread模型,现在收获了1) 良好的线程, 2) soft-realtime 3) 一定程度的负载均衡
[ 本帖最后由 gvim 于 2006-8-31 15:19 编辑 ] |
|