Linux的诞生与发展


一、Unix的诞生

最早的计算机只能一个接一个运行程序,也不支持多个用户同时操作。同时,计算机也非常地贵,人们期望能够共享使用同一台计算机,多个程序也可以分时共享软硬件资源。

1961年,MIT(Massachusetts Institute of Technology,麻省理工学院)实现了世界上第一个分时系统CTSS(Compatible Time-Sharing System,兼容分时系统)。CTSS系统运行在IBM7094型机器上。

图片

1964年,MIT联合AT&T(American Telephone and Telegraph Inc.,美国电话及电报公司)和GE(General Electrics,通用电器公司)一起开发操作系统,称为MULTICS(Multiplexed Information and Computing System,多路信息与计算系统)。MULTICS的设计目标是连接1000台终端,可支持300名用户同时使用。MULTICS运行在通用电气公司的GE645主机上。

1965年,MULTICS操作系统研发工作正式启动,预计2年结束。

1969年,MULTICS操作系统可在GE645上运行,但未达到设计的性能。AT&T(贝尔实验室)退出,MULTICS操作系统研发失败。

MULTICS操作系统虽然失败了,但贝尔实验室的Ken Thompson(肯.汤普森)和Dennis Ritchie(丹尼斯.利奇)对MULTICS操作系统进行了改编,运行在DEC小型计算机PDP-7上(售价约为72,000美元),以使得自己编写的游戏star travel(星际漫游)能够运行。改编后的操作系统被戏称为UNICS(UNiplexed Information and Computing System,非复用信息和计算机服务),之后大家取谐音便成为了Unix。

图片

1971年,Ken Thompson使用B语言重写了Unix,运行在PDP-11/24(售价约为10800美元)上,Unixv1版本诞生。

说明:B语言为BCPL语言(Basic Combined Programming Language,基本组合编程语言)的精简版。

图片

1972年,Dennis Ritchie在B语言基础上,增加了数据类型和结构的特性,设计出了C语言。Unix操作系统增加了管道功能,发布了Unixv2版本。

1973年,Ken Thompson和Dennis Ritchie使用C语言重写了Unix,发布了Unixv3版本。

1974年,Ken Thompson和Dennis Ritchie在ACM通信上发表了《The UnixTime-Sharing System》,主要介绍了Unix的文件系统和Shell的工作原理,Unix被外界熟知并流行起来。

1975年,发布了Unix v4、v5、v6三个版本。Ken Thompson受邀到伯克利大学任教,课程为Unix。

1977 年,伯克利大学学生Bill Joy(比尔·乔伊)在Unix的核心源代码基础上进行修改,增加了工具软件与编译程序,发布了BSD(Berkeley Software Distribution)版本。

图片

1979年,发布了Unix v7版本,可以支持x86架构的个人计算机系统,但明确说明“不可对学生提供源代码”。Unix v7版本界面如下所示。

图片

1980年,AT&T发布了Unix的可分发二进制版(Distribution Binary)许可证,开启Unix商业化进程。

1982年,AT&T基于Unix v7发布了商业版本Unix System III。

1983年,AT&T发布Unix System V Release 1,不再开放源代码。

1984年,Unix领域发生了几件事:

(1)美国司法部依据《反托拉斯法》拆分AT&T,分拆出新AT&T公司(专营长途电话业务)和七个本地电话公司。

图片

(2)Andrew Tanenbaun(安德鲁.特南鲍姆)教授自己开始动手编写类Unix 程序Minix,为避免版权问题,没有参照Unix源代码,到1986年完成编写。Minix用于教授学生操作系统。

图片

(3)1984年,Richard Stallman(里查德.史托曼)期望创建一个自由、开放的Unix操作系统,启动GNU计划,主要完成了运行在Unix上面的小程序重写。

图片

1987~1989年,AT&T将Xenix、BSD、SunOS和System V融合,发布了System V Release 4(SVR4)。

随后,AT&T将Unix出售给了Novell(诺威尔,美国网络系统公司)。

1993年,Novell又将SVR4的商标权出售给了X/OPEN公司(UNIX标准的机构),Unix代码著作权出售给了Santa Cruz Operation(SCO)公司。

1996年,X/OPEN和OSF/1(开放软件基金/1)合并,创建了国际开放标准组织。符合Unix标准的操作系统有BSD、GNU、Oracle Solaris,IBM AIX,HP-UX,MINIX等。

总的来说,Unix操作系统版本有100多种,可分为AT&T版本、BSD版本和其他公司版本。其中:

(1)AT&T版本有 System V(1983)、System V.2(1984)、System V.3(1986)、System V.4(1988)。(2)BSD版本有BSD1.0(1977)、BSD4.2(1983)、BSD4.3(1985)、BSD4.4(1993)。

(3)其他公司版本有XENIX(PC版本)、OSF/1(1992)。

Unix操作演进过程大致为:

图片

二、 Linux产生背景

最早的UNIX系统于1970年问世。此前,只有面向批处理作业的操作系统,这样的系统对于需要立即得到响应的用户来说是太慢了。

在60年代末,Kenneth Thompson和Dennis Ritchie都曾参加过交互方式分时系统Multics的设计,而开发该系统所使用的工具是CTSS。这两个系统在操作系统的发展过程中都产生过重大影响。在此基础上,在对当时现有的技术进行精选提炼和发展的过程中,K.Thompson于1969年在小型计算机上开发UNIX系统,后于1970年投入运行。

1972年,DennisRitchie开发出C语言,用来改写原来用汇编语言编写的UNIX,由此产生了UNIX VersionV。1974年,Kenneth Thompson和Dennis Ritchie合写的“The UNIX Time-Sharing System”在Communication of ACM上发表,正式向外界披露了UNIX系统。

1978年,UNIX Version VI发表,随后又于1979年用于VAX-11超级小型机。以后,不断地出现各种新的版本。

美国电话电报公司分别于1981年和1983年发表AT&T UNIX SystemII和UNIX SystemV。美国加州大学伯克莱分校也先后发表了UNIX的版本BSD4.1,BSD4.2和BSD4.3。

1983年,AT&T发布Unix System V Release 1,进行Unix的商业化,不再开放Unix源代码。

1984年,Andrew Tanenbaun(安德鲁·特南鲍姆)教授为了教学与研究操作系统,自己开始动手编写类Unix程序Minix(mini-UNIX,小型Unix),为避免版权问题,没有参照Unix源代码,到1986年完成编写。

图片

同年,Richard Stallman(里查德·史托曼)期望创建一个自由、开放的Unix操作系统,启动GNU(GNU is Not Unix)计划,创办FSF(the Free Software Foundation,自由软件基金会),并且制定了GPL(General Public License,通用公共许可证):自由软件允许用户自由拷贝、修改和销售,但是对其源代码的任何修改都必须向所有用户公开。GNU开发了Emacs代码编辑器、GNU C (GCC)、GNU C Library、Bash shell等软件。

图片

但Minux和GNU都存在缺点。Minux采用微内核的设计方法,实现较为简单,主要用于教学。GNU虽然期望开发一个完全免费的不同于Unix的操作系统,但GNU Hurd内核已经开发的版本不是太稳定。

三、 Linux演进历程

1991年,受到Minix启发,Linus Torvalds(林纳斯·托瓦兹)采用宏内核的设计方法重新编写并发布了内核v0.01,运行在Intel的386机器上,命名为Linus' Minix(Linus的Minix内核),后改名为Linux。

图片

1992年,Linux内核发布了v0.0.2版本。

1992年,GNU操作系统和Linux内核走到一起,Linux内核 + GNU软件,打包成了GNU/Linux发行版。后续发行版本基本上是基于GNU/Linux的。

图片

1993年,Linux内核发布了v0.99版本(约10W代码)。

1993年,普渡大学本科生Ian Murdock(伊恩·默多克)发布Debian Linux(Debian GNU/Linux)。Debian的名字取自:其女友Debra Lynn(黛布拉·林恩)和自己的名字组合(Debian=Deb + Ian)。Debian为通用操作系统,可用于桌面和服务器中。

图片

1993年,Patrick Volkerding 发布Slackware Linux,力图成为 “UNIX 风格” 的 Linux 发行版本。

图片

1994年,Linux内核发布了v1.0版本。

1994年,Marc Ewing(马克·尤因) 发布了Red Hat Linux v1.0。1995年,Bob Young(鲍勃.扬)收购了Red Hat,成为红帽软件公司。

图片

1996年,Linux内核发布了v2.0版本。

1996年,Slackware Linux和Red Hat Linux合并。

1996年,德国SuSE Linux AG公司发布SUSE Linux。

2004年,Linux内核发布了v2.6版本(应用广泛的版本)。

同年,基于Debian Linux,Ubuntu发行版本诞生,版本号为4.10(4月10号)。

2007年,基于Linux开发的手机操作系统,Android发布。

图片

2011年,Linux内核发布了v3.0版本。

2015年,Linux内核发布了v4.0 版本。

2019年,Linux内核发布了v5.0 版本。

2020年,90%的云端设备都运行在Linux之上。

2022年,Linux内核发布了v6.0 版本。

Linux内核版本可在官网https://www.kernel.org/查看:

图片

注:mainline是主线版本,当前版本为6.2-rc6。Stable是稳定版本,提供bug 修复和安全补丁。longterm是长期支持版,当前长期支持的版本为5.15.90、5.10.165、5.4.230、4.19.271、4.14.304、4.9.337[EOL](End of Life,生命周期终结)。

四、 Linux发行版

Linux 的发行版本主要分为两类:以Debian为代表的社区发行版本和以Red Hat为代表商业公司发行版本。另外,还有SuSE、Android。

1.Debian系

(1)Ubuntu(2004年发布):适用于笔记本电脑、桌面电脑和服务器,以桌面为主,几乎包含了所有常用的应用软件:文字处理、电子邮件、软件开发工具和Web服务等。

根据用途来划分,可分为Ubuntu Desktop(桌面版)、Ubuntu Server(服务器版)、Ubuntu

Cloud(云操作系统)和Ubuntu Touch(移动设备系统)。

Ubuntu主要分支:

A. Edubuntu:专注于学校(教育)的需求,内置了大量适合教学的应用软件和游戏。

B. Kubuntu:使用KDE桌面管理器(取代GNOME)。

C. Lubuntu:使用轻量级桌面环境LXDE/LXQt(取代GNOME),所需的计算机资源很少,十分适合追求简洁或速度。

D. Ubuntu Kylin(优麒麟):专门为中文用户定制的Ubuntu版本。

(2)AntiX(2011年发布):提供一份轻巧但功能完整的、灵活的免费操作系统,专注于性能而非美观。

(3)MX Linux(2014年发布):Midweight Simple Stable Desktop OS,一款专注于简洁性的中等体量桌面发行版。

(4)Kali Linux(2014年发布):专注于渗透测试和安全审计。

(5)Devuan(2016年发布):不依赖于systemd、init系统等组件。

(6)SONiC(2016年发布):Software for Open Networking in the Cloud,用于交换机的操作系统。

(6)PureOS Linux:笔记本电脑制造商Purism针对其Librem笔记本开发的发行版。

(7)Parrot OS:与Kali Linux同,更注重于匿名与反追踪。

(8)AV Linux:包含大量音频和视频创作软件。

2.Red Hat系

(1)RHEL(Redhat Enterprise Linux,Redhat企业版):收费,适合服务器使用。

(2)CentOS:Community Enterprise Operating System,依照开放源代码规定的源码编译而成的版本,免费,适合服务器使用。

CentOS 8在2022年1月31日停止更新。CentOS7将在2024年6月30日停止更新。推出新社区版本CentOS Stream,恢复社区上游优先(社区用户的开发成果合入到RHEL中)。

(3)Fedora Core:包含最新的技术或工具,免费,适用于桌面应用。

图片

3.SuSE

1994年,德国SuSE Linux AG公司基于Slackware Linux 发布了SuSE Linux。2004年,被Novell 公司收购,并推出OpenSUSE社区版本。

图片

4.Android

2007年,Google发布Android操作系统,包含操作系统、中间件、用户界面和应用软件。之后,又演化出LG Optimus(LG)、小米MIUI系统(MIUI)、Emotion UI(华为)等。

综合Linux内核演进历程和Linux发行版等信息,简单总结Linux操作系统发展历程:

图片

四、国产操作系统

CentOS停服,给国产操作系统带来不利影响。

国产操作系统的市场份额一直没有超过5%。中国大多数服务器都运行在CentOS上。

国家在全力推信创(信息技术应用创新):国家基于国产芯片和操作系统的PC、服务器、网络设备、存储设备、数据库、中间件等基础设施的技术创新。

国产操作系统转向国内开源社区:欧拉和龙蜥。

以欧拉社区为例,起源于华为的EulerOS,专门为华为服务器设计的 Linux 操作系统。时间节点如下:

2010-2012年:EulerOS诞生。

2013-2016年:EulerOS 1.x发布,商用于华为内部ICT产品(存储产品、无线控制器、CloudEdge)。

2016年以后:EulerOS 2.x发布,规模商用(消费者云、华为公有云、存储产品、无线产品、云核心网)等。

2019年,华为发起了OpenEuler开源社区。

2020年,OpenEuler社区发布长期支持版本OpenEuler 20.03LTS。

2021年,OpenEuler捐赠给中国开放原子基金会,企业发行版由OSV(Operating System Vendor)来发布。麒麟、统信、麒麟信安、中科红旗等均已发布了基于OpenEuler的操作系统发行版。

注:网上有说,OpenEuler是基于CentOS编译开发的,CentOS停服,而国产操作系统又基于OpenEuler发布商业版本。分析起来,OpenEuler应该是基于Linux内核开发出来的。

银河麒麟和中标麒麟合并为麒麟软件,发布麒麟软件V10,服务器操作系统版本基于OpenEuler开发,桌面操作系统基于Debian开发。

统信UOS服务器操作系统V20基于OpenEuler开发。