请问linux是如何产生和其发展的过程

请问linux是如何产生和其发展的过程,第1张

一、简单的说: 一个名叫Linus Torvalds 的芬兰大学生想要了解Intel的新CPU386。他认为比较好的学习方法是自己编写一个 *** 作系统内核。出于这种目的,加上他对当时Unix 变种版本(即Minix)对于80386类机器的脆弱支持十分不满,他决定要开发出一个全功能的、支持POSIX标准的、类Unix的 *** 作系统内核,该系统吸收了BSD和System V的优点,同时摒弃了它们的缺点。Linus独立把这个内核开发到0.02 版,这个版本已经可以运行gcc、bash 和很少的一些应用程序。这些就是他开始的全部工作了。后来,他又开始在因特网上寻求广泛的帮助。

二、具体的分析: Linux *** 作系统的诞生、发展和成长过程依赖于以下五个重要支柱:

UNIX *** 作系统、MINIX *** 作系统、 GNU 计划、 POSIX 标准 、 Internet 网络。

UNIX *** 作系统

Linux *** 作系统是UNIX *** 作系统的一个克隆版本。UNIX *** 作系统是美国贝尔实验室的Ken.Thompson和Dennis Ritchie 于1969 年夏在DEC PDP-7 小型计算机上开发的一个分时 *** 作系统。Ken Thompson 为了能在闲置不用的PDP-7 计算机上运行他非常喜欢的星际旅行(Space travel)游戏,于是在1969 年夏天乘他夫人回家乡加利福尼亚渡假期间,在一个月内开发出了UNIX *** 作系统的原型。当时使用的是BCPL 语言(基本组合编程语言),后经Dennis Ritchie 于1972 年用移植性很强的C语言进行了改写,使得UNIX 系统在大专院校得到了推广。

MINIX *** 作系统

MINIX 系统是由Andrew S. Tanenbaum(AST)开发的。AST 是在荷兰Amsterdam 的Vrije 大学数学与计算机科学系统工作,是ACM 和IEEE 的资深会员(全世界也只有很少人是两会的资深会员)。MINIX 是他1987 年编制的,主要用于学生学习 *** 作系统原理。到1991 年时版本是1.5。目前主要有两个版本在使用:1.5 版和2.0 版。当然目前MINIX 系统已经是免费的,可以从许多FTP 上下载。

对于Linux 系统,他后来曾表示对其开发者Linus的称赞。但他认为Linux的发展很大原因是由于他为了保持MINIX 的小型化,能让学生在一个学期内就能学完,因而没有接纳全世界许多人对MINIX的扩展要求。因此在这样的前提下激发了Linus 编写Linux 系统。当然Linus 也正好抓住了这个好时机。

作为一个 *** 作系统,MINIX 并不是优秀者,但它同时提供了用C 语言和汇编语言编写的系统源代码。这是第一次使得有抱负的程序员或hacker 能够阅读 *** 作系统的源代码。在当时,这种源代码是软件商们一直小心守护着的秘密。

GNU计划

软件产业在70年代成就了两位针锋相对的领袖人物,来自哈佛大学的比尔·盖茨和Richard M.Stallman。前者宣布了Copyright(版权)时代的到来,并构建了微软帝国的辉煌;后者于1984年创立自由软件体系GNU,拟定普遍公用版权协议(GeneralPublicLicense,简称GPL),今天Linux的成功就得益于GPL协议。

所有GPL协议下的自由软件都遵循着Richard M. Stallman的"Copyleft"(非版权)原则:即自由软件允许用户自由拷贝、修改和销售,但是对其源代码的任何修改都必须向所有用户公开。

GNU 计划和自由软件基金会FSF(the Free Software Foundation)是由Richard M. Stallman 于1984 年一手创办的。旨在开发一个类似UNIX 并且是自由软件的完整 *** 作系统:GNU 系统(GNU 是"GNU's Not Unix"的递归缩写,它的发音为"guh-NEW")。

