NetBSD 连载1
   NetBSD 5月29号发布了5.0,这是一个我认为非常重要的版本,在这个版本发布之前,实际上近几年NetBSD已经明显落后了,对新硬件的支持越来越差,版本更新也越来也慢,新特性的增加也越来越慢,几乎已经赶不上硬件的更新速度,这一版可以看做是对其他操作系统的追赶,比如Linux,Solaris,FreeBSD,这一版的主要改进在于:对SMP和多核的支持,这个得益于重写的基于1:1的线程模型的新的线程系统及新的线程调度算法及相关的同步啊,抢占啊,实时扩展啊什么的。说实话,以前的M:N的实现我是怎么看都看不懂,郁闷了很久,搞的都有自己改成1:1的冲动,无奈能力还不够,后来实在看不下去了,就没怎么关注NetBSD了,转了去看RTEMS去了,只是偶尔上他的官方网站上去看看新闻,看看changes list,看到4.0到5.0的changes中的thread模型的改变时,我就有点激动了,又开始关注了。除了性能的提升,5.0的主要改进还有:对FFS增加了日志的支持;在部分平台上用Xorg替代了Xfre86;新的 Power Manngement Framework,对笔记本的ACPI suspend/resume的支持,但是这两个在我的电脑上不好使,开了ACPI根本就起不来,郁闷;还有其他很多改进,具体请看NetBSD的官方的Release Note:http://www.netbsd.org/releases/formal-5/NetBSD-5.0.htm.
  计划后面根据5.0 Release Note里的内容一个一个分析NetBSD的各个子系统。
  这里先列一个表:
  1. 线程模型: M:N vs 1:1
  2. 同步机制:锁,信号量等
  3. 调度器
  4. 文件系统(vfs, ffs, WAPBL)这个WAPBL好像是个preview.
  5. Power Management Framework
  6. 设备管理(这个不是5.0的changes list里的,但我也想分析一下)
  7. 内存管理(内存管理水有点深,现在我还搞不定,有兴趣的可以看UVM的作者的主页:http://chuck.cranor.org/,UVM是Cruck Cranor的博士论文)
  8. 其他:再说吧

以上大部分都只是做一个简单介绍,可以看作是一个源代码浏览,并不深入分析代码。
12-16 13:57