且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Linux/UNIX系统编程手册(上、下册)》——1.4 总结

更新时间:2022-09-25 18:30:36

本节书摘来自异步社区《Linux/UNIX系统编程手册(上、下册)》一书中的第1章,第1.4节,作者:【德】Michael Kerrisk著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.4 总结

1969年,贝尔实验室(AT&T的一个部门)的Ken Thompson在Digital PDP-7小型机上首次实现了UNIX系统。对该操作系统而言,无论是理念还是其双关语的称谓都来源于早期的MULTICS系统。时至1973年,UNIX已经被移植到了PDP-11小型机上,并以C语言对其进行了重写,C编程语言是由贝尔实验室的Dennis Ritchie设计并实现的。因为法律禁止AT&T销售UNIX,于是,在象征性地收取了一定的费用之后,AT&T索性将UNIX系统散布进了大学。这其中便包括了源码,因为这一廉价操作系统的代码可供大学计算机系的师生研究和修改,故而这一操作系统在校园内广受欢迎。

在UNIX系统的开发方面,加州大学伯克利分校扮演了“关键先生”。在该校,Ken Thompson及一干研究生又对这一操作系统进行了“精雕细琢”。到了1979年,这所大学发布了属于自己的UNIX发布版——BSD。这一发布版在学术界广为流传,并在日后成为某些商业UNIX实现的基石。

在此期间,随着AT&T不再对电信市场形成垄断,该公司被获准销售UNIX。这也就催生出了另一种UNIX的变种——System V,日后,它也成为了某些商业UNIX实现的基石。

有两股不同的潮流引领着(GNU/)Linux的开发。其中之一便是由Richard Stallman所创的GNU项目。20世纪80年代末,GNU项目已经开发出了一套几乎完备且可以***分发的UNIX实现,但独缺一颗能够有效运作的内核。1991年,Linus Torvalds被Minix内核(由Andrew Tanenbaum编写)“灵魂附体”,于是便开发出了一颗能够在Intel x86-32架构上正常运作的内核。应Torvalds之邀,许多其他程序员也加入到了改进内核的行列中。随着时光的流逝,在一干程序员的不懈努力下,Linux逐渐发展壮大,并被移植到了多种硬件架构之上。

20世纪80年代末,UNIX和C语言的实现“百花齐放”,所引发的可移植性问题迫使人们开展针对以上两者的标准化工作。1989年,对C语言的标准化工作完成(C89颁布),在1999年,对C89这一标准进行了修订(C99颁布)。在操作系统接口方面,对其标准化的“第一次吃螃蟹”便催生出了POSIX.1,1988年和1990年,IEEE和ISO先后将POSIX.1采纳为标准。20世纪90年代,人们又开始酝酿一个囊括各版SUS在内的更为详尽的标准。2001年,合二为一的POSIX 1003.1-2001和SUSv3标准颁布。该标准合并并扩展了先前的POSIX标准和各版SUS。2008年,人们完成了对该标准的修订(改动幅度不算太大)工作,于是,合二为一的POSIX 1003.1-2008和SUSv4标准浮出水面。

与大多数商业UNIX实现不同,Linux的开发与发行可谓“风马牛不相及”。因此,并无单一的“官方”Linux发布版。各家Linux发行商所提供的只是当前稳定内核的快照,最多针对其打几个补丁。LSB开发并推广了一套Linux系统标准,其主要目的是用来保证二进制应用程序(即编译过的过程)在不同Linux发布版之间的兼容性,以便编译过的应用程序能够运行在任何符合LSB规范的操作系统上,但前提是操作系统所运行的硬件平台必须相同。