LKD 3rd 读书笔记——第1章/History of Unix

本章把Linux放在Unix的历史背景下进行介绍,因为Unix有长达40年的历史,在理解Linux之前,让我们先来了解一下Unix系统。

 

(因为喜欢这段历史,几乎相当于原文翻译下来了,希望读者们喜欢)

 

History of Unix

第一个Unix操作系统,创建于1969年,它的设计经历了40多年的检验,至今仍然是最强大、最优雅的操作系统之一。它的发明者是Dennis Ritchie(也是C语言的创始人)和Ken Thompson(也是C语言之前身B语言的创始人,也是Go语言的联合创始人之一),他们俩是1983年的图灵奖得主。

 

Unix部分地借鉴了Multics操作系统。Multics是由Bell实验室研发的一个多用户操作系统,但它失败了。在Multics项目结束后,Bell实验室苦于没有一个可用的交互式操作系统,在1969年的夏天,实验室的程序员们(包括Thompson本人)设计了一个文件系统的草图,这个设计由Thompson在一台闲置的PDP-7机器上实现,最终演化为Unix。在1971年,Unix被移值到PDP-11。在1973年,Unix又用C语言全部重写——这前所未有的举措,为Unix的可移植性铺平了道路。在Bell实验室之外流行最广的Unix版本,是Unix System, Sixth Edition,又常称为:V6。

 

其他公司把Unix移植到更多的机器上(对,在那个时代还没有商业操作系统的概念,源码是由操作系统一起发布的)。这些移植的完成,造成了多个Unix的变种。在1977年,Bell实验室把这些变种的各处优点结合起来,变成一个新版的Unix,叫做Unix System III。在1982年,AT&T(AT&T是Bell实验室的母公司)发布了System V。为什么直接从System III 跳到了System V?这是因为System IV是Bell实验室的内部开发版,没有对外发布。

 

Unix的简洁设计,以及源码随操作系统一起发布的事实,使得Unix在外面的世界中得到进一步发展。其中最有影响力的贡献者,是加利弗利亚大学伯克利分校。来自伯克利分校的Unix变种,就是Berkeley Software Distributions,简称BSD。BSD的第一个版本在1977年发布,叫1BSD,是基本Bell实验室的Unix基础之上,一系列补丁和新增的软件的集合。在1978年,2BSD发布,增加了csh和vi。第一个独立的BSD版本,叫3BSD,发布于1979年,增加了虚拟内存管理(VM)和其他令人影响深刻的新特性。在3BSD之后,发布了4BSD系列:4.0BSD、4.1BSD、4.2BSD、4.3BSD,这个系列的Unix增加了作业控制、按需分页、TCP/IP。在1944年,伯克利大学发布了最终的正式版Berkeley Unix,重写了VM子系统,称为4.4BSD。在今天,得益于BSD自由的许可协议,BSD的开发仍在继续,它们的代表是:Darwin、FreeBSD、NetBSD、OpenBSD。

 

在1980年初到1990年初这段时间,很多工作站和服务器公司,开始向外界推销他们商业版的Unix。这些商业版的Unix都是基于AT&T或Berkeley的Unix版本,并提供高端的特性,这些特性专为特定的硬件架构而设计。这些Unix包括:Digital的Tru64、Hewlett Packard的HP-UX、IBM的AIX、Sequent的DYNIX/ptx、SGI的IRIX、以及Sun的Solaris和SunOS。

 

Unix原生的优雅的设计,以及多年的创新和进化改进,使它成为强大的、健壮的、稳定的操作系统。Unix最大的特性就是它的稳固:第一,它很简单,与某些操作系统拥有上千个系统调用以及不清晰的设计不同,Unix只有上百个系统调用并且拥有简单明快的设计。第二,在Unix中,“任何东西都是文件”的理念(严格说,并非所有东西都是文件,Socket就是一个例外,但几乎是所有东西都是文件),把数据和设备的操作,简化为统一的系统调用:open(),read(),write(),lseek()和close()。第三,Unix内核和相关的系统工具使用C语言编写,使它们拥有惊人的可移植性,并被广大的开发者所接受。第四,Unix拥有了快速的进程创建速度和独特的fork()系统调用。最后,Unix提供了简单但健壮的进程间通讯(IPC)机制,可以快速的创建进程。使得创建各种小巧的程序,并让它们“仅做一件事并把它做好”,成为程序设计的准则。单用途的程序,可以组合在一起,完成更复杂的任务。由此,Unix操作系统展现简洁的层次化,把策略和机制明确的划分开来。

 

今天,Unix是一个现代的操作系统,提供抢占式多任务、多线程、虚拟内存、按需分页、按需加载共享库、TCP/IP网络。很多Unix的变种扩展到上百个CPU中,而另一些则运行在小巧的、嵌入式的设备里。尽管Unix已经不是一个研究项目,但它仍受益于操作系统设计的进化,它仍然是实用的、通用的操作系统。

 

Unix的成功,归因于它简洁优雅的设计。它的稳固源自于Dennis Ritchie和Ken Thompson以及其他早期开发者的无可争议的设计:赋予Unix进化的能力,而不是由它包办一切。

 

 

展开阅读全文

没有更多推荐了,返回首页