各种使用Linux 作为核心的GNU *** 作系统正在被广泛的使用。虽然这些系统通常被称作"Linux",但是Stallman 认为,严格地说,它们应该被称为GNU/Linux系统。

到上世纪90 年代初,GNU 项目已经开发出许多高质量的免费软件,其中包括有名的emacs 编辑系统、bash shell 程序、gcc 系列编译程序、gdb 调试程序等等。这些软件为Linux *** 作系统的开发创造了一个合适的环境。这是Linux 能够诞生的基础之一,以至于目前许多人都将Linux *** 作系统称为“GNU/Linux” *** 作系统。

POSIX标准

POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的一簇标准。该标准是基于现有的UNIX 实践和经验,描述了 *** 作系统的调用服务接口。用于保证编制的应用程序可以在源代码一级上在多种 *** 作系统上移植和运行。它是在1980 年早期一个UNIX 用户组(usr/group)的早期工作基础上取得的。该UNIX 用户组原来试图将AT&T 的System V *** 作系统和BerkeleyCSRG 的BSD *** 作系统的调用接口之间的区别重新调和集成。并于1984 年定制出了/usr/group 标准。

关于POSIX标准的制定过程:略。

在90 年代初,POSIX 标准的制定正处在最后投票敲定的时候,那是1991-1993 年间。此时正是Linux刚刚起步的时候,这个UNIX 标准为Linux 提供了极为重要的信息,使得Linux 能够在标准的指导下进行开发,并能够与绝大多数UNIX *** 作系统兼容。在最初的Linux 内核源代码中(0.01 版、0.11 版)就已经为Linux 系统与POSIX 标准的兼容做好了准备工作。在Linux 0.01 版内核的/include/unistd.h 文件中就已经定义了几个有关POSXI 标准要求的符号常数,而且Linus 在注释中已写道:“OK,这也许是个玩笑,但我正在着手研究它呢”。

可参考下《Linux就该这么学》了解更详细的Linux知识。

从 Unix 到 Linux 这一段历史

为什么大家常常会说, Linux 是很稳定的一套 *** 作系统呢?这是因为, Linux 他有个老前辈,那就是 Unix 家族啰!有这个前辈的提携,让 Linux 这个小老弟很快的就成为一套稳定而优良的 *** 作系统啦!所以,底下我们来谈一谈 Unix 到 Linux 的这一段历史吧!

早在 Linux 出现之前的二十年 ( 大约在 1970 年代 ), 就有一个相当稳定而成熟的 *** 作系统存在了!那就是 Linux 的老大哥『 Unix 』是也!怎么这么说呢?!他们这两个家伙有什么关系呀?这里就给他说一说啰!众所皆知的, Linux 的核心是由 Linus Torvalds 在 1991 年的时候给他开发出来的,并且丢到网络上提供大家下载,后来大家觉得这个小东西 ( Linux Kernel ) 相当的小而精巧,所以慢慢的就有相当多的朋友投入这个小东西的研究领域里面去了!但是为什么这的小东西这么棒呢?!然而又为什么大家都可以免费的下载这个东西呢?!嗯!等鸟哥慢慢的唬xx....喔不!听我慢慢的道来!

一个没有完成的梦想: Bell, MIT 与 GE 的『 Multics 』系统

早期的计算机并不像现在的个人计算机一般,他可不是一般人碰的到的玩意儿,除非是军事或者是高科技用途才有可能接触到这类的 Computer !而如前面所言,有计算机硬件还需要 *** 作系统的配合才能够发挥计算机的效能,不过,在那个年代,由于计算机算是『奢侈品』,喔~应该说是『贵重物品』,所以,可能一间学校就只有一部大型主机当然,那个年代所谓的大型主机仍然无法提供适度的运算能力的。不过,既然只有一部大型主机,然而有许许多多的教师、学生要想要来使用,怎么办呢?为了解决这个问题,在 1960 年代初期,麻省理工学院 ( MIT ) 发展了所谓的『兼容分时系统 ( Compatible Time-Sharing System, CTSS )』,就字面上的意义来看,他主要让大型主机可以提供多个终端机联机进入主机使用主机的资源, ( 附带一提,当时的终端机 ( Terminal ) 本身并没有软件或者可供使用的资源,这些终端机要能使用,一定必需要联机登入主机之后,才能够使用主机的资源来工作!) 当时可以让约 30 位使用者联机使用主机。而为了让这个分时系统更加的强大,所以,在 1965 年前后由贝尔研究室 ( Bell )、 麻省理工学院 ( MIT ) 及奇异电器公司 ( GE ) 开始来共同开发一个名为 Multics 的大型计画,目标是想让大型主机可以联机 300 位以上的使用者。不过,在奋斗了四年之后,该计画仍然宣告不治...喔!是失败啦!(注: Multics 有复杂、多数的意思。)

