精华内容
下载资源
问答
  • LinuxLinux是如何诞生的?

    千次阅读 2019-03-31 11:55:42
    本文主要讲述Linux诞生背景以及一些小故事,其中,还清晰地讲述了Unix、BSD、GUN、GPL等名词的含义及来源。

    本文主要讲述Linux的诞生背景以及一些小故事,其中,还清晰地讲述了Unix、BSD、GUN、GPL等名词的含义及来源。


    Table of Contents

    Unix

    C语言

    BSD

    GUN

    GPL

    Linux

    Linux的内核发展


    注意:本文学习整理于网络,具体来源已忘记了,如有侵权,请联系我删除,一切都为了学习和推动行业的进步!

    故事,还要从Unix的诞生开始讲起:


    Unix

    MULTICS项目:

    1. 二十世纪六十年代时,大部份计算机都是采用批处理的方式(也就是说,当作业积累一定数量的时候,计算机才会进行处理)
    2. 那时,我们熟知的美国电话及电报公司(AT&T)、通用电器公司(G.E.)及麻省理工学院(MIT)计划合作开发一个多用途、分时及多用户的操作系统,也就是这个MULTICS,其被设计运行在GE-645大型主机上。
    3. 不过,这个项目由于太过复杂,整个目标过于庞大,糅合了太多的特性,进展太慢,几年下来都没有任何成果,而且性能都很低。
    4. 于是到了1969年2月,贝尔实验室决定退出这个项目

    Ken Thompson和Dennis Ritchie:

    • 贝尔实验室中的有个叫 Ken Thompson 的人(如下图),他为 MULTICS 这个操作系统写游戏了个叫“Space Travel”的游戏,在 MULTICS 上经过实际运行后,他发现游戏速度很慢而且耗费昂贵 —— 每次运行会花费75美元。

    • 退出MULTICS项目以后。他为了让这个游戏能玩,所以他找来Dennis Ritchie(如下图)为这个游戏开发一个极其简单的操作系统。这就是后来的Unix

    • 值得一提的是,当时他们本想在DEC-10(可以把它看做是一个硬件平台)上写,后来没有申请到,只好在实验室的墙角边找了一台被人遗弃的 Digital PDP-7 的迷你计算机进行他们的计划,这台计算机上连个操作系统都没有,于是他们用汇编语言仅一个月的时间就开发了一个操作系统的原型。

    Unix诞生:

    1. 他们的同事Brian Kernighan非常不喜欢这个系统,嘲笑Ken Thompson说:“你写的系统好真差劲,干脆叫Unics算了。” Unics 的名字就是相对于 MULTICS 的一种戏称,后改成了Unix。
    2. 于是,Unix 就在这样被游戏和玩笑创造了,当时是1969年8月。也就是这一年,Linux 之父 Linus Torvalds 在芬兰出生了。
    3. 1971年,Ken Thompson 写了充分长篇的申请报告,申请到了一台PDP-11/24的机器。于是Unix第一版出来了。在一台PDP-11/24的机器上完成。这台电脑只有24KB的物理内存和 500K 磁盘空间。
    4. Unix占用了12KB的内存,剩下的一半内存可以支持两用户进行Space Travel的游戏。而著名的 fork() 系统调用也就是在这时出现的。

    C语言

    C语言诞生背景:

    1. 到了1973年的时候,Ken Thompson 与 Dennis Ritchie 感到用汇编语言做移植太过于头痛,他们想用高级语言来完成第三版Unix,对于当时完全以汇编语言来开发程序的年代,他们的想法算是相当的疯狂。
    2. 一开始他们想尝试用Fortran,可是失败了。后来他们用一个叫BCPL的语言开发,他们整合了BCPL形成B语言,后来Dennis Ritchie觉得B语言还是不能满足要求,就是就改良了B语言,这就是今天的大名鼎鼎的C语言
    3. 于是,Ken Thompson 与 Dennis Ritchie 成功地用C语言重写了 Unix 的第三版内核。至此,Unix这个操作系统修改、移植相当便利,为Unix日后的普及打下了坚实的基础。而Unix和C完美地结合成为一个统一体,C与Unix很快成为世界的主导。

    Unix的流行:

    1. Unix 的第一篇文章 “The UNIX Time Sharing System”Ken Thompson 和 Dennis Ritchie 于1974年7月的 the Communications of the ACM 发表。这是UNIX与外界的首次接触。
    2. 结果引起了学术界的广泛兴趣并对其源码索取,所以,Unix第五版就以“仅用于教育目的”的协议,提供给各大学作为教学之用,成为当时操作系统课程中的范例教材。各大学公司开始通过 Unix 源码对 Unix 进行了各种各样的改进和扩展。于是,Unix 开始广泛流行。

    BSD

    BSD的诞生:

    1. 1977 年,Berkeley 大学的 Bill Joy 针对他的机器修改 UNIX 源码,称为BSD(Berkeley Software Distribution),Bill Joy 是 Sun 公司的创始人(就是Java诞生的那个公司)
    2. 1978年,对 Unix 而言是革命性的一年;因为学术界的老大柏克利大学,推出了一份以第六版为基础,加上一些改进和新功能而成的 Unix。这就是著名的“1 BSD(1st Berkeley Software Distribution)”,开创了Unix的另一个分支:BSD 系列。 同时期,AT&T成立USG,将 Unix变成商业化的产品。

     

    BSD-Unix和AT&T-Unix:

    1. 从此,BSD的 Unix 便和AT&T 的Unix 分庭抗礼,Unix就分为System IV 和 4.x BSD这两大主流,各自蓬勃发展。
    2. BSD对UNIX最重要的贡献之一是TCP/IP。BSD 有8个主要的发行版中包含了TCP/IP:4.1c、4.2、4.3、4.3-Tahoe、4.3-Reno、Net2、4.4以及 4.4-lite。这些发布版中的TCP/IP代码几乎是现在所有系统中TCP/IP实现的前辈,包括AT&T System V UNIX 和Microsoft Windows中的TCP/IP都参照了BSD的源码。
    3. 1979 年,UNIX 发布 System V,用于个人计算机;
    4. 1984 年,因为 UNIX 规定:“不能对学生提供源码”,Tanenbaum老师自己编写兼容于 UNIX 的Minix,用于教学;

     

    Unix的私有商业化:

    1. 这是一个AT&T妄图私有化的Unix的时代。为了私有化Unix,1986年IEEE指定了一个委员会制定了一个一个开放作业系统的标准,称为 POSIX (Portable Operating Systems Interface)。最后加上个X,不知道是为了好听,还是因为这本质上是UNIX的标准。
    2. 当然,AT&T的Unix取得了这个标准制订战争的胜利,还取得了Unix这个注册商标。此时BSD的拥护者自喻为冷酷无情的公司帝国的反抗军。就销售量来说,AT&T UNIX始终赶不上BSD/Sun。到1990年,AT&T与BSD版本已难明显区分,因为彼此都有采用对方的新发明。
    3. 这段时期,从实验室出来的被全世界所分享的Unix,正处于被私有化的关键时期。

     

    BSD分支:

    1. FreeBSD: FreeBSD 是最受欢迎的 BSD,针对高性能和易用性。它支持英特尔和 AMD 的32位和64位处理器。
    2. NetBSD: NetBSD 被设计运行在几乎任何架构上,支持更多的体系结构。在他们的主页上的格言是"理所当然,我们运行在 NetBSD 上"。
    3. OpenBSD: OpenBSD 为最大化的安全性设计的 —— 这不仅仅它宣称的功能,在实践中也确实如此。它是为银行和其他重要机构的关键系统设计的。
    • 还有两个其他的重要 BSD 操作系统:
      1. DragonFly BSD: DragonFly BSD 的设计目标是提供一个运行在多线程环境中的操作系统 —— 例如,计算机集群。
      2. Darwin / Mac OS X: Mac OS X 实际上基于 Darwin 操作系统,而 Darwin 系统基于 BSD。它与其他的 BSD 有点不同,虽然底层内核和其他的软件是开源代码(BSD 代码),但操作系统的大部分是闭源的 Mac OS 代码)。苹果在 BSD 基础上开发了 Mac OS X 和 iOS,这样他们就不必写操作系统底层,就像 谷歌在 Linux 基础上开发 android 系统一样。

    GUN

    诞生背景:

    1. AT&T的这种商业态度(闭源,不开放源代码,还收费,就像是现今的Windows),让当时许许多多的Unix的爱好者和软件开发者们感到相当的痛心和忧虑,他们认为商业化的种种限制并不利于产生的发展,相反还能导制产品出现诸多的问题。随着商业化Unix的版本的种种限制和诸多问题,引起了大众的不满和反对。
    2. 于是,大家开始有组织地结成“反叛联盟”以此对抗欺行罢市的AT&T等商业化行为。

     

    Richard Stallman

    • 此时,一个名叫Richard Stallman的领袖出现了(如下图),他认为Unix是一个相当好的操作系统,如果大家都能够将自己所学贡献出来,那么这个系统将会更加的优异!他倡导的Open Source的概念,就是针对Unix这一事实反对实验室里的产品商业化私有化。

    • 尽管Stallman既不是、也从来没有成为一个Unix程序员,但在后1980的大环境下,实现一个仿Unix操作系统成了他追求的明确战略目标。
    • Richard Stallman早期的捐助者大都是新踏入Unix土地的老牌ARPANET黑客,他们对代码共享的使命感甚至比那些有更多Unix背景的人强烈。

    GNU

    • 1984 年,Richard Stallman开始 GNU(GNU’s Not Unix)项目,计划开发一套与Unix相互兼容的操作系统。Stallman是一个有理想的人,他想建立一个完全自由的操作系统,公开源码,任何人都可以修改该系统。他给这个操作系统取的名字叫GNU

    • 1985 年 Richard Stallman 又创办 FSF(Free Software Foundation)基金会来为 GNU 计划提供技术、法律以及财政支持。
    • 尽管 GNU 计划大部分时候是由个人自愿无偿贡献,但 FSF 有时还是会聘请程序员帮助编写。当 GNU 计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。当中最著名的就是之后被 Red Hat 兼并的 Cygnus Solutions。

    Richard Stallman的GNU项目核心:

    1. 产品:GCC、Emacs、Bash Shell、GLIBC;
    2. 倡导:自由软件;自由软件指用户可以对软件做任何修改,甚至再发行,但是始终要挂着 GPL 的版权; 自由软件是可以卖的,但是不能只卖软件,而是卖服务、手册等;
    3. GNU 的软件缺乏一个开放的平台运行,只能在 UNIX 上运行;

     

    1. GNU组织的建立,延续了当年Unix刚出现时的情形,并为这种情形建立了可靠的法律和财务保障。GNU 工程十几年以来, 已经成为一个对软件开发主要的影响力量, 创造了无数的重要的工具。例如:强健的编译器(如GCC),有力的文本编辑器,甚至一个全功能的操作系统。从那时开始,许多程序员聚集起来开始开发一个自由的、高质量、易理解的软件,让这使得Unix社区生机勃勃,一派繁荣景象。
    2. 要提供一个完整的操作系统,需要包含内核、编译器、编辑工具、C库、Shell等等一系列重要组成部件。自90年代发起这个计划以来,GNU 开始大量的产生或收集各种系统所必备的组件,像是函数库、编译器、调式工具、文本编辑器、网站服务器,以及一个Unix的使用者接口(Unix shell)等等。
    3. 到了1990年左右的时候,GUN社区已经大成气候了,但这时还缺一个内核,Stallman开始开发内核,取名为Hurd,但由于各种原因Hurd被耽误了。所以,GNU一直没有操作系统的kernel。正当Richard Stallman在为操作系统内核伤脑筋的时候,Linux 出现了。

    GUN/Linux

    1. 由于Linus Torvalds在1991年开发了的Linux内核,由于也遵循自由软件之精神,跟GUN完美的融合在一起,终于形成了一个完美的操作系统。
    2. 革命成功后总要分江山的,从Stallman的观点来看,Linux仅仅是整个GUN项目的一部分,因此我们目前含义上的Linux操作系统应该叫GUN/Linux,这样才能更加贴切的说明GUN和Linux之间的关系,但这个提法没有多少人真正的响应。

    GPL

    GPL诞生背景:

    1. 计算机软件作为人类的知识财富,为人类社会的发展起到了巨大的作用,但长期以来软件源码作为个人或公司的私有财产受到严格的保密,很难做到像文学艺术作品一样地进行公开的交流,很大程度上造成软件的低水平,重复劳动严重,在一定意义上制约了软件的发展。
    2. 就像是Microsoft的Windows操作系统,就只有该公司内部能够查看源代码和修改操作。

    GPL

    • 1985 年,Richard Stallman提出“应将软件源码看成人类共同拥有的知识财富,应该公开地自由交换、修改”。于是,为了避免 GNU 开发的自由软件被其他人用作专利软件, Richard Stallman创建 GPL(General Public License)版权声明

    该授权书主要有以下几点:

    • 自由软件(free software)指的是源码自由,不是价格
    • 自由软件必须附带程序源代码,但可收取费用;
    • 任何人都可以自由分发自由软件并收取费用,但必须列明原创者姓名
    • 任何人都可以修改源代码,但必须列明修改人名字,以保护原创者名誉;
    • 任何人都可以采用源代码中的某一段,但其开发之软件必须也为自由软件(例如,如果 Netscap 是自由软件,而 IE 采用了其中的部份源代码,则 IE 也必须成为自由软件);
    • 任何自由软件的衍生品也必须是自由软件
    • 自由软件没有担保,以保护分发者。
    1. 1991 年,Richard Stallman 对授权做了微小的修改,即所谓的通用公共授权第 2 版。同时,他也推出了更宽松的通用公共授权,用于自由程序库。这一系列的授权有效地保护了自由软件不受商业软件的非法侵犯,例如,1998 年 Netscap 决定采用与 GPL 差不多的 NPL(Netscap Public Liscense),这样一来,Microsoft 就无法将 Netscap 中的源代码运用在 IE 上,除非它们也要成为自由软件。
    2. 至此,在 GPL 下人们就可以自由交流、修改软件源码了,这一协议极大地推动了整个计算机软件行业的发展,并带来了以下明显的益处:
    • 对于广大计算机软件的学习者来说,可以直接从源码中吸取营养,缩短学习的时间,提高学习的效率,少走弯路,再也不必花大量时间去看那些不知正确与否的“未解之谜”了,学习在某种程度上变成了一件轻松愉快的事情了。
    • 可以集中大家的智慧发展软件,避免重复劳动。一个软件只有公开源码,通过很多人的研究才有可能发现其中深藏的错误,大家才能公开探讨相关的问题,并进行改进,在大家的共同“挑剔与监督”下才有可能编写出尽善尽美的软件来。

     

    GPL总结:

    1. GPL 协议的核心就是要对源码进行公开,并且允许任何人修改源码,但是只要使用了 GPL 协议的软件源码,其衍生软件也必须公开源码,准许其他人阅读和修改源码,即 GPL 协议具有继承性
    2. 另一个问题就是 GPL 软件并非就是免费软件,这里所说的自由软件是指对软件源码的自由获得与自由使用、修改,软件开发者不但可以通过服务来收费,而且还可以通过出售 GPL 软件来获利
    3. 适应 GPL 协议的软件一般都是自由软件,自由软件是指一件可以让用户自由复制、使用、研究、修改、分发等,而不附带任何条件的软件。

    Linux

    起源:

    1. 1991 年,芬兰赫尔辛基大学的研究生 Linus Torvalds 基于 gcc、bash 开发了针对 i386 机器的 Linux 内核;Linus Torvalds最初是用汇编语言写了一个在80386保护模式下处理多任务切换的程序,后来从 Minix(Andy Tanenbaum教授所写的很小的 Unix 操作系统,主要用于操作系统教学)得到灵感,进一步产生了自认为狂妄的想法——写一个比 Minix 更好的Minix,于是开始写了一些硬件的设备驱动程序,一个小的文件系统。这样0.0.1版本的 Linux 就出来了,但是它只具有操作系统内核的勉强的雏形,甚至不能运行,你必须在有Minix的机器上编译以后才能玩。
    2. 8月25号 : 21岁的芬兰学生Linus Benedict Torvalds 在comp.os.minix 新闻组上宣布了它正在编写一个免费的操作系统。9月1号 : Linux 0.01在网上发布。
    3. 这时候Linus已经完全着迷而不想停止,决定踢开 Minix,于是在1991年10 月5号发布Linux 0.0.2版本,在这个版本中已经可以运行 bash 和 gcc。

     

    1. 从一开始,Linus就决定自由扩散Linux,包括原代码,随即Linux引起黑客们(hacker)的注意,通过计算机网络加入了Linux的内核开发。Linux倾向于成为一个黑客的系统——直到今天,在Linux社区里内核的开发被认为是真正的编程。
    2. 由于一批高水平黑客的加入,使Linux 发展迅猛,几乎一两个礼拜就有新版或修正版的出现,到1993年底94年初,Linux 1.0 终于诞生了!Linux 1.0已经是一个功能完备的操作系统,而且内核写得紧凑高效,可以充分发挥硬件的性能,在4M内存的80386机器上也表现得非常好,至今人们还在津津乐道。

     

    命名:

    1. Linus Torvalds本要把他的发时叫做Freax—“fread”“free”和“x”(暗指Unix)的合成词。Tux.png在开发系统的前半年里,他把文件以文件名“Freax”存储。Torvalds考虑过Linux这个名字,但是因为觉得它过于自我本位而放弃了使用它。
    2. 为便于开发,在1991年9月,他把那些文件上传到了赫尔辛基工业大学(HUT)的FTP服务器(ftp.funet.fi)。Torvalds在HUT负责管理那个服务器的同事Ari Lemmke,觉得“Freax”这个名字不是很好,就在不咨询Torvalds的情况下,把项目的名字改成了“Linux”。
    3. 但是之后,Torvalds也同意“Linux”这个名字了:“经过多次讨论,他承认Linux这个名字更好。在0.01版本Linux的源代码的makefile里仍然使用‘Freax'这个名字,在之后‘Linux'这个名字才被使用。

     

    Linux标志:

    1. 1994年发表Linux正式核心1.0的时候,大家要Linus Torvalds想一只吉祥物,他想起曾经在澳大利亚的一个动物园里被企鹅咬过,干脆就以企鹅来当吉祥物了!
    2. 更容易接受的说法是:企鹅代表南极,而南极又是全世界共有个一块陆地,不属于任何国家。也就是说Linux不属于任何商业公司,是全人类每个人都可以分享的一项技术成果。

     

    GNU与Linux:

    1. Linux 的历史是和GNU紧密联系在一起的。从1983年开始由Richard Stallman提出的GNU计划致力于开发一个自由并且完整的类Unix操作系统,包括软件开发工具和各种应用程序。
    2. 到1991年 Linux 内核发布的时候,GNU已经几乎完成了除了系统内核之外的各种必备软件的开发。在 Linus Torvalds 和其它开发人员的努力下,GNU组件可以运行于Linux内核之上。整个内核是基于 GNU 通用公共许可,也就是GPL(GNU General Public License,GNU通用公共许可证)的,但是Linux内核并不是GNU 计划的一部分

     

    1992年1月5号: Linux v0.12 release 版本的内核重新以GUN GPL的协议发布。

    1. 原来的许可证是禁止任何商业用途的。通过这次协议变更,发布和出售修改或未修改版的Linux成为了可能,只要你将这些复制版本以相同的GPL许可证发布,并且有相对应完整的源代码。
    2. 在后来的一次采访中,Linus对这次许可证的更改说了这样一句话(让Linux遵守GPL绝对是我干过的最正确的事):" Making Linux GPL'd was definitely the best thing I ever did."
    3. 1月29号: Andrew S. Tanenbaum向comp.os.minix邮件列表发送了一封名为LINUX is obsolete的邮件。总的来说,这次被一些人升级为“战火”的争论是关于Linux和内核架构的。Tanenbaum争辩说微内核比宏内核更加高级,所以Linux是过时的。
    4. 4月5号: 第一个Linux新闻组,comp.os.linux由Ari Lemmke提议和开通。
    5. 5月21号: Peter MacDonald 发布第一个独立的Linux安装包SLS。可以通过软盘安装,包括比较前沿的TCP-IP网络支持和X Window系统。建议至少预留10M的磁盘空间来安装。
    • 严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和应用程序的操作系统(也被称为GNU/Linux)。基于这些组件的Linux软件被称为Linux发行版。
    • 一般来讲,一个Linux发行套件包含大量的软件,比如软件开发工具,数据库,Web服务器(例如Apache),X Window,桌面环境(比如GNOME和KDE),办公套件(比如OpenOffice.org),等等。

    影响:

    1. 1991至1995年间,Linux从概念型的 0.1 版本内核原型,发展成为能够在性能和特性上均堪媲美专有Unix的操作系统,并且在连续正常工作时间等重要统计数据上打败了这些Unix中的绝大部分。1995年,Linux找到了自己的杀手级应用——开源的web服务器Apache。就像Linux,Apache出众地稳定和高效。很快,运行 Apache 的 Linux 机器成了全球ISP平台的首选。约60%的网站选用Apache,轻松击败了另两个主要的专有型竞争对手。今天的LAMP(Linux ,Apache,MySQL,PHP)已经成为了架构 Web 服务器的主要首选。
    2. 现如今的Linux不但可以装在几乎所有的主流服务器上,当然也包括桌面的X86系统中。其还常常被用于嵌入式系统,机顶盒、手机、交换机、游戏机、PDA、网络交换机、路由器、等等,都是因为 Linux 那精彩的内核。
    3. Linux 的出现,不仅仅给世界带来了一个免费的操作系统,也不仅仅是对 Unix 自由、共享的文化的延续,它的出现带给了计算机世界自 Unix、GNU 以来更为成熟的思想和文化。

    Linux的内核发展

    来源:https://zh.wikipedia.org/wiki/Linux%E5%86%85%E6%A0%B8

    1. 1991年9月,Linux内核版本 0.01 在芬兰大学和研究网络(FUNET)的FTP服务器(ftp.funet.fi)上发布。它有10,239行代码。在1991年10月,0.02版本的内核发布了。                                    
    2. 1991年12月,0.11版本的内核发布。由于它可以由运行相同内核版本的计算机编译,因此该版本是第一个自托管的 Linux 内核。当托瓦茲于1992年2月发布0.12版本时,他采用了 GNU 通用公共许可证(GPL),而不是以前的自行起草的许可证,原先的许可证不允许商业再分发。
    3. 1992年1月19日,第一篇文章提交给新的新闻组alt.os.linux出现。
    4. X Window 系统随后被移植到Linux上,所以在1992年3月,Linux 0.95 是第一个能够运行X的版本。从0.1x到0.9x的版本号大幅跨越是因为期望没有大的缺失部分的版本1.0的即将出现。然而,这被证明是错误的。从1993年到1994年初,出现了0.99版本的15个开发版本。
    5. 1994年3月14日,Linux内核1.0.0发布,共176,250行代码。随后的1995年3月,有310,950行代码的 Linux 内核1.2.0发布。
    6. 在1996年6月9日发布的 Linux内核2.0版本之后,以2.0为大版本的主要更新有如下这些:
    7. 1999年1月25日 - 发布Linux内核2.2.0(1,800,847行代码)
    8. 1999年12月18日 - 针对2.2.13的 IBM 大型机补丁发布,允许 Linux 内核用于企业级机器
    9. 2001年1月4日 - 发布 Linux 内核2.4.0(3,377,902行代码)
    10. 2003年12月17日 - 发布 Linux 内核2.6.0(5,929,913行代码)
    11. 从2004年开始,发布过程发生了变化,新的内核每隔2-3个月定期发布,编号为2.6.0、2.6.1,直到2.6.39。
    12. 2011年7月21日,Torvalds宣布发布Linux内核3.0:“2.6.<大版本> 的日子过去了”。
    13. 2013年6月发布的Linux内核版本3.10包含15,803,499行代码
    14. 2015年6月发布的4.1版本已发展到超过1950万行代码,由近14000名程序员贡献。

     

    展开全文
  • Linux诞生和发展

    2009-05-21 15:39:00
    诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长...

     Linux 的诞生和发展

      Linux 操作系统是UNIX 操作系统的一种克隆系统。它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。Linux 操作系统的诞生、发展和成长过程始终依赖着以下五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和Internet 网络。

      下面主要根据这五个基本线索来追寻一下Linux 的开发历程,它的酝酿过程,最初的发展经历。首先分别介绍其中的四个基本要素(UNIX、MINIX、GNU 和POSIX,Internet 的重要性显而易见,所以不用对其罗嗦),然后根据Linux 的创始人Linus Toravlds 从对计算机感兴趣而自学计算机知识,到心里开始酝酿编制一个自己的操作系统,到最初Linux 内核0.01 版公布,以及从此如何艰难地一步一个脚印地在全世界hacker 的帮助下最后推出比较完善的1.0 版本这段时间的发展经过,也即对Linux 的早期发展历史进行详细介绍。

      对于Linux的一般发展史,许多文章和书籍都有介绍,这里就不重复。

      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 的资深会员(全世界也只有很少人是两会的资深会员)。共发表了100 多篇文章,5 本计算机书籍。AST 虽出生在美国纽约,但是是荷兰侨民(1914 年他的祖辈来到美国)。他在纽约上的中学、M.I.T上的大学、加洲大学Berkeley 分校念的博士学位。由于读博士后的缘故,他来到了家乡荷兰。从此就与家乡一直有来往。后来就在Vrije 大学开始教书、带研究生了。荷兰首都Amsterdam 是个常年阴雨绵绵的城市,而对于AST 来说,这最好不过了,因为这样他就可以待在家里摆弄他的计算机了。MINIX 是他1987年编制的,主要用于学生学习操作系统原理。到91年时版本是1.5。目前主要有两个版本在使用: 1.5 版和2.0 版,当时该操作系统在大学使用是免费的,但其它用途不是,当然目前都已经是免费的,可以从许多FTP上下载。
    对于Linux 系统,他表示对其开发者Linus 的称赞。但他认为Linux 的发展有很大原因是因为他为了保持minix 的小型化,能让学生在一个学期内就能学完,而没有接纳全世界许多人对Minix 的扩展要求。因此这激发了Linus 编写Linux。Linus 正好抓住了这个好时机。
      
      作为一个操作系统,MINIX 并不是优秀者,但它同时提供了用C 语言和汇编语言写的系统源代码。这是第一次使得有抱负的程序员或hacker 能够阅读操作系统的源代码,在当时这种源代码是软件商一直小心地守护着的。

      GNU 计划

      GNU 计划和自由软件基金会(the Free Software Foundation - FSF)是由Richard M. Stallman 于1984 年一手创办的。旨在开发一个类似 Unix、并且是自由软件的完整操作系统:GNU 系统。(GNU 是"GNU's Not Unix"的递归缩写,它的发音为"guh-NEW"。)各种使用linux 作为核心的GNU 操作系统正在被广泛的使用。虽然这些系统通常被称作"Linux",但是严格地说,它们应该被称为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 的系统V 和Berkeley CSRG的BSD 系统的调用接口之间的区别重新调和集成,从而于1984 年产生了/usr/group 标准。1985 年,IEEE操作系统技术委员会标准小组委员会(TCOS-SS)开始在ANSI 的支持下责成IEEE 标准委员会制定有关程序源代码可移植性操作系统服务接口正式标准。到了1986 年4 月,IEEE 就制定出了试用标准。第一个正式标准是在1988 年9 月份批准的(IEEE 1003.1-1988),也既以后经常提到的POSIX.1 标准。

      1989 年POSIX 的工作被转移至ISO/IEC 社团,并由15 工作组继续将其制定成ISO 标准。到1990 年,POSIX.1 与已经通过的C 语言标准联合,正式批准为IEEE 1003.1-1990(也是ANSI 标准)和ISO/IEC 9945-1:1990 标准。
      
      POSIX.1 仅规定了系统服务应用程序编程接口(API),仅概括了基本的系统服务标准,因此期望对系统的其它功能也制定出标准。这样IEEE POSIX 的工作就开始展开了。在1990 年,刚开始有十个批准的计划在进行,有近300 多人参加每季度为期一周的会议。着手的工作有命令与工具标准(POSIX.2)、测试方法标准(POSIX.3)、实时API(POSIX.4)等。到了1990 年上半年已经有25 个计划在进行,并且有16 个工作组参与了进来。与此同时,还有一些组织也在制定类似的标准,如X/Open,AT&T,OSF 等。

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

      1991 年7 月3 日在comp.os.minix 上发布的post 上就已经提到了正在搜集POSIX 的资料。(当然此时还不存在Linux 这个名称,当时Linus 的脑子里想的可能是FREAX ,FREAX 的英文含义是怪诞的、怪物、异想天开等)。其中透露了他正在进行Linux 系统的开发,并且在Linux 最初的时候已经想到要实现与POSIX(UNIX 的国际标准)的兼容问题了。

      Linux 操作系统的诞生

      1981 年IBM 公司推出享誉全球的微型计算机IBM PC。在1981-1991 年间,MS-DOS 操作系统一直是微型计算机上操作系统的主宰。此时计算机硬件价格虽然逐年下降,但软件价格仍然是居高不下。当时Apple 的MACs 操作系统可以说是性能最好的,但是其天价没人能够轻易靠近。

      当时的另一个计算机技术阵营是Unix世界。但是Unix操作系统就不仅是价格贵的问题了。为了寻求高利率,Unix经销商将价格抬得极高,PC小用户就根本不能靠近它。曾经一度受到Bell Labs的许可而可以在大学中用于教学的UNIX源代码一直被小心地守卫着不需公开。对于广大的PC用户,软件行业的大型供应商始终没有给出有效的解决该问题的手段。正在此时,出现了MINIX操作系统,并有一本详细的书本描述它的设计实现原理。由于AST的书写的非常详细,并且叙述有条有理,几乎全世界的计算机爱好者都在看这本书以理解操作系统的工作原理。其中也包括Linux系统的创始者Linus Benedict Torvalds。当时(1991年),Linus Benedict Torvalds 是赫尔辛基大学计算机科学系的二年级学生,也是一个自学hacker。这个21 岁的芬兰年轻人喜欢鼓捣计算机,测试计算机的能力和限制。但当时缺乏的是一个专业级的操作系统。MINIX 虽然很好,但只是一个用于教学目的简单操作系统,而不是一个强有力的实用操作系统。

      到1991 年,GNU 计划已经开发出了许多工具软件。最受期盼的Gnu C 编译器已经出现,但还没有开发出免费的GNU 操作系统。即使是MINIX 也开始有了版权,需要购买才能得到源代码。而GNU 的操作系统HURD 一直在开发之中,但并不能在几年内完成。对于Linus 来说,已经不能等待了。从1991 年4 月份起,他开始酝酿并着手编制自己的操作系统。刚开始,他的目的很简单,只是为了学习Intel 386 体系结构保护模式运行方式下的编程技术。但后来Linux 的发展却完全改变了初衷。

      1991 年初,Linux 开始在一台386sx 兼容微机上学习minix 操作系统。通过学习,他逐渐不能满足minix 系统的现有性能,并开始酝酿开发一个新的免费操作系统。根据Linus 在comp.os.minix 新闻组上发布的消息,我们可以知道他逐步从学习minix 系统到开发自己的Linux 的过程。

       Linus 第1 次向comp.os.minix 投递消息是在1991 年3 月29 日。题目是"gcc on minix-386 doesn't optimize",是有关gcc 编译器在minix-386 上运行的优化问题,由此可知,Linus 在1991 年的初期已经开始深入研究了minix 系统,并在这段时间有了改进minix 操作系统的思想,而且在进一步学习minix系统中,逐步演变为想自己重新设计一个基于Intel 80386 体系结构的新操作系统。他在回答有人提出minix 上的一个问题时,所说的第一句话是"阅读源代码"("RTFSC (Read the Fucking Source Code :-)")。他认为答案就在源程序中。这也说明了对于学习系统软件来说,你不光需要懂得系统的工作基本原理,还需要结合实际系统,学习实际系统的实现方法。因为理论毕竟是理论,其中省略了许多枝节,而这些枝节问题虽然没有太多的理论含量,但却是一个系统必要的组成部分,就像麻雀身上的一根羽毛。

      从1991 年的4 月份开始,Linus 几乎花了全部时间研究386-minix 系统(hack the kernel),并且尝试着移植GNU 的软件到该系统上(GNU gcc、bash、gdb 等)。并于4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这个shell 软件了。

       第一个与Linux 有关的消息是在1991 年7 月3 日在comp.os.minix 上发布的(当然此时还不存在Linux 这个名称,当时Linus 的脑子里想的可能是FREAX ,FREAX 的英文含义是怪诞的、怪物、异想天开等)。其中透露了他正在进行Linux 系统的开发,并且在Linux 最初的时候已经想到要实现与POSIX(UNIX 的国际标准)的兼容问题了。

       在Linus 的下一发布的消息中(1991 年8 月25 日 comp.os.minix),他向所有minix 用户询问"What would you like to see in minix?"("你最想在minix 中见到什么?"),在该消息中他首次透露出正在开发一个(免费的)386(486)操作系统,并且说只是兴趣而已,代码不会很大,也不会象GNU 的那样专业。开发免费操作系统这个想法从4 月份就开始酝酿了,希望大家反馈一些对于minix 系统中喜欢那些特色不喜欢什么等信息,由于实际的和其它一些原因,新开发的系统刚开始与minix 很象(并且使用了minix 的文件系统)。并且已经成功地将bash(1.08 版)和gcc(1.40 版)移植到了新系统上,而且在过几个月就可以实用了。

       最后,Linus 申明他开发的操作系统没有使用一行minix 的源代码;而且由于使用了386 的任务切换特性,所以该操作系统不好移植(没有可移植性),并且只能使用AT 硬盘。对于Linux 的移植性问题,Linus 当时并没有考虑。但是目前Linux 几乎可以运行在任何一种硬件体系结构上。

       到了1991 年的10 月5 日,Linus 在comp.os.minix 新闻组上发布消息,正式向外宣布Linux 内核系统的诞生(Free minix-like kernel sources for 386-AT)。这段消息可以称为Linux 的诞生宣言,并且一直广为流传。因此10 月5 日对Linux 社区来说是一个特殊的日子,许多后来Linux 的新版本发布时都选择了这个日子。所以RedHat 公司选择这个日子发布它的新系统也不是偶然的。

      Linux 操作系统版本的变迁

     

    0.00 (1991.2-4?) 两个进程分别显示AAA BBB
    0.01 (1991.9?)第一个正式向外公布的Linux 内核版本。
    0.02 (1991.10.5)该版本以及0.03 版是内部版本,目前已经无法找到。
    0.03 (1991.10.5)
    0.10 (1991.10)由Ted Ts'o 发布的Linux 内核版本。
    0.11 (1991.12.8)基本可以正常运行的内核版本。
    0.12 (1992.1.15)主要加入对数学协处理器的软件模拟程序。
    0.95 (0.13) (1992.3.8) 开始加入虚拟文件系统思想的内核版本。
    0.96 (1992.5.12)开始加入网络支持和虚拟文件系统VFS。
    0.97 (1992.8.1)
    0.98 (1992.9.29)
    0.99 (1992.12.13)
    1.0 (1994.3.14)
    1.20 (1995.3.7)
    2.0 (1996.2.9)
    2.20 (1999.1.26)
    2.40 (2001.1.4)
    2.60 (2003.12.17)

     

       将Linux 系统0.13 版内核直接改称0.95 版,Linus 的意思是让大家不要觉得离1.0 版还很遥远。同时,从0.95 版开始,对内核的许多改进之处(补丁程序的提供)均以其他人为主了,而Linus 的主要任务开始变成对内核的维护和决定是否采用某个补丁程序。

      Linux 名称的来由

      Linux 操作系统刚开始时并没有被称作Linux,Linus 给他的操作系统取名为FREAX,其英文含义是怪诞的、怪物、异想天开等意思。在他将新的操作系统上载到ftp.funet.fi 服务器上时,管理员Ari Lemke很不喜欢这个名称。他认为既然是Linus 的操作系统就取其谐音Linux 作为该操作系统的目录吧,于是Linux 这个名称就开始流传下来。

       在Linus 的自传《Just for Fun》一书中,Linus 解释说:"坦白地说,我从来没有想到过要用Linux 这个名称发布这个操作系统,因为这个名字有些太自负了。而我为最终发布版准备的是什么名字呢?Freax。实际上,内核代码中某些早期的Makefile - 用于描述如何编译源代码的文件 - 文件中就已经包含有"Freax"这个名字了,大约存在了半年左右。但其实这也没什么关系,在当时还不需要一个名字,因为我还没有向任何人发布过内核代码。而Ari Lemke,他坚持要用自己的方式将内核代码放到ftp 站点上,并且非常不喜欢Freax 这个名字。他坚持要用现在这个名字(Linux),我承认当时我并没有跟他多争论。但这都是他取的名字。所以我可以光明正大地说我并不自负,或者部分坦白地说我并没有本位主义思想。但我想好吧,这也是个好名字,而且以后为这事我总能说服别人,就象我现在做的这样。"-- Linus Torvalds《Just for fun》第84-88 页。

      通过上述说明,我们可以对上述Linux 的五大支柱归纳如下:

      ① UNIX 操作系统 -- UNIX 于1969 年诞生在Bell 实验室。Linux 就是UNIX 的一种克隆系统。UNIX的重要性就不用多说了。

      ② MINIX 操作系统 -- Minix 操作系统也是UNIX 的一种克隆系统,它于1987 年由著名计算机教授Andrew S. Tanenbaum 开发完成。由于MINIX 系统的出现并且提供源代码(只能免费用于大学内)在全世界的大学中刮起了学习UNIX 系统旋风。Linux 刚开始就是参照Minix 系统于1991 年才开始开发。

      ③ GNU 计划-- 开发Linux 操作系统,以及Linux 上所用大多数软件基本上都出自GNU 计划。Linux只是操作系统的一个内核,没有GNU 软件环境(比如说bash shell),则Linux 将寸步难行。

      ④ POSIX 标准 -- 该标准在推动Linux 操作系统以后朝着正规路上发展起着重要的作用。是Linux前进的灯塔。

      ⑤ INTERNET -- 如果没有Intenet 网,没有遍布全世界的无数计算机骇客的无私奉献,那么Linux最多只能发展到0.13(0.95)版的水平。

    展开全文
  • Linux操作系统的诞生与其对现代信息世界的影响

    千次阅读 多人点赞 2020-05-19 11:12:11
    Linux是上个世纪九十年代诞生的一个操作系统内核,它在开源社区发布,经过几十年发展,从Linux内核衍生出了许多发行版本。当前,Linux各个完整的发行版本,已经广泛应用于不同的应用环境。在Linux操作系统在各领域...

    写在前面:大家好K。首先为你点进这篇有趣的文章点赞👍!这是一篇原创的Linux课的期末课程论文,资料来源已经写在文章末尾的”参考文献“中。文章在撰写过程中难免有疏漏和错误,欢迎你在下方留言指出文章的不足之处;如果觉得这篇文章对你有用,也欢迎你点赞和留下你的评论。更多内容请点进👉我的博客K。👈阅览。

    摘要:Linux是上个世纪九十年代诞生的一个操作系统内核,它在开源社区发布,经过几十年发展,从Linux内核衍生出了许多发行版本。当前,Linux各个完整的发行版本,已经广泛应用于不同的应用环境。在Linux操作系统在各领域迅速扩张的同时,开源社区也得到了快速发展。先后诞生了Git版本控制系统和GitHub开源项目托管平台,开源社区到达了前所未有新阶段。本文通过介绍Linux内核的诞生历程,分析Linux系统的各种优势和Linux当前在各个领域的发展情况,展现Linux系统对现代信息世界的巨大影响。

    关键词:Linux;开源;Git;Linux的应用


    1 Linux系统的诞生和初步发展

    1.1 Linux系统诞生的时代背景和灵感来源

    1991年9月17日,芬兰人利努斯·托瓦尔兹正式公布了以他名字命名的计算机操作系统内核Linux。当时没人会想到,这将成为软件开源运动的里程碑。

    1981年,IBM公司发布了风靡全球的微型计算机–IBM PC。之后的十年,微型计算机的操作系统一直都是由微软公司的磁盘操作系统DOS主宰。此时计算机硬件的价格虽然逐年下降,但是软件价格仍然很高。

    苹果公司的苹果公司的Mac OS操作系统可以说是当年性能最好的操作系统,但是价格高昂,很少人能轻易负担得起。

    除了这两家以外,当时还有UNIX系统也是一些消费者的选择之一。然而UNIX操作系统的经销商们把价格抬得极高,PC用户根本无法涉及,并且UNIX的源代码是被保护着不公开的。[1]

    面临着这么多的问题,这时计算机软件界出现了Minix操作系统。与此同时ST公司推出了一本描述Minix操作系统设计和实现原理的技术书。这本书写得非常详细,叙述有条有理。于是全世界的计算机爱好者几乎都开始阅读这本书,从中理解和学习操作系统的工作原理,包括后来的Linux操作系统的创始者,芬兰科学家利努斯·托瓦尔兹。

    利努斯·托瓦尔兹在大学期间,为了避免与同学争抢学校的公共计算机,于是便自己用圣诞节压岁钱和贷款买了一台386兼容电脑和Minix操作系统。他开始认真学习有关Intel 80386处理器的指令系统和其他硬件知识,还编制出了一个终端仿真程序。随着逐渐的使用和了解,他意识到Minix系统虽然很好,但它并不强大,只是一个用于教学目的的简单操作系统。考虑到Minix系统的诸多限制,他开始有了编制一个新操作系统的想法。

    1.2 Linux正式发布和发展情况

    到了1991年10月5日,利努斯在网上发布消息,正式宣布他自己开发的系统内核诞生了。他把代码放在当时芬兰最大的FTP网站上,并起名为Linux,含义是“Linus(利努斯)的Minix操作系统”。许多年后,人们才意识到Linux是软件开源运动的里程碑。

    到1994年发表Linux1.0的正式核心时, 大家要利努斯设计一只吉祥物。他突然想到小时候去动物园被一只企鹅追着满地打滚还被咬一口的往事。于是就把企鹅作为吉祥物。

    Linux凭借其最大的优势–开源和免费,逐步扩大了它在市场中的份额。任何人都可以免费地使用或者是修改其中的原始代码,并且Linux对于硬件配备的需求低廉。由于Linux是根据对Minix系统启发得来,而Minix系统又是类UNIX系统,所以Linux系统和UNIX系统很相似。并且Linux对UNIX系统的兼容性很好,从而对程序员来说,将软件从昂贵的UNIX系统移植到Linux系统上的工作量不大,Linux系统得以被许多程序员使用。同时Linux在设计过程中保留了UNIX系统以网络为核心的设计思想,因此其是一种性能非常稳定的网络操作系统。Linux与UNIX相比,Linux还拥有完整的软件管理工具,大大方便了程序员对软件的管理,Linux至此已经比UNIX受欢迎多了。

    早期的Windows不具备多用户模式,而Linux在多用户、多任务方面表现非常优秀,多用户模式不仅能够在Internet模式下给予良好支持,而且还能同时实现对多用户不同请求的同时响应,并针对32位以及64位多任务处理进行支持。尽管微软后来推出了Window NT,从本质上来讲,Windows NT目前已经在用户管理机制等多个方面远远落后于Linux。[2]并且Windows是闭源的软件,程序员更愿意用Linux系统来为硬件配置更高效更轻便的软件环境。

    正是Linux系统易安装、硬件要求低、免费和开源的特点,使得它在各大系统中脱颖而出。

    1.3 Linux系统的不足

    在外设方面,大多厂商没有专门适配Linux版本,Linux系统对某些USB以及PnP等设备并不能进行有效支持。这是Linux现在作为日常操作系统的劣势。

    各个Linux的发行版为了吸引更多新用户使用,纷纷推出了带有图形界面的Linux系统,尽管熟练的程序员更愿意使用Shell脚本来批量运行Linux命令,但是对于新手入门来说,缺少可视化的编程环境和工具来提高对编程的兴趣。[2]

    1.4 Linux系统在中国的现状

    至2020年,中国发展的Linux发行版,控制台的功能已经很大程度得到汉化。可以进行对中文汉字的输入和输出,并且在运行过程中的各种命令提示以及错误信息等都能够实现中文表达。[2]

    尽管我国开发出了国产的Linux发行版,安装上一些日常应用后能够摆脱对外国公司的操作系统的依赖。但是优秀的国产应用程序,特别是网络服务程序,还非常少见。这将是国产操作系统发展的重要方向。[2]


    2 开源社区的发展

    2.1 开源软件的定义

    开源软件是在开源协议下源代码可以被任意获取和修改的计算机软件,软件的作者在软件开源协议的规定下,保留部分权利,并允许任何使用者免费使用、修改和重新发布软件。与开源对应的闭源软件仅获取编译后的二进制可执行文件,只有软件作者拥有程序的源代码。[3]

    2.2 开发者将软件开源的需求和动机

    开发者在公司的工作内容如果简单而重复,这时对工作内容的不满足,但又因为各种原因不能全职地开发自己的项目,再加上开源拥有许多隐性利益如开发能力的提升和成就感,开发者会更愿意将自己的项目开源,让更多人来共同开发和使用自己的作品。

    2.3 开源社区对互联网行业的影响

    开源经历了三个大阶段,先后主要由个人、非营利组织和大企业来引领。

    开源软件如果没有合理管理,开源往往会因为资金枯竭、被其他开发者恶意修改发布而终止。此时,拥有良好的管理者来引领开源软件的发展就显得尤为重要。

    有持续资金的支持、严格的知识产权保护策略和组织对其科学合理的治理,才能造就出良好的开源生态。而往往只有大的组织和企业才有能力进行科学管理,大的组织和企业又能从开源软件中获益,如降低开发成本等,越来越多的企业拥抱开源,形成良性循环,这就吸引越来越多的开发者投入到开源事业中来。

    2.4 Git工具和GitHub平台的诞生

    Linus在1991年创建了开源的Linux,之后Linux系统不断发展,全世界热心的志愿者积极参与到Linux的建设中。在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给利努斯,然后由利努斯本人通过手工方式合并代码。尽管当时有CVS、SVN这些免费的版本控制系统,但是利努斯坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。

    2002年后,Linux代码量已经十分庞大,不能再用手工方式来管理源代码了,此时一个商业公司BitMover愿意免费为Linux社区提供版本控制系统BitKeeper。但在2005年,因为Linux社区某些黑客试图破解BitKeeper协议,BitMover公司便收回了Linux社区的免费使用权。

    利努斯花了两周时间自己用C写了一个分布式版本控制系统Git。一个月之内,Linux系统的源码已经由Git管理了。Git迅速成为最流行的分布式版本控制系统。

    2008年,GitHub网站上线,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery、PHP、Ruby等。

    2.5 当前我国开源社区的发展情况

    最早我国开源社区的兴起,是为了解决Linux系统的汉化。我国早期通常是从开源社区中获得好处,使用开源软件降低了技术应用门槛,我国国产软件在此期间得以迅速发展。最近几年,我国互联网行业巨头,纷纷将自己的一些项目开源,为国际开源社区贡献中国力量。华为在Linux内核版本4.8至4.13开发周期中贡献度全球排名第15,仅次于甲骨文。同时,各大公司相继推出自主开发的开源项目,如阿里巴巴发布的开源服务框架Dubbo,百度发布的自动驾驶领域的阿波罗(Apollo)等开源软件。

    同时我国政府高度重视开源软件发展,发布多项政策,积极引导社会资源投入,促进开源模式不断成熟。如国务院印发的《“十三五”国家信息化规划》明确指出,支持开源社区创新发展,鼓励我国企业积极加入国际重大核心技术的开源组织,从参与者发展为重要贡献者。

    但是我国本土的开源社区有待发展提高,不足有一缺乏专业的开源软件基金会,二缺少有影响力的领军人物,三缺乏有影响力的开源项目,四尚未形成优良的开源生态。希望我国本土开源社区能够健康持续的发展。[4]

    2.6 小结

    开源是当代计算机技术发展引发的技术革命所带来的面向未来的方法上的创新,是以人为本的创新模式在软件行业的具体体现。但不是要将所有软件开源。在软件行业的发展进程中,开源和闭源各有优势,它们将长期共存,共同促进软件行业持续、健康、稳健的发展。[3]


    3 Linux在各领域中的具体应用

    Linux尽管在日常生活中不经常被提及,但是我们已经直接或间接地接触了Linux系统。

    3.1 Linux系统在服务器中的应用

    Linux因为自身拥有众多优秀特性加上免费开源,占据了服务器操作系统的半壁江山。大多数商业公司为了减轻操作系统对财务的负担,且为了特定环境下的特定需求,通常会修改Linux源代码并进行重新编译,提高运行效率和安全性,已经将Linux作为自己服务器的操作系统。

    因为Linux的网络模块非常优秀,以高速通信网络为载体的Linux集群在现在需要快速和大量计算的场景中应用广泛,如在信息服务、科学计算以及事务处理等方面,具有较强的优势,满足发展需求。以实际为例,科学计算集群的应用为人们提供了全新的模式,可以适应各种前高性能计算,处理大规模复杂的计算,常见的基因数据分析,实现高效的数据处理,以自身的科学计算编程环境为基础,发挥出函数库、数据库的优势,为人们提供优质的服务。[5]

    3.2 Linux系统在移动端的应用

    Android系统作为Linux在移动端设备的发行版,在与苹果iOS手机系统的竞争中,同样因为开源的优势,许多手机厂商在谷歌公司的带领下,共同开发Android系统,贡献自己的力量,同时开发出自己厂商的定制系统,Android系统迅速占领了大部分手机市场。

    3.3 Linux系统在嵌入式系统中的应用

    以往的8位单片机解决的问题相对单一,运算量不大,运算速度低,已经不满足现在需要高速运算的应用场景了。这时新一代的嵌入式系统应运而生。嵌入式系统有三个基本组成部分:嵌入式微处理器、嵌入式操作系统和在其上开发的应用程序。Linux操作系统拥有绝对的优势作为嵌入式操作系统。

    除了Linux系统免费和开源的特性外,Linux核心代码可以裁减到130多字节,这可以大大地降低开发产品的成本和适应嵌入式系统的发展趋势。同时,Linux核心代码采用移植性比较好的C语言编写,所以它可以很容易地移植到很多微处理器上。[6]


    4 总结

    Linux操作系统自诞生以来,优秀的性能和免费开源的特点,深得开发者喜欢。Linux操作系统的广泛使用代表着科技的一大进步,其在科学领域占据了十分重要的地位。目前,Linux操作系统还不完美,还有许多功能需要众多开发者来完善和创造。开源社区也存在不足,还有大量发展空间。但我们相信,随着不断发展,Linux社区和开源社区最终会形成一个完善的体系,并被服务于日常生活和各行各业中,帮助我们提高生活水平和各行业的工作质量。


    参考文献

    [1] 一侃人;. Linux是如何诞生的[J]. 电脑爱好者, 2012, (20): .
    [2] 张志朋;. Linux的特色及发展展望[J]. 中国管理信息化, 2020, (04): .
    [3] 何正方;梁宇;. 开源对软件行业发展的影响[J]. 软件, 2019, (07): .
    [4] 崔静;刘亭杉;. 国际开源软件发展对我国的启示[J]. 科技中国, 2020, (02): .
    [5] 李雪岩;. Linux集群在物探行业的应用现状及发展趋势探讨[J]. 信息技术与信息化, 2020, (03): .
    [6] 王成,刘金刚. 基于Linux的嵌入式操作系统的研究现状及发展展望[J]. 微型机与应用, 2004, (05): .

    展开全文
  • linux诞生和发展

    2017-03-05 21:32:39
    linux宝典》 电子工业出版社 2005 《liunx完全自学教程》 中国水利水电出版社 2009 《liunx教程》 机械工业出版社 2002

    liunx

    诞生

     
       1. liunx诞生       

         1991年,Linus Torvalds,一个芬兰赫尔辛基大学的学生,为了能在家里的PC机上使用与学校一样的操作系统,开始了编写类似UNIX内核的工作。那是,linus使用的是MINUX,但是他希望能超过MINUX的标准。      

          到了1991 年的10 月5 日,Linus在comp.os.minix新闻组上发布消息,正式向外宣布Linux 内核系统的诞生(Free minix-like kernel sources for 386-AT)。这段消息可以称为Linux 的诞生宣言,并且一直广为流传。因此10 月5 日对Linux 社区来说是一个特殊的日子,许多后来Linux的新版本发布时都选择了这个日子。

        2. liunx的兴起 

          Linux的兴起可以说是一个奇迹。Linus Torvalds在开始其Linux 操作系统的设计时,他的目的只不过是想看一看Intel 386存储 管理硬件是怎样工作的,而绝对没有想到这一举动会在计算机界 产生如此重大的影响。他的设计进展得很顺利,只花了几个月时间就在一台Intel 386微机上完成了一个类似于Unix的操作系统, 这就是最早的Linux版本。               1991年底,Linus Torvalds首次在Internet 上发布了基于Intel 386体系结构的Linux源代码,从此以后,奇迹开始发生了。由于Linux具有结构清晰、功能简捷等特点,许多大专院校的学生和科研机构的研究人员纷纷把它作为学习和研究的对象。他们在更正原有Linux版本中操作的同时,也不断地为Linux增加新的功能。在众多热心者的努力下,Linux逐渐成为一个稳定可靠、功能完善的操作系统。一些软件公司, 如Red Hat、InfoMagic等也不失时机地推出了自己的以Linux为核心的操作系统 版本,这大大推动了Linux的商品化。在一些大的计算机公司的支持下,Linux还被移植到以AlphaAPX、PowerPC、Mips及Sparc等为处理机的系统上。Linux的使用日益广泛,其影响力直逼Unix。  
        3. liunx的发行 
         在后来的几年中商业化和非商业的LINUX发行版本开始出现。MCC INTERIM LIUNX 于1992年而月在英国发行。SLACKWARE LINUx 是最来的linux发行版本,于1993年4月第一次发行。 
        4. linux的发展  
          1992年,在Linux Kernel平台上工作的开发者只有100位;2010年,在Linux Kernel平台上工作的开发者有1000位。 
          1995年Linux Kernel里有代码25万行;2010年Linux Kernel里有代码1400万行。 
          1998年全球前500台超级计算机中只有1台运行着Linux;2011年全球前500台超级计算机中有413台运行着Linux。 
           现在,不管是否知道liunx,人们可能每天都会遇到它。当从Amazon.com在线购买图书室,会用到linux;当在Google上搜索网页时,会用到liunx;当用tivo(一家生产数字电视美国公司)录制电视节目时,会用到linux。另外,在口袋里的掌上电脑(PDA)可能也是基于linux技术的。在动画片史莱克2中的特技,就是由成千上万的linux工作站制作、再有其他上百个linux系统服务器着色而成的! 
           Liunx无处不在!

    liunx

    诞生

    展开全文
  • Linux诞生,成长,历史,杂谈

    千次阅读 2011-04-26 09:36:00
    1991年,芬兰大学生Linus Torvalds萌发了开发一个自由的UNIX操作系统的想法,当年,Linux诞生了,为了不让这个羽毛未丰的操作系统矢折,Linus将自已的作品Linux通过Internet发布。从此一大批知名的、不知名的电脑...
  • linux时间编程(一) - 获取时间

    千次阅读 2014-07-04 22:47:10
    人类从有时间linux
  • linux诞生     LINUX:  Andrew, Unix写出了一个小型unix--  >Minix     Linus在 80386写出了一个类Minix系统    1990Linus的小OS在网络上迅速发展被定名为  >Linux    GPL:General Public License 通用...
  • Linux 1.关于Linux: 类似Windows,Linux也是一个操作系统软件,Linux是一套开放源代码程序的、并可以自由传播的类Unix操作系统(Unix系统是Linux系统的前身,具备很多优秀特性),它是一个基于POSIX多用户、多任务...
  • Linux

    千次阅读 2014-11-01 21:58:57
    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。...Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux
  • Linux:date\clock日期时间

    千次阅读 2018-07-21 13:59:29
    显示系统时间 date 显示硬件(主板)时间 clock hwclock 设置时间  如:2016年9月16日11点11分6秒  则:date 091611112016.06 显示UTC格林尼治时间 date --utc 显示时间 年-月-日 date ...
  • Linux】一步一步学Linux——Linux发展史(01)

    千次阅读 多人点赞 2019-07-04 22:39:46
    Linux概述02. Linux简史03. Linux主要特性04. Linux之父05. Linux相关术语06. Linux其它07. Linux应用领域 01. Linux概述 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多...
  • Git的诞生(Linux之父,一个人两周搞定)

    千次阅读 2018-03-15 10:16:55
    https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137402760310626208b4f695940a49e5348b689d095fc000很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断...
  • Linux总结

    千次阅读 多人点赞 2020-01-14 20:36:45
    2.2 Linux诞生简介 2.3 Linux的分类 三 、Linux文件系统概览 3.1 Linux文件系统简介 3.2 文件类型与目录结构 四 、Linux基本命令 4.1 目录切换命令 4.2 目录的操作命令(增删改查) 4.3 文件的操作命令(增删....
  • 主要介绍了GNU/Linux诞生,标准Linux是如何应用在嵌入式系统中的,最后讲述了嵌入式Linux知识架构。
  • linux

    千次阅读 2010-08-25 19:36:00
    linux百科名片Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上...
  • Linux横空出世

    千次阅读 2016-12-10 04:42:50
    GNU/Linux 【内容摘要】  1991年,芬兰的赫尔辛基大学的Linus Torvalds在BBS上面贴了一则消息,宣称他以bash、gcc等工具写了一个可以在Intel的386机器上面运行的内核程序,许多人对此很感兴趣,乘自由软件运动的...
  • Linux shell脚本,Linux下的西红柿时间管理法 III 8. 需要的支持技术 我们说到希望从atq指令的输出中,自动计算出还剩多长时间休息,而不是靠用户自己计算。atq的输出是这样的: 1 3444 Tue Nov 27 18:47:00 2012...
  • Linux 简介

    千次阅读 多人点赞 2020-01-12 16:57:07
    Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。...发布时间 1991年10月5日 创始人...
  • Linux 发展史

    万次阅读 2016-07-10 00:00:07
    简述Linux是一套自由加开放源代码的类Unix操作系统,诞生于1991年10月5日(第一次正式向外公布),由芬兰学生林Linus Torvalds和后来陆续加入的众多爱好者共同开发完成。Linux是一个基于POSIX和Unix的多用户、多任务...
  • LinuxLinux的信号

    千次阅读 2018-08-15 22:37:27
    Linux的信号是一种系统或进程发出的通知,它的主要作用是用来激活信号接收者的一段程序,除此之外,也可以携带少量信息。从实现方式上来看,它是一种用软件构建的中断系统,只不过接收及处理中断请求的不是处理器...
  • Linux】初识Linux

    热门讨论 2016-01-27 14:53:53
    1、Linux的发展史 Linux系统诞生于1991年,由芬兰大学生李纳斯和后来陆续加入的众多爱好者共同开发完成。...Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但
  • Unix/Linux fork前传

    万次阅读 多人点赞 2019-09-09 08:15:00
    本文是《Linux fork那些隐藏的开销》的前传。fork的由来fork的思想在UNIX出现几年前就出现了,时间大概是1963年,这比UNIX在PDP-7上的第一个版本...
  • Linux基础

    千次阅读 多人点赞 2021-04-28 16:13:24
    目录一、Linux简介二、shell三、SSH系统服务四、vim编辑器 一、Linux简介 Linux是一套免费使用和自由传播...Linux操作系统诞生于1991年10月5日(第一次正式向外公布时间)。Linux存在许多不同的版本,但它们都使用了Li
  • Linux学习笔记之——Linux相关

    千次阅读 2014-03-31 16:53:23
    摘要:主要从网上摘录了一下关于Linux的历史、对Linux的来源有个大概的了解、这样对以后的学习会有些许的帮助、也能扩展一下自己的知识面。
  • Linux进阶_时间同步(NTP与chrony)

    万次阅读 2019-07-05 16:03:39
    本意内容引言时间同步介绍ntp实验:ntp时间同步chronychrony 的优势:安装chrony配置文件chronyc命令chrony示例时间工具公共NTP服务 引言 古代计时方式 ●在远古时期,人类用来确定时间的方式是一些自然界“相对...
  • Linux 内核剖析

    千次阅读 2016-01-15 17:56:57
     由于本文的目标是对 Linux 内核进行介绍并探索其体系结构和主要组件,因此首先回顾一下 Linux 的简短历史,然后从较高的层次审视 Linux 内核的体系结构,最后介绍它的主要子系统。Linux 内核具有超过 600 万行的...
  • 如何学习 Linux

    千次阅读 2019-11-04 10:57:10
    1.应用场景 在现在的生活,生产,研究等领域,Linux已经无所不在,从我们使用的手机,车载设备,到服务器... Linux诞生至今,已经是一个非常庞大且复杂的系统,下图是Linux系统代码行数的统计 (参考linuxc...
  • 从零开始学习Linux笔记

    万次阅读 多人点赞 2020-05-15 19:12:14
    从零开始学习Linux,记录笔记,担心自己以后会忘,也供大家茶余饭后,闲来无事看看,自己的理解只能到这,也希望大家可以指出我的错误 让我可以有一点点进步,以后会一直更新
  • Linux从一个黑客的个人项目发展到一个遍布全球的操作系统,这一历程就象一次生物的进化。八十年代早期, Richard Stallman发起了GNU项目,为开源软件的发展奠定了基础。 Andrew Tanenbaum教授开发的MINIX系统,把...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,437
精华内容 16,974
关键字:

linux诞生时间

linux 订阅