BSD系统的历史和目标(连载)

2009-05-13 06:53:05来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折


摘自《FreeBSD内核设计与实现》

BSD系统的历史和目标

1.1  UNIX系统的历史

#   30多年以来,UNIX操作系统得到了广泛应用,它帮助我们开拓出了计算机技术方面的许多领域,尽管从过去到现在,始终都有不计其数的个人和机构在为UNIX系统的发展做出贡献,但本书主要还是集中探讨BSD系统的发展历程:
=   > 贝尔实验室(Bell Laboratories)阶段,该实验室发明了UNIX;
=   > 加州大学伯克利分校(University of California at Berkeley,以下简称UC Berkeley)的计算机系统研究小组(Computer System Research Group,以下简称CSRG)阶段,CSRG赋予了UNIX系统虚拟内存机制和TCP/IP参考实现;
=   > FreeBSD项目组、NetBSD项目组和OpenBSD项目组阶段,这几个项目组继承了CSRG所开创的工作;
=   > 作为Apple公司OS X系统核心的Darwin操作系统阶段,这个操作系统是以FreeBSD为基础开发出来的。

1.1.1  UNIX系统的起源
#   UNIX系统的第一个版本诞生于1969年的贝尔实验室。这个版本的UNIX是作为Ken Thompson的个人研究项目,由他在一台闲置的PDP-7上开发出来的。不久以后,Dennis Ritchie也加入了进来,他不但为设计和实现系统做出了许多贡献,而且还发明了C语言。UNIX系统后来用C语言进行了重写,只留下很少一点汇编语言程序。UNIX系统与生俱来的精巧设计[Ritchie, 1978]加上随后15年里的不断完善和发展[Ritchie, 1984a; Compton, 1985],使之成为一种功能强大的重要操作系统[Ritchie, 1987]。
#    Ritchie、Thompson和贝尔实验室里其他早期的UNIX开发者们以前曾经在一个名为Multics的研究项目[Peirce, 1985; Organick, 1975]中一起开展过工作,这个项目对后来的操作系统发展起到了不可磨灭的作用。UNIX这个名字就是关于Multics的双关语;顾名思义,Multics系统试图做得多而全,而UNIX却只是设法做好一件事。UNIX文件系统的基本构成、采用一个用户进程作为命令行解释器的思想、文件系统接口的通用结构,以及许多别的系统特性都直接源于Multics。
#   UNIX还融入了许多其他操作系统的思想,比如MIT(Massachusetts Institute of Technology, 麻省理工学院)的CTSS系统。UNIX里创建进程的fork操作则源于伯克利的GENIE操作系统(SDSS-940, 后来的XDS-940)。UNIX让用户不用花费多大开销就能创建进程,于是每条命令就是一个进程,而不会要命令作为过程调用来执行,这和Multics里采取的方式一样。

1.1.2  Research小组的UNIX系统
#   UNIX的第一批重要版本是贝尔实验室Research小组开发的系统。这其中除了UNIX系统最早的那些版本之外,还包括1976年的UNIX分时系统第六版(UNIX Time-Sharing System, Sixth Edition),通常也叫做V6,它是在贝尔实验室之外被广泛使用的第一个版本。这些系统的版本是以系统发布时UNIX Programmer’s Manual的版本号来加以区分的。
#   UNIX系统和当时的其他操作系统在以下3个方面有着重要区别:
=   1.  UNIX采用高级语言(C语言)编写。
=   2.  UNIX以源代码的形式发布。
=   3.  UNIX系统有很强大的原语(primitive),它们往往只会在那些依托更为昂贵的硬件设备才能运行的操作系统中才看得到。
#   UNIX的源代码绝大多数是用C语言而不是用汇编语言写成的。在当时有一种占主导地位的思想,即操作系统一定要用汇编语言编写,这样才能保证它对硬件的有效访问及其执行效率。C语言本身是一种相当高级的语言,这可以让它易于在种类繁多的计算机硬件上进行编译。使用C语言,系统程序员不必求助汇编语言,就可以获得满足要求的效率或功能,这样就没那么复杂或者那么受限制。在访问硬件时需要用到系统中仅有的那么一点汇编语言,UNIX中只有3%的操作系统功能----比如上下文切换(context switching)----需要用到它们。虽然UNIX的成功不仅仅因为它是用一种高级语言写成的,但使用C语言的确为它的成功迈出第一步[Kernighan & Ritchie,1978; Kernighan & Ritchie,1989; Ritchie et al., 1978]。Ritchie的C语言是对Thompson所创造的B语言的延续和发展[Rosler, 1984],而B语言又起源于BCPL语言[Richards & Whitby-Strevens, 1980]。C语言自身也处在不断的发展演变之中[Tuthill, 198; ISO, 1999]。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇: HAVP + Squid 实现高效防毒网关

下一篇:BSD系统的历史和目标(连载二)