- 论坛徽章:
- 2
|
回复 70# gvim
吓我一跳,我还以为被IBM吹得神乎其技的Watson系统被用作代码浏览器了(还有小广告)... ...
任何正式的库想做这些事都不会差,我不知道实现一些通用数据结构有什么好吹虚的。另外,一些C语言里的技巧,比如container_of,我在八十年代的BSD代码里就见过,但它未必是BSD的原创。这些上古的技巧很难追溯源头,先出现在BSD是因为BSD先出现。
初始化与总线抽象更不谈是BSD设计出来,这些scheme可能远在C语言诞生之前就产生了。模块化的初始化就是data-direct编程模型,七十年代出版的SICP里就介绍了。Linux里也有类似阶段,但并未应用在整个初始化过程中。另外:
* This allows simple addition of new kernel subsystems that require
* boot time initialization. It also allows substitution of subsystem
* (for instance, a scheduler, kernel profiler, or VM system) by object
* module. Finally, it allows for optional "kernel threads".
Linux是不希望核心子系统被替换的。就这样BSD也能挤出一点设计上的优越感?BSD的优越在于社区的小而精,学术派的严谨,网络方面的积淀,以及对整个生态系统的支持。就这也能让某些BSD爱好者看Linux像看乡巴佬一样。
我在某本书里,可能是APUE,看过这样一段话,这段话应该写于90年代初,大意是,在已经有几种免费BSD的情况下,Linux还能存在发展,真不容易。现在或许要反过来说了吧,在已经有Linux的情况下,几种免费的BSD还能存在发展,真不容易。
最后,OS开发者们瞧不起的应用层不知道有多少优秀的设计思想。从OO或者函数式编程中吸取营养比在OS里折腾不知道健康多少倍,想从OS代码里学设计还是洗洗睡吧。 |
|