1。我个人认为作者MAX对Linux的了解不像他对Solaris那样深入,我不知道也没法知道他的下列关于Linux的内容来自自己的代码阅读分析还是只是来自第三方的文档资料而未经自己实地验证;
2。我已经尽量符合原意地翻译了,当然中间实在忍不住的地方也插两句自己的话;
3。无论是只阅读这一篇文章,还是看其他东西,我都觉得,保持自己头脑清醒很重要
Max Bruning 是一名教师/资讯专家,他的教授内容包括Solaris内部组织,设备驱动,内核和应用的crash分析及调试,网络组织和其他一些特定科目(他的blog在blogspot,不费点劲可能访问不了,所以也可以看看www.bruningsystems.com)。
在解释这些子系统在Solaris中是如何实现的时候,他的学生们总会问“Linux里它是怎么工作的?”或者“FreeBSD里是这样,Solaris里呢?”这种经历最终让Max在OpenSolaris网站写了这篇A Comparison of Solaris, Linux, and FreeBSD Kernels。
文章里讨论了调度,内存管理和文件系统架构--这3个子系统在任何操作系统中都有普遍应用,而且他们是最well-understood 的组件。
目前很多分析或对比文章所引用的材料及代码都比较老,与现实脱节,Max推荐如下几个多少比较up to date的网站:
Solaris Vs. LinuxComparing MySQL Performance Fast Track to Solaris 10 Adoption Solaris 10 Heads for Linux Territory |
其实抛开3个系统之间的差别,他们也有很多相似之处。除了那些不同的命名习惯,这些OS在实现不同概念的时候采用了非常相似的方法。他们都支持线程的分时调度,支持最近未使用页面替换算法实现请求调页,支持虚拟文件系统层允许不同文件系统架构。这个系统里的一个好概念在另一个系统里也会采用。比如Linux也接受并实现了 Solaris slab 内存分配算法的概念。FreeBSD 代码里的很多术语在Solaris里也出现了(快去看看代码。。。)。考虑到这3个系统的源代码都能得到了, fxr.watson.org提供了系统源码的交叉阅读浏览,可能会发现很多有趣的地方。
好了,温情默默的套近乎结束,进入正题。
|