ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

操作系统基础

2021-12-08 15:34:22  阅读:207  来源: 互联网

标签:操作系统 基础 汤普逊 Unix Linux BSD AT&T


操作系统基础

目录

1. 操作系统发展

1.1 什么是操作系统

操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。

操作系统位于计算机硬件与应用软件之间,本质也是一个软件。操作系统由操作系统的内核(运行于内核态,管理硬件资源)
以及系统调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两部分组成,

image

1.2 操作系统的发展

开始是没有操作系统的,所有的程序设计(机器语言)都是直接操控硬件。

由于当时的计算机非常昂贵,自认很自然的想办法较少机时的浪费。通常采用的方法就是批处理系统。

image
image

许多程序员怀念第一代独享的计算机,可以即时调试自己的程序。为了满足程序员们很快可以得到响应,出现了分时操作系统。

为了进一步强化大型主机的功能,让主机的资源可以提供更多的使用者来利用,所以在1964年, 由AT&T旗下的贝尔实验室(Bell)、麻省理工学院(MIT)及奇异公司(GE美国通用电气公司)共同发起了Multics(多路信息计算系统)的计划, Multics计划的目的是让大型主机可以同时支持300个以上的终端机连线使用。不过,到了1969年前后,由于计划进度缓慢,资金也短缺,所以该计划虽然继续在研究,但最终贝尔实验室还是选择了退出。

1966年从加州大学伯克利分校毕业的Ken Thompson(肯·汤普逊)加入了贝尔实验室。参与了Multics系统的研发。他基于Multics开发了“star travel” 游戏。不幸的是,1969年由于贝尔实验室退出Multics项目,这同时意味着肯·汤普逊将没有机器可以再玩这个游戏了。面对此情此景, 肯·汤普逊作为一个创造者的本性立即体现了出来,于是他决定自己写一个操作系统来满足他玩游戏的需要, Ken找到了一台废弃已久的老式PDP-7并在这台机器上重写了他的游戏。在这个过程中, 肯·汤普逊有了一个主意,要开发一个全新的操作系统。利用PDP-7上的汇编语言,肯·汤普逊只花了一个月就编写完了操作系统的内核,在这个一个月中,他一周一个内核,一个文件系统,一个编辑器和一个编译程序的完成。在丹尼斯·里奇的帮助下,肯·汤普逊用PDP-7的汇编语言重写了这个游戏,并使其在DEC PDP-7上运行起来。肯·汤普逊在公司内部推广他写的游戏,然后他的同事对他的游戏不感兴趣,反而对他写的操作系统特别感兴趣。1969年,肯·汤普逊提议在PDP-7上开发一个新的阶层式操作系统的计划。Multics的原有成员,加上Rudd Canady,都投入这个计划,,最终做出了一个分时多任务)操作系统为区别于Multics项目,新操作系统被命名为Unix。

image

第一版UNIX是用PDP-7汇编语言编写的,一些应用是由叫做B语言的解释型语言和汇编语言混合编写的。在进行系统编程时不够强大,所以汤普逊和里奇对其进行了改造,并于1971年共同发明了C语言。1973年汤普逊和里奇用C语言重写了Unix,形成第三版UNIX。在当时,为了实现最高效率,系统程序都是由汇编语言编写,所以汤普逊和里奇此举是极具大胆创新和革命意义的。用C语言编写的Unix代码简洁紧凑、易移植、易读、易修改,为此后Unix的发展奠定了坚实基础。

1974年,汤普逊和里奇合作在ACM通信上发表了一篇关于UNIX的文章,这是UNIX第一次出现在贝尔实验室以外。此后UNIX被政府机关,研究机构,企业和大学注意到,并逐渐流行开来。

1975年,UNIX发布了4、5、6三个版本。1978年,已经有大约600台计算机在运行UNIX。1979年,版本7发布,这是最后一个广泛发布的研究型UNIX版本。20世纪80年代相继发布的8、9、10版本只授权给了少数大学。

在当时AT&T垄断了美国长途电话业务,所以美国司法部在1958年与它签了一个和解协议。AT&T同意不进入计算机业,不销售任何与计算机有关的产品,以避免司法部起诉它违反《反垄断法》。Unix是计算机的操作系统,所以AT&T不能销售它,任何要求得到源码的机构,都能免费得到。

加州大学伯克利分校得到源码后,为Unix添加了许多功能。然后在1979年,推出了一个自家的Unix版本,取名为Berkeley Software Distribution(伯克利软件套件),简称BSD。

