Unit/Linux历史及相关概念

2019-10-29  本文已影响0人  性感摩羯

欢迎来到Unix的世界

很多人都用了很多年的Unix(其实更熟悉的是叫Linux),也接触到Unix世界中的各种概念,比如GCC、GNU、BSD、POSIX、GPL等等,也大都知道一些传奇的如雷贯耳的人物,比如Ken Thompson、Dennis Ritchie、Linus Torvalds、Richard Stallman等。但是这些概念是怎么发展和相互关联的,以及这些人物是怎么书写历史传奇的,相信能说清楚的人并不多。这里就专门汇总一下这些信息,供大家参考。

另外,了解这些历史本身也是非常有趣的。看起来各种杂乱无章、琐碎纷繁的点点滴滴,最后还是挡不住历史的潮流,演化出了如今精彩纷呈的现实世界(包括有名的Mac OS、IOS、Android等),而这和人类历史的发展竟如此相像~

Unix

下图是对Unit的历史的一个简单汇总,参考了coolshell上的一篇文章UNIX 40年:UNIX年鉴。如果对其详细历史有兴趣的话,可以去这里看看Unix History(那个白色的横条是一个很残暴的PDF文件,作者牛逼到爆)

Unit重大历史事件

上图中有几个重要信息:

Linux

下面的发展简史摘自Linux发展历史,做了少部分改动

Linux操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU计划、POSIX 标准和Internet 网络。。

  • 1981 年IBM公司推出微型计算机IBM PC

  • 1991年,GNU计划已经开发出了许多工具软件,最受期盼的GNU C编译器已经出现,GNU的操作系统核心HURD一直处于实验阶段,没有任何可用性,实质上也没能开发出完整的GNU操作系统,但是GNU奠定了Linux用户基础和开发环境

  • 1991年初,林纳斯·托瓦兹开始在一台386sx兼容微机上学习minix操作系统。1991年4月,林纳斯·托瓦兹开始酝酿并着手编制自己的操作系统

  • 1991 年4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell软件了

  • 1991年7月3日,第一个与Linux有关的消息是在comp.os.minix上发布的(此时还不存在Linux这个名称)

  • 1991年的10月5日,林纳斯·托瓦兹在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生

  • 1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码大约有十万行,用户大约有10万左右

  • 1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议

  • 1995年1月,Bob Young创办了RedHat(小红帽),以GNU/Linux为核心,集成了400多个源代码开放的程序模块,搞出了一种冠以品牌的Linux,即RedHat Linux,称为Linux"发行版",在市场上出售

  • 1996年6月,Linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux 已经进入了实用阶段,全球大约有350万人使用

  • 1998年2月,以Eric Raymond为首的一批年轻的"老牛羚骨干分子"终于认识到GNU/Linux体系的产业化道路的本质,并非是什么自由哲学,而是市场竞争的驱动,创办了"Open Source Intiative"(开放源代码促进会)"复兴"的大旗,在互联网世界里展开了一场历史性的Linux产业化运动

  • 2001年1月,Linux 2.4发布,它进一步地提升了SMP系统的扩展性,同时它也集成了很多用于支持桌面系统的特性:USB,PC卡(PCMCIA)的支持,内置的即插即用,等等功能

  • 2003年12月,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化

其系统的进化是这样的:

GNU