一个小型档案系统的产生:1969 年 Ken Thompson 的小型 file server system

在复杂的 Multics 系统的计画失败后,贝尔研究室当然就退出该计画。就在这个计画解散之后,曾经参与 Muitics 的贝尔研究室的成员 Ken Thompson 由于自己工作上的需求,需要一套档案存取的小型 *** 作系统,便在 1969 年的时候以 DEC 公司 ( Digital Equipment Corporation ) 的计算机 PDP-7 为硬件基准,设计了一个适合自己工作环境的小型档案系统,其中也含有他自行开发的一些小工具。那个系统就是最早期的 Unix 的源头!当初 Ken 设计这个档案系统时,主要是为了自己的存取方便所设计的简单 OS ,因此将原有的 Multics 系统大幅度的简化,不过,在当时还并没有 Unix 这个名词的出现!

Unix 的正式诞生:1973 年 Ritchie 等人以 C 语言写出第一个正式 Unix 核心

由于 Thompson 写的那个 *** 作系统实在太好用了,所以在 Bell 研究室内部广为流传,并且数度经过改版。到了 1973 年, Bell 研究室的 Dennis Ritchie 等人为了让这个系统的执行效能更佳化,所以使用编译效能更好的 C 语言将原有的 1969 年的那个系统之核心大幅度的改写过,并且确定该 *** 作系统名称为 Unix,呵呵!那就是最早的 Unix *** 作系统啰!不过,由于这个 *** 作系统是由这一群工程师所开发完成的,而且使用者也大多是这方面的工程师,因此造成了后来 Unix 系统接口较难被一般使用者接受的情况 @_@ (注: 相对于 Multics ,Unix 具有单一的意思!)

重要的 Unix 分支: 1977 年 BSD 的诞生

在 Unix 早期的发展中,有一件相当重要的事情,那就是 BSD 的诞生!由于 C 语言是一种高级语言,他可以被应用在不同的硬件架构上面,而 Unix 本身就是 C 语言写成的!在 Unix 发表之后, 柏克莱大学 ( Berkeley ) 的教授对于这个 *** 作系统相当的有兴趣,在经过取得 Unix 的原始码,并且几经修改之后,终于在 1977 年发表了第一代的 Berkeley Software Distribution ( BSD ) 。这个 BSD 是 Unix 的一个分支,他的发展对于 Unix 有相当大的影响,例如后来的 Sun 公司就是使用 BSD 发展的核心进行自己商业的 Unix 版本的发展的!