正当Unix蓬勃发展之际,发生了一件谁也没有想到的事情。

1974年,美国司法部再次起诉AT&T违反《反垄断法》。1982年,哥伦比亚地区法庭判决AT&T败诉,必须被拆成8家小公司。但是,这个判决也意味着1958年的和解协议失效,AT&T从此可以进入计算机业。

1983年,AT&T发布了Unix最新版system V,这是一个商业化版本,付费才能使用,并且不得传播源码。这个决定对BSD构成了限制,为了减少纠纷,伯克利分校规定,BSD本身依然保持免费,但是只能提供给持有AT&T源码许可的公司。不过,与此同时,伯克利的师生也开始着手另一项工作:将AT&T的专有代码从BSD中逐渐去除。

80年代后期,几个伯克利毕业的学生,成立了一家Berkeley Software Design Inc.公司,简称BSDi,专门销售BSD的一个商业版本。他们在广告中宣称,自己的产品不包含任何AT&T代码。这句话惹恼了AT&T,1990年BSDi被告上法庭,稍后伯克利分校也被追加为被告。AT&T起诉BSD侵犯了Unix的版权。

这场诉讼对BSD打击极大,所有的开发活动都被迫停止,用户人心惶惶,担心自己也遭到AT&T的追究,因此BSD的使用急剧减少。最后在1994年,双方达到和解,BSD才恢复开发。

AT&T与BSD之间的诉讼,是当代版权制度最恶劣的应用之一。

为什么这么说?

首先,起诉者其实与Unix毫无关系。这是AT&T经理层的决定,而不是开发者的决定。事实上,包括Ken Thompson在内的技术人员一直希望,公司能够公开源码。他们完全有理由这么要求,因为Unix从来不是AT&T的业务重点,最初是个人项目,后来也没有占用公司太多资源。销售Unix的利润,在公司全部业务中,几乎可以忽略不计。为了一点点钱,去打击一个使许多人受益的产品,何必这样做呢。

其次,AT&T根本不关心Unix的发展。它真正关心的是金钱和削弱对手。1994年,官司还没有结束,它就把Unix卖给了Novell公司,从此不再与Unix发生关系,官司也因此不了了之。

最后,所谓的侵权几乎是不存在的。因为Novell从AT&T买下Unix版权后,检查了BSD的源码,在18000个组成文件中删除了3个,并对其他文件做了一些小修改,然后BSD就重新获得了自由发布源码的许可。这意味着,至多只有千分之一的BSD代码有版权问题,但是就因为这千分之一的问题,导致百分之百的产品被迫中断,完全不符合比例原则。

所以,这场版权官司就是一家利益至上的公司,以微不足道的理由,为了一个自己根本不在乎的产品,悍然发动一场损人不利己的战争。

但是这场战争给Unix和BSD带来毁灭性的打击。

从八十年代中后期开始,AT&T固执地捍卫Unix版权,完全不顾它的创造者和开发者的愿望,导致Unix丧失活力、一蹶不振,大量开发者无法参与,只好离开了这个平台。

而BSD在1992~1994年期间,开发处于停滞,错过了发展的黄金时机。官司结束以后,又不幸发生分裂,变成了FreeBSD、NetBSD和OpenBSD三个版本。这些原因导致BSD直到今天,都还在操作系统的竞争中处在落后地位。

如果换个时间,官司的损失也许还没这么大。偏偏90年代初是计算机工业决定性的年代,错过了那几年,从此你就不要想翻身了。因为从80年代末期开始,Intel的80x86芯片有巨大的发展,性能快速上升,而成本快速下降,个人电脑的年代就要到来了。市场迫切需要能够运行在386芯片上的操作系统,但是Unix和BSD忙于打官司,都没有去做移植操作系统这件事。其他两个这样做的人,改变了人类历史。

一个是比尔·盖茨,他推出了Windows,占领了个人电脑市场,后来赚了几百亿美元。另一个是芬兰大学生Linus Torvalds,他想学习Unix,但是买不起工作站,就自己写了一个能在386上运行的Linux操作系统,现在全世界超过一半的网络服务器都在使用这个系统。Linus Torvalds后来说,如果他早知道BSD没有法律问题,并且可以被移植到386,他就会加入BSD的开发,而不是自己写一个。

Novell买到Unix版权后,也没在手里放多久,1995年又转手卖给了别人。从此,Unix原始版本的开发正式结束。

后来各个商业公司自己修改的Unix版本,比如Sun的Solaris,HP的HP-UX,IBM的AIX。