GNU(GNU's Not Unix)项目是1984年由Richard Stallman发起的一个开源项目,该项目的目标是开发出一个完整的类Unix系统,其源代码能够不受限制地被修改和传播。GNU项目开发出了一个包含Unix操作系统所有的主要部件的环境,除了内核(内核是由Linux项目独立发展而来的)。GNU环境包括EMACS编辑器、GCC编译器、GDB调试器、汇编器、链接器、处理二进制文件的工具以及其他一些部件。

GNU为什么没有包含Unix内核,是因为GNU的开发策略。GNU计划是开发一个与Unix兼容的操作系统,在Unix系统内核已经非常完善的情况下,优先开发周边的应用程序,等自己的内核开发出来之后,直接替换掉内核即可。待大部分应用程序已经开发完毕的时候,GNU开始开发自己的内核,即GNU Hurd。但是GNU Hurd一直处于试验阶段,没有任何可用性,而这时刚好遇到了Linux的横空出世(1991.8.1 Linux发布0.0.1版,GNU Hurd1991.5月发布)。Linux作为内核,配合GNU丰富的应用程序,很自然的就结合在了一起,成为了风靡全球的GNU/Linux系统。

实际上市面上所有的Linux发行版其实都应该叫做GNU/Linux发行版,关于GNU的详细信息可以参考官网GNU Operating System

POSIX

Portable Operating System Interface of Unix的缩写,定义了一套标准接口 - 操作系统为应用程序提供的接口。由于Unix系统的开放性,到了1988年,各种Unix系统满天飞,在一个系统上正常工作的应用程序不能移植到另一个系统上,这种不可移植性还往往还被大Unix厂商作为自己的卖点,极大地分裂和违背了Unix的初衷。为了统一这种乱象,出现了几种标准:AT&T成立了Unix international标准组织,几大厂商(DEC、HP、IBM等)成立了开放软件基金会(OSF, Open Software Foundation),而IEEE则发布了POSIX标准,这些标准的目的都是为了统一Unix的接口标准(但实际上,POSIX标准并不局限于Unix系统)。

POSIX标准意在期望获得源码级别的软件可移植性,即为一个POSIX兼容的操作系统编写的程序,可以在任何其它POSIX兼容的操作系统上编译执行。

BSD

Berkeley Software Distribution,伯克利软件套件。

AT&A的贝尔实验室在1971年发布了第一版的Unix Time Sharing System,到了1975年已经发布到第6版。1974年,加州大学伯克利分校(Berkeley)获取到一份Unix的源码拷贝,在此基础上做一些学术上的研究。1978年,Berkeley的Bill Joy,基于AT&T的Unix V6,增加了一些自己的附件软件,打包在一起发布了一个版本,这个版本就是第一版的BSD。

1984年,Berkeley发布了第四版的BSD,该版本是世界上第一个支持TCP/IP的Unix发行版(同年,Bill Joy成立了SUN公司)

BSD有几个比较有名的“分支”系统:

在今天,提到BSD,并非指任何一个BSD的衍生版本,而是指类Unix操作系统的一个分支的总称。

System V

Unix操作系统在操作风格上主要分为System V和BSD。System V由AT&T发布,1983年发布了第一个版本,直到1998年发布了第四个版本,也是最经典的一个版本,简称SVR4。1985年,AT&A发布了SVID(SystemV Interface Definition),希望统一Unix的接口标准(目标和POSIX类似)。

MacOS

MacOS最终可以追溯到BSD分支,其大致演化过程为:

BSD4.2(1983.9) -> Mach(1986) -> NeXTSTEP 1.0(1989.9) -> Mac OS X 10.0(2001.3)

1986年,Rick Rashid及其同事在Carnegie Mellon大学创造了Mach操作系统的第一个版本,用于取代BSD的Unix内核。

2001年,Apple 发布 Mac OS X,这是一个基于Mach内核和BSD开发的桌面操作系统。

Android

Android系统是基于Linux系统发展而来的。在Linux的内核上运行了一个Java虚拟机(最开始叫Dalvik虚拟机,后面改为Android Run Time,ART虚拟机),由虚拟机来解释执行用java代码编写的应用程序。

开源

从Unix诞生开始,就伴随着开源的概念。开源全称是Open Source,是开放源代码的意思,也就意味着开放,任何人都可以得到程序的源代码。但是开源并不意味着免费(虽然大部分都是免费),也是受限于版权限制的,只是这些版权相对闭源来说要开放宽松了很多。在版权限制范围内,可以基于源代码做修改并重新发行,甚至收费。开源的本质是在开放,是接纳、包容和发展,求同存异,互利共赢。

许可证

开源并非是无限制的开放,也是有版权的,这些版权的声明就是开源许可证。比较常见的许可证有:GPL、BSD、Apache、MIT、LGPL、Mozilla等。下图根据网上搜索的信息简单整理了一下各许可证的主要许可范围,从图中可以看到MIT许可证是最宽松的,而GPL是相对比较严格的。

许可证协议

下面分别简单介绍上面几种许可证的特点:

还有其它形形色色的开源协议,详情可以参考Various Licenses and Comments about Them

参考

上一篇下一篇

猜你喜欢

热点阅读