打字猴:1.700436045e+09
1700436045
1700436046 “Unix安装数现已超过50个,有望继续大量增加。”
1700436047
1700436048 —— Unix程序员手册(第5版),1974年6月
1700436049
1700436050 按照手册上的日期,第1版Unix在1971年底开始运行。在接下来的几年里,大约每半年就会有一版新手册问世,每次都会增加重要的新功能、新工具和新语言的相关内容。第6版Unix,其手册发布于1975年5月,首次拓展到贝尔实验室以外。它对世界产生了重大影响。
1700436051
1700436052 丹尼斯·里奇和肯·汤普森的论文“The Unix Time-Sharing System”(Unix分时系统)首次公开描述了Unix。这篇论文发表在1973年10月举行的第四届ACM操作系统原理研讨会(ACM Symposium on Operating Systems Principles)上;1974年7月,稍做修改后,这篇论文重新发表在《ACM通讯》(Communications of the ACM,CACM)上。论文摘要简明扼要地总结了大量的好点子:
1700436053
1700436054 Unix是一个通用、多用户、交互式操作系统,运行在数字设备公司PDP-11/40和11/45计算机上。它提供了一些即使在大型操作系统中也罕见的功能,包括:
1700436055
1700436056 (1)包含可拆卸卷的分层文件系统;
1700436057
1700436058 (2)可兼容的文件、设备和进程间I/O(输入/输出);
1700436059
1700436060 (3)初始化异步进程的能力;
1700436061
1700436062 (4)每个用户可选择不同的系统命令语言;
1700436063
1700436064 (5)100多个子系统,包括十几种语言。
1700436065
1700436066 这些“即使在大型操作系统中也罕见”的功能是什么?其意义何在?接下来的几节将详细讨论其中部分内容。如果你不偏爱技术,略过本章也无关紧要。我尽量在每节开始处总结该节的重要信息,这样你就可以跳过细节。
1700436067
1700436068
1700436069
1700436070
1700436071 UNIX传奇:历史与回忆 [:1700434689]
1700436072 UNIX传奇:历史与回忆 4.1 文件系统
1700436073
1700436074 文件系统是操作系统的一部分,负责管理磁盘等次级存储设备上的信息。过去有好些年,磁盘是基于磁性旋转介质的精密机械装置,如今最常见的是固态硬盘和USB闪存盘等没有可移动部件的集成电路。
1700436075
1700436076 通过Windows上的资源管理器(Explorer)和macOS上的访达(Finder)等程序,我们已经熟识这种信息存储的抽象视图。再往下是管理物理硬件上各种信息的大量软件,它们跟踪每个部分的位置,控制访问,使其有效地进行读写,并确保其始终处于持续一致的状态。
1700436077
1700436078 在Multics之前,大多数操作系统充其量只是提供了复杂又不规则的文件系统来存储信息。Multics文件系统比当时的其他文件系统更通用、更规则、更强大,但相应地也很复杂。肯开发的Unix文件系统从Multics中汲取了养分,但明显更简单。其整洁、优雅的设计多年以来被广泛使用和模仿。
1700436079
1700436080 每个Unix文件都只是一系列字节的组合。文件内容的结构或组织方式只由处理它的程序决定,文件系统本身并不关心文件中的内容。这意味着任何程序都可以读取或写入任何文件。如今看来,这个概念似乎显而易见,但在早期的系统中并不总受青睐,因为早期系统有时会对文件中的信息格式以及程序如何处理这些信息施加限制。道格·麦基尔罗伊讲过一个例子:
1700436081
1700436082 “源代码是一种特别的文件类型,不同于其他数据文件。编译器可以读取源代码,编译好的程序可以读取和写入‘数据’。因此,Fortran程序的创建和读取往往与其他文件的创建和读取隔离开来,编辑和输出的方式完全不同。这就排除了使用程序生成(甚至简单复制)Fortran程序的可能性。”
1700436083
1700436084 Unix没做区分:任何程序都可以处理任何文件。如果程序处理不了文件,例如,试图将Fortran源文件当作C语言程序来编译,那和操作系统没有任何关系。
1700436085
1700436086 Unix以目录为单位来组织文件。(其他操作系统通常称之为文件夹。)Unix目录也是文件系统中的一个文件,但其内容由系统本身维护,不由用户程序维护。目录中包含了其下文件的信息,而这些文件又可以是目录。
1700436087
1700436088 Unix目录项包括目录内的文件名、访问权限、文件大小、创建和修改的日期及时间,以及在哪里可以找到文件内容的信息。每个目录下都有两个特殊的目录项,名为“.”(目录本身)和“..”(上层目录),它们的发音分别为“dot”和“dotdot”。根目录是层次结构的顶端,名为“/”。从根目录往下走就能找到任何文件,而从任何文件都可以通过上层目录序列向上找到根目录。因此,本书的文本可以在/usr/bwk/book/book.txt中找到。系统还支持当前目录的概念,因此文件名可以由文件系统中的当前相对位置来定位,而不必列明从根目录开始的完整路径。
1700436089
1700436090 因为目录可以包含子目录,所以文件系统可以深入至任意层。这种嵌套目录和文件的组织方式被称为“分层”文件系统。同样,虽然事后看来优势明显,但在Multics和Unix之前,分层文件系统并没有被广泛使用。例如,有些文件系统限制了嵌套的深度,CTSS就限制只能有两层。
1700436091
1700436092
1700436093
1700436094
[ 上一页 ]  [ :1.700436045e+09 ]  [ 下一页 ]