1991年,芬兰赫而辛基的学生LinusTorvalds为了自己使用与学习的需要,他开发了类似Unix且运行在80386平台上运行的 *** 作系统,命名为Linux。为了使每个需要它的人都能够容易的得到它,LinusTorvalds把它变成了"自由"软件。 感谢Internet的飞速发展使得全世界的程序开发员有了一种全新的有效沟通方法。还要感谢在数年之前由RichardStallman主持的GNU项目。Linux在几年后变成了一个完整的 *** 作系统。它的能量得到了释放,变得非常可靠,并且每天都会有新的改进加入进去。 为了使Linux变得容易使用,Linux也有了许多发布版本,发布版实际上就是一整套完整的程序组合。现在已经有许多不同的Linux发行版和各自的版本号,为了不产生混淆,我们先解释一些常提到的术语。 当我们提到Linux时,一般是指"RealLinux",即内核,是所有UNIX *** 作系统的“心脏”。但光有linux并不能成为一个可用的 *** 作系统。还需要许多软件包,编译器,程序库文件,Xwindow系统等等。因为组合方式不同,面向用户对象不同,所以这就是为什么有许多不同的Linux发行版的原因。 Linux的特点 Linux *** 作系统在短短的几年之内得到了非常迅猛的发展,这与Linux具有的良好特性是分不开的。Linux包含了Unix的全部功能和特性。简单的说,Linux具有以下主要特性: 1.开放性 开放性是指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互连。 2.多用户 多用户是指系统资源可以被不同用户各自拥有使用,即每个用户对自己的资源(例如:文件、设备)有特定的权限,互不影响。Linux和Unix都具有多用户的特性。 3.多任务 多任务是现代计算机的最主要的一个特点。它是指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux系统调度每一个进程,平等地访问微处理器。由于CPU的处理速度非常快,其结果是,启动的应用程序看起来好像在并行运行。事实上,从处理器执行一个应用程序中的一组指令到Linux调度微处理器再次运行这个程序之间只有很短的时间延迟,用户是感觉不出来的。 4.良好的用户界面 Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界面是基于文本的命令行界面,即shell,它既可以联机使用,又可存在文件上脱机使用。shell有很强的程序设计能力,用户可方便地用它编制程序,从而为用户扩充系统功能提供了更高级的手段。可编程Shell是指将多条命令组合在一起,形成一个Shell程序,这个程序可以单独运行,也可以与其他程序同时运行。 系统调用给用户提供编程时使用的界面。用户可以在编程时直接使用系统提供的系统调用命令。系统通过这个界面为用户程序提供低级、高效率的服务。Linux还为用户提供了图形用户界面。它利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易 *** 作、交互性强的友好的图形化界面。 5.设备独立性 设备独立性是指 *** 作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一样, *** 纵、使用这些设备,而不必知道它们的具体存在形式。 具有设备独立性的 *** 作系统,通过把每一个外围设备看作一个独立文件来简化增加新设备的工作。当需要增加新设备时、系统管理员就在内核中增加必要的连接。这种连接(也称作设备驱动程序)保证每次调用设备提供服务时,内核以相同的方式来处理它们。当新的及更好的外设被开发并交付给用户时, *** 作允许在这些设备连接到内核后,就能不受限制地立即访问它们。设备独立性的关键在于内核的适应能力。其他 *** 作系统只允许一定数量或一定种类的外部设备连接。而设备独立性的 *** 作系统能够容纳任意种类及任意数量的设备,因为每一个设备都是通过其与内核的专用连接独立进行访问。 Linux是具有设备独立性的 *** 作系统,它的内核具有高度适应能力,随着更多的程序员加入Linux编程,会有更多硬件设备加入到各种Linux内核和发行版本中。另外,由于用户可以免费得到Linux的内核源代码,因此,用户可以修改内核源代码,以便适应新增加的外部设备。 6.提供了丰富的网络功能 完善的内置网络是Linux的一大特点。Linux在通信和网络功能方面优于其他 *** 作系统。其他 *** 作系统不包含如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。 支持Internet是其网络功能之一。Linux免费提供了大量支持Internet的软件,Internet是在Unix领域中建立并繁荣起来的,在这方面使用Linux是相当方便的,用户能用Linux与世界上的其他人通过Internet网络进行通信。 文件传输是其网络功能之二。用户能通过一些Linux命令完成内部信息或文件的传输。 远程访问是其网络功能之三。Linux不仅允许进行文件和程序的传输,它还为系统管理员和技术人员提供了访问其他系统的窗口。通过这种远程访问的功能,一位技术人员能够有效地为多个系统服务,即使那些系统位于相距很远的地方。 7.可靠的系统安全 Linux采取了许多安全技术措施,包括对读、写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8543756.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-17
下一篇2023-04-17

发表评论

登录后才能评论

评论列表(0条)

    保存