由于使用Unix有版权问题,而且AT&T特别是要求禁止对学生群体提供Unix系统源代码。使得当时大学里教学Unix系统的束缚很大。因此,当时的一个大学的教授,名字为Andrew Tanenbaum ,基于之前还在开源的Unix部分开发了一个可以运行于x86PC平台的系统,这个系统的名字为Minix,这个Minix系统的目的只是用于教学。

Minix没有任何代码抄袭Unix,所以它们之间并没有任何继承关系,由于Minix是教授一人所写,所以存在一些漏洞。这时候有使用者发现漏洞存在,想着去下载一些补丁或者自己写一些补丁来修补这些漏洞,修补之后发现效果不错,然后就建议教授利用这些补丁完善下Minix,结果呢,教授比较固执,意思是说:为了维持Minix的纯洁性,不需要任何外来代码。也就是说,根本不打算做商业发行,所以Minux保持了其最原始的风范。

image

1984年,Richard Stallman发起了开发自由软件的运动,并成立了自由软件基金会(Free Software Foundation,FSF)和GNU(GNU is Not Unix)项目。

image

当时发起这个自由软件运动和创建GNU项目的其实很简单,就是想开发一个类似Unix系统,并且是自由软件的完整操作系统,也就是要解决70年代末Unix版权问题以及软件源代码面临闭源的问题,这个系统叫做GNU操作系统。这个GNU系统后来没有流行起来。

GNU通用公共许可协议(GNU General Public License),允许用户任意复制、传递、修改及再发布,基于自由软件修改再次发布的软件,仍需遵守GPL.

image

1990年,芬兰赫尔辛基大学学生Linus Torvalds首次接触MINIX系统。

1991年,Linux Torvalds开始在MINIX上编写各种驱动程序等操作系统内核组件。

991年底,Linus Torvalds公开了Linux内核源代码0.02版,注意,这里公开的Linux内核源码并不是我们现在使用的Linux系统的全部,而仅仅是Linux内核kernel部分的代码。受到大家的肯定,相当多的朋友一起投入这个工作中。由于Linux kernel的发展是由虚拟团队所达成的,大家都是透过网络取得Linux的核心原始码,经由自己精心改造后再回传给Linux社群,进而一步一步的发展完成完整的Linux系统,至于Linus Torvalds是这个集团中的发起者。由于这个群策群力的缘故,Linus Torvalds将Linux定为同样造福大家的GNU授权模式!

1993年,Linux1.0版发行,Linux转向GPL版权协议。

现在的GNU系统通常是使用Linux系统的内核,以及使用了GNU项目贡献的一些组件加上其它相关程序组成,这样的组合被称为GNU/Linux操作系统。

image

Linux系统之所以受到广大计算机爱好者的喜爱,主要原因有两个:
一是,Linux属于自由软件,用户不用支付任何费用就可以获得系统和系统的源代码,并且可以根据自己的需要对源代码进行必要的修改,无偿使用,无约束地自由传播。
二是,Linux具有Unix的全部优秀特性,任何使用Unix操作系统或想要学习Unix操作系统的人,都可以通过学习Linux来了解Unix,同样可以获得Unix中的几乎所有优秀功能,并且Linux系统更开放,社区开发和全世界的使用者也更活跃。

大型机与嵌入式系统使用很多样化的操作系统。在服务器方面Linux、UNIX和Windows Server占据了市场的大部分份额。在超级计算机方面,Linux取代Unix成为了第一大操作系统。在世界超级计算机500强排名中基于Linux的超级计算机占据了462个席位,比率高达92%。个人电脑系统则windows一占据高不下,随着智能手机的发展,Android和iOS已经成为目前最流行的两大手机操作系统。

Linux发行版本

image

https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg

Marc Ewing早在卡内基梅隆大学读书的时候就戴着他祖父的红色曲球帽. Marc在Marc Ewing大学常把自己的软件命名为Red Hat — Red hat 1, Red Hat 2 用来区别他人的软件. 所以当他开始自己的Linux项目, 自然就会命名为RedHat Linux。

1993年, Bob Young 建立了ACC公司,营销Linux和UNIX的支持软件和书籍杂志
1995年, Bob Young 收购了Marc Ewing的业务,合并后的ACC公司成为新的Red Hat软件公司,发布了Red Hat Linux 2.0

标签:操作系统,基础,汤普逊,Unix,Linux,BSD,AT&T
来源: https://www.cnblogs.com/hans-python/p/15661735.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有