Chinaunix首页 | 论坛 | 博客
  • 博客访问: 96108
  • 博文数量: 15
  • 博客积分: 638
  • 博客等级: 中士
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-04 02:12
文章分类

全部博文(15)

文章存档

2011年(10)

2009年(5)

分类: LINUX

2011-03-20 23:10:22


    由于现代的Unix内核们都拥有共同的祖先和相同的API,他们共用了很多的设计特点。无一例外的是,Unix kernel都是作为单个静态二进制文件的面貌出现,也即是说内核是一个单一,巨大的,可执行的文件并运行在单一的地址空间。通常来说Unix系统需要一个可分页的内存管理单元(MMU),MMU设备给系统提供内存保护并给每个进程提供单独的虚拟地址空间。MMU曾经是Linux的一个必选项,但是现在已经有了专门的Linux版本可以在没有MMU的情况下运行。这个特性可以让Linux在没有MMU的嵌入式系统上运行,但是这个特性的学术价值大于实际价值,因为现在的趋势是就算是简单的嵌入式系统也都有了MMU。在本书中,我们主要讨论有MMU的系统。

    在Linus和其他内核开发者开发内核的时候,他们认为在完善Linux的同时不能忘记其根源--Unix,尤其是Unix API[这是一个很好的策略,它使得大量的Unix用户能够很快的熟悉Linux系统,避免了Linux成为一个小众的独乐乐的系统]。由于Linux并不基于任何Unix变种,Linux和他的同伴们面对问题时可以选择其中最好的方案,有时甚至创造新的解决办法。所以我们可以看到Linux内核和经典Unix系统有许多的不同之处:

    A: Linux支持动态加载内核模块。尽管Linux内核属于整体内核(单内核),它可以根据需要加载或者卸
       载内核代码。

    B: Linux支持对称多处理器(SMP)。尽管现在大多数Unix的商业变种都支持SMP,但是大部分的传统Unix
       系统并不支持这个。

    C: Linux内核是抢占式的。不同于传统的Unix系统,Linux内核可以抢占运行于内核的任务。在商业  
       Unix系统中,Solaris和IRIX支持内核抢占,但是大多数Unix内核不支持内核抢占。

    D: Linux并不区分线程和进程,对于Linux内核来说,所有进程都是一样的,只不过其中某些进程之间
       可以共享资源(threads do share).

    E: Linux抛弃了一些Unix中设计不良的特性,如STREAMS,以及一些其他不能清晰实现的标准。

    F: Linux使用设备类(device classes),热插拔事件(hot-pluggable event)和用户空间的设备文件系统
       (sysfs)来实现了面向对象的设备模型。
    G: Linux免费又自由。Linux的特性来自于其自由开放的开发模型。如果某个想法没有值得称道的地方
       或者是思虑不周,内核开发者根本就不会屌它。相反,只有优秀的或者说最佳的修改才能被考虑添
       加入内核,只有那些真正是为了解决某个实际问题,并且有着清晰的设计和强壮的实现的代码才能
       在内核中有一席之地。因此,某些Unix系统中为了市场目的而产生的需求,比如说可页交换的内核
       内存这种想法,在Linux这里不会得到考虑。

    当然,除开这些区别,Linux仍然是一个Unix色彩浓厚的操作系统。

--------------------------------------------------------------------------------------------
  本文翻译自Robert Love的<>。 
  欢迎批评,欢迎转载并注明出处[fff.blog.chinaunix.net],谢绝跨省。
--------------------------------------------------------------------------------------------
阅读(2343) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~