批处理系统中,操作员把用户提交的作业进行分类,把一批作业编成一个“作业执行序列”。每一批作业,都由专门编制的监督程序(monitor)自动依次处理。
说到操作系统,大家都不会陌生◆◆。我们天天都在接触操作系统——用台式机或笔记本电脑,使用的是Windows和macOS系统;用手机、平板电脑,则是Android
后来,全球开发者(开源社区、企业、个人等)对内核代码进行大量的修改和补充,加入GUI(图形界面)、应用等部分,才形成了相应的Linux操作系统发行版,也就是真正的操作系统◆◆。
最早使用批处理系统的,是第二代通用计算机,代表产品是IBM的1401和7094等。
Solaris这个系统,小枣君非常熟悉。当年我就是通过Solaris学会的Unix◆◆。它的稳定性极高,主要用在SUN公司的服务器(V240/V440等)上,CPU都是完全不一样的,叫做SPARC。
多道程序系统大幅提升了计算机的工作效率。再后来,系统又支持了多个用户同时使用。于是,就变成了“多用户+多任务◆◆”的系统,称为“分时系统◆◆”。
很多人觉得,Linux就是Unix,这显然是不对的◆。由上面的介绍可以看出,Linux是开源自由软件,而Unix是对源代码实行知识产权保护的传统商业软件。两者是完全不同的东西。
当时,他们打算借助这个系统,打造一台能够连接1000台终端、满足300人同时在线的计算机。
计算机的速度快,人的速度慢。所以,计算机经常处于等待状态,等待操作员的输入。
1969年8月,肯·汤普森趁着妻子回家探亲,用了1个月的时间,使用汇编语言,写出了一个简版的Multics系统(包括一组内核程序,一些内核工具程序,以及一个小的文件系统)。
新手学习操作系统,最麻烦的是认名字和认类别。接下来,小枣君就从时间线的角度,对所有的操作系统关系进行一下梳理。
在SystemV7推出之后,AT&T发布新的使用条款,将Unix源代码私有化。Unix开始走向了商业闭源之路。
1973年,丹尼斯·里奇和肯·汤普森正式发表论文,宣布了Unix的存在Linux系统。消息引起很大反响,很多人都期望学习和研究Unix。
不久后,丹尼斯·里奇用C语言重写Unics成功。就这样,Unix操作系统正式诞生了。
于是,他突发奇想,打算在一台空闲的PDP-7(DEC公司生产的一种小型计算机,性能很低)上,开发一个简单操作系统,运行这个游戏◆。
ENIAC是由大量的电子管(真空管)组成,体积极为庞大,占地170平方米,重达30吨,耗电174千瓦。在算力上,它可以实现每秒5000次的加法运算。
他将这个系统称为MINIX,也就是mini-UNIX(小型UNIX)的意思。
基于汇编语言编写的Unics,硬件通用性差,没法移植到其它机器上运行◆◆。因此,肯·汤普森尝试使用BCPL、PASCAL语言进行重写。但是,效果并不理想。
实验室的同事们,将这个系统戏称为Unics。Uni作为前缀,是◆◆“单一、一个”的意思。Unics,对应Multics,是“单路信息与计算系统”的意思。
到了60年代,集成电路技术高速发展,我们有了更快的处理器、更大的内存◆◆、更丰富的I/O设备。同时,通道和中断技术出现,开始允许系统执行◆“挂起◆◆”操作◆◆。
这些发行版分为社区版和商业版。社区版数量较多,开发和维护的主体是开源社区。商业版数量较少,是在社区版的基础上进一步优化而来。
值得一提的是,发行版之间也有复杂的衍生关系。也就是说,发行版可以构建在另一个发行版之上。
1978年,SCO(一家服务器系统软件供应商)包装发行了商用版的Unix。
上面这些操作系统,小枣君基本都用过。2005年我刚工作的时候,用的是Debian、RHEL、Solaris。后来,开始用Fedora。再后来,是CentOS。刚开始使用很难受,不适应。但是一旦用习惯了,就觉得很爽。
2020年底,红帽公司宣布陆续停止维护CentOS,后续将无法获得官方升级和补丁。虽然比较可惜,但也给国产操作系统带来了机会,我们以后会讲。
Unix开始收费和商业闭源之后,引起了一个大叔的不满。这个大叔,名叫理查德·马修·斯托曼(Richard MatthewStallman)。
到上世纪90年代初,GNU项目已经开发出许多高质量的免费软件,其中包括有名的emacs编辑系统、bash shell程序、gcc系列编译程序、gdb调试程序等等。
它属于底层软件,可以说是一个大管家,专门负责把所有的硬件和上层软件(中间件◆、数据库、应用程序等)管理和连通起来,并进行资源调配,完成用户下达的任务。
贝尔实验室退出之后,相关的项目组成员就闲了下来。其中就有一个人,名字叫做肯·汤普森(Ken Thompson)。
这种早期的计算机,既没有显示器,也没有键盘,更没有鼠标,全部都是人工操作。
除了RHEL之外,Redhat还向社区提供另一个免费发行版,即Fedora◆。
“分时”和我们通信领域的“时分复用”有点像,就是把处理机的运行时间分成很短的时间片,按时间片轮流分配给各个作业使用。
这严重耽误了计算效率,浪费时间,也浪费钱(电费)◆◆。于是,到了20世纪50年代,开始出现了批处理系统(batch processing)。
说到这里,大家应该对Unix和Linux操作系统的家族脉络有了基本的了解。
简单来说,计算机系统从串行变成了并行,可以同时运行多个任务(多个程序放入内存,交替在CPU中运行,共享硬软件资源)。
1987年,荷兰阿姆斯特丹自由大学计算机系的安德鲁·塔能鲍姆教授(Andrew S.Tanenbaum,也译为谭宁邦),为了能在课堂上教授操作系统课程,决定在不使用任何AT&T源代码的前提下,自行开发与Unix兼容的操作系统◆。
例如,当作业进行I/O(输入/输出)操作时,主机会等待操作完成,造成自身空闲。再例如,计算机只能同时运行一个批处理任务,效率还是太低。
真正意义上的类Unix系统,必须要通过官方认证(例如苹果的MacOS),而Linux并没有。
目前公认的最完美版本,是1979年发行的System V7。这个版本也被Unix玩家们称为“最后一个真正的UNIX”。
1991年,正在芬兰赫尔辛基大学求学的林纳斯·托瓦兹(Linus Torvalds),对Unix产生浓厚兴趣,尝试借助MINIX完成一些日常工作。
贝尔实验室(AT&T)推出了Unix之后,因为受美国政府反垄断制裁的原因,并不能对它进行销售。所以,他们只能将Unix无偿提供给所有人学习◆◆。
1964年,美国电话电报公司(AT&T)◆◆、通用电气公司(GE)及麻省理工学院(MIT)合作,提出了一个超级分时操作系统的开发计划。
他在发布时,选择了遵循GPL协议和GNU宗旨,所以,正式发布时,命名为◆“GNU/Linux”◆。
所有GPL协议下的自由软件,都必须遵循“Copyleft(非版权)”原则,即:自由软件,允许用户自由拷贝、修改和销售◆。但是,对其源代码的任何修改,都必须向所有用户公开。
这个计划持续了五年,并没有达到既定目标。于是,1969年,隶属AT&T公司的贝尔实验室(Bell Labs)宣布退出◆。
1946年2月,在美国的宾夕法尼亚大学诞生了世界上第一台电子计算机,它的名称叫ENIAC(埃尼阿克)j9九游会-真人游戏第一品牌。
1980年,美国国防高级研究计划局(DARPA)准备制定TCP/IP协议,选择了与BSD合作。这大大刺激了Unix的发展和普及。
用户有了操作系统,就能更好地管理计算机,进行人机交互(下达命令,查询结果和状态)。
他甚至还不允许别人加入代码(估计是怕侵权Unix),这就更加限制了MINIX的发展和普及。
如果是从事信息通信行业,还经常会和ubuntu、CentOS、Fedora这样的Linux系统打交道。
丹尼斯·里奇在BCPL语言(也就是B语言)的基础上,开发了一套新的语言,也就是后来如日中天的C语言(按字母表顺序j9九游会-真人游戏第一品牌操作系统的最强入门科普:UnixLinux篇,,B之后就是C)。
开发出MINIX之后,塔能鲍姆教授并没有对它进行大规模推广。而且,他认为这个系统只是用于教育目的,所以也没有进行深入开发◆◆。
肯·汤普森此前在Multics上开发了一款名叫“星际旅行(Space Travel)◆◆”的游戏。退出Multics项目后,肯·汤普森就没办法继续玩这个游戏了。
MINIX的主要工作平台,是IBM PC及其兼容机。这款PC搭载了英特尔公司的16位处理器——Intel 8080。
又过了一段时间,AT&T发布了Unix系统第5版,并授权给教育机构使用。1975年,他们第一次以2万美元的价格,授权企业使用Unix第6版。
在使用时,专职操作员将运算信息记录在穿孔卡带上。系统启动后,读取卡带信息,然后进行运算,最后输出结果◆◆。
后来,丹尼斯·里奇和肯·汤普森被誉为Unix之父和C语言之父。1983年,他们二人都获得了图灵奖◆◆。
从使用场景来看,操作系统大致可以分为桌面操作系统、服务器操作系统、移动终端操作系统、嵌入式操作系统、物联网操作系统、云操作系统等类别。
Linux只是风格上和Unix很像,但它并不含有Unix的代码。UNIX的源代码,为SCO公司所有。UNIX的商标权和标准认定权,属于OPENGROUP所有。
正在操作DEC PDP-11计算机的,肯·汤普森(坐者)和丹尼斯·里奇(站者),图/wikipedia
MINIX的功能太弱,无法满足林纳斯的需求◆◆。于是,他利用GNU的bash当作开发环境,GCC当作编译工具,成功编写出了拥有10000行代码的Linux内核(Linux kernel)。
很多公司,都推出了自己的Unix系统分支。比较有名的,是Sun公司的Solaris、IBM公司的AIX、惠普公司的HP-UX,以及由BSD版本发展起来的FreeBSD。
CentOS是RHEL源代码再编译的产物,修正了不少Bug,稳定性更强。
这个◆“监督程序”,就是操作系统的雏形。它标志着操作系统的诞生(1955年)。
FreeBSD的应用范围就广多了。它在BSD许可协议下发布,由来自世界各地的志愿者开发和维护,允许任何人随意使用和发行(在保留版权和许可协议信息的前提下)。
再后来,技术又继续演进。终于,我们有了时效性更强的“实时操作系统”。这种系统,就非常接近于现代操作系统的概念了j9九游会-真人游戏第一品牌操作系统的最强入门科普:UnixLinux篇,。
免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。