一、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开发。