1984年,面对美国电话电报公司启动的UNIX商业化计划和程序开发的封闭模式,麻省理工学院的RichardM.Stallman发起了一项国际性的源代码开放的GNU(GNU’s Not Unix)计划,力图完成一个名为GNU的“Free UNIX”,重返20世纪70年代利用基于开放源码从事创作的美好时光。为了保证程序源码不会再受到商业性的封闭式利用,Stallman制定了一项GNU通用公共许可证(General Public License,GPL)条款,称其为Copyleft的版权模式。
到20世纪90年代初,GNU计划已经完成质量和数量都十分可观的系统工具。这些工具广泛应用在当时各种工作站的UNIX系统上。但这时的GNU还不是完整的操作系统,缺少一个属于自己的系统内核。Linux正好填补了GNU计划中内核空缺,并随着GNU计划快速发展起来。Linux是一套版权彻底与UNIX无关的类UNIX系统。它的发展与Minix(mini-UNIX)密切相关。Minix是1987年荷兰计算机科学家AndrewS.Tanenbaum专门为入门者学习操作系统而写的一个简化的类UNIX系统。1991年,芬兰赫尔辛基大学计算机科学系二年级学生Linus Torvalds在使用Minix时,不满其提供的功能,于是决定编写一个自己的Minix内核,最初命名为“Linus' Minix”,后来改名为Linux。1991年10月,LinusTorvalds第一次把Linux 0.02放在互联网上。这是一个偶然事件,但很快就被GNU计划的追随者们看中,“加工”成了一个功能完备的操作系统。所以,Linux确切的叫法应该是GNU/Linux。1994年,Linux发布标志性的1.0版本。

1995年1月,Bob Young创办了RedHat(红帽公司),以Linux为核心,集成了400多个源代码开放的程序模块,冠以RedHat Linux品牌在市场上出售。这种称为Linux“发行版”的经营模式是一种创举。

其实,Linux发行商并不拥有自己的“版权专有”技术,但他们给用户提供技术支持和服务。他们经营的是“方便”而不是自己的“专有技术”。Linux发行商的经营活动是Linux在世界范围内传播的主要途径之一,各品牌的Linux发行版的出现,极大地推动了Linux的普及和应用。

1998年2月,以Eric Raymond为首的一批开源人员认识到GNU/Linux体系产业化道路的本质是由市场竞争驱动的,于是创办了开放源代码促进会(OpenSource Initiative),在互联网世界展开了一场历史性的Linux产业化运动。在以IBM、英特尔、惠普和诺威尔等为首的一大批国际性重型信息技术企业对Linux产品及其经营模式进行投资并提供全球性技术支持下,催生了一个正在兴起的基于源代码开放模式的Linux产业。

Linux最初是为Intel 80386体系结构开发的,但由于其超强的可移植性,很多厂商开始基于Linux来支持自己的平台。目前,Linux可以支持Intel 80x86、SPARC、MIPS、Alpha、PowerPC、ARM及IA64等多种平台。可以说Linux是目前运行硬件平台最多的操作系统,可以运行在个人计算机、服务器、中型机、大型机和超级计算机上,几乎涵盖了所有的计算机平台。

由此可以看出,Linux的诞生具有偶然性,但又具有必然性。由于UNIX的商业化,1992年美国电话电报公司的UNIX系统实验室起诉BSD侵犯了其UNIX系统的知识产权,BSD的发展因此受到严重阻碍,为Linux的诞生和发展提供了机遇。同样,Linux的快速发展也具有偶然性和必然性。1991~1993年Linux刚起步时,适逢POSIX标准的制定处于最后定稿时期,所以POSIX标准为Linux提供了极为重要的信息,使得Linux能够与绝大多数UNIX系统兼容,便于应用的迁移。微软在操作系统,特别是桌面领域形成的垄断地位和强硬营销策略,使得世界很多国家政府以及各大软硬件厂商为打破垄断而大力支持Linux的发展。

目前,各大主流硬件厂商包括IBM、英特尔、惠普、Sun和戴尔等公司都已成为Linux的支持者。而基于Linux的各类商用软件也已经就绪,中间件领域有IBM的WebSphere、甲骨文的Oracle10g、BEA的WebLogic和Sun公司的N1等。数据库领域有IBM的DB2、甲骨的Oracle Database 10g、Sybase的ASE36等,可以说,除微软SQL Server外,几乎所有主流数据库都对Linux提供了良好的支持。在信息技术管理领域的厂商冠群、惠普和BMC等,在应用领域的SAP、甲骨文、PeopleSoft等著名应用软件厂商都把Linux纳入其产品发展路线图中,为用户提供全线解决方案。

Linux能得到如此大的发展,受到各方面的如此青睐,是由它的特点决定的。

1.Linux是免费的,而且源代码的开放。

2.Linux可以长期连续运行而无需重启,具有出色的稳定性。

3.Linux支持多种硬件平台。Linux能在笔记本、PC机、工作站,甚至大型机上运行,并能在多种处理器上运行。

4. 友好的用户界面。Linux提供了类似Windows图形界面的X-Windows系统,用户可以使用鼠标很方便快捷地进行操作。

5.Linux具有强大的网络功能。网络是Linux的生命,完善的网络支持是Linux与生俱来的能力,所以Linux在通信和网络功能方面优于其他操作系统。Linux支持所有通用的网络协议,它既可以作为一个客户端操作系统,也可以作为服务器操作系统。

6.Linux是多用户、多任务的操作系统,可以支持多个使用者同时使用并共享系统的磁盘、外设和处理器等系统资源。Linux的保护机制使每个应用程序和用户互不干扰,一个任务崩溃,其他任务仍然照常运行。

7.Linux应用程序众多,而且大部分是免费软件。硬件支持广泛,程序兼容性好。由于Linux是支持POSIX标准,因此大多数UNIX用户程序也可以在Linux下运行。另外,为了使qkxue.net/UNIX System V和BSD上的程序能直接在Linux上运行,Linux还增加了部分UNIXSystem V和BSD的系统接口,使Linux成为一个完善的UNIX程序开发系统。Linux也符合X/Open标准,具有完全自由的X-Windows实现。现有的大部分基于X的程序不需要任何修改就能在Linux上运行。Linux的DOS“仿真器”DOSEMU可以运行大多数MS-DOS应用程序。Windows程序也能在被称为WINE的Linux的Windows“仿真器”的帮助下,在X-Windows的内部运行。Linux的高速缓存能力,使Windows程序的运行速度得到很大提高。

目前,在网站服务器、嵌入式系统、超级计算机中常用Linux作为其操作系统。在智能手机中,基于Linux内核开发而成的Android系统已经成为与iOS、Symbian OS、Windows Mobile系统并列的操作系统。Linux操作系统的应用范围越来越广泛。

Linux发展简表[1]

1. 1991年 Linux开始于Linus Torvalds在Usenet上的一个帖子,说它只是一个爱好。

2. 1992年 Linux发布第一个GPL版本,最初是依据一些商业限制进行许可。

3. 1993年 在Linux根据GPL许可证发布后,第一批发行版出现:Slackware和Debian。当时Linux上有100位开发者。

4. 1994年 Linux发布1.0版本,唯一支持的机器是单处理器的i386计算机。

5. 1995年 Linux发布1.2版本,得到了更多外部对内核的贡献。

6. 1996年 被网友说是在抠脚的吉祥物Tux发布。

7. 1999年 Linux发布2.2版本,Linus Tovalds将Linux的维护工作移交给Alan Cox。

8. 2001年 1128.www.qixoo.qixo.com/Linux发布2.4版本,IBM承诺在Linux上花费10亿美元,新的maintainer Marcelo Tosatti。

9. 2002年 Linux开发从补丁和邮件形式转变为源代码控制管理。

10. 2003年 Linux发布2.6版本,SCO Group向IBM提起诉讼

11. 2004年 Linux商业化增强,公司打算定期发布。

12. 2005年 Linux有一些许可问题,所以Linus写了Git,并将Linux内核移至Git开发。

13. 2006年 由Greg Kroah-Hartman领导的第一个LTS(长期支持)版Linux发行。

14. 2009年 RedHat的市值基本等同于Sun Microsystems的市值,Sun Microsystems是当时最大的商业Unix制造商。

15. 2011年 Linux3.0发布,Linus Torvalds说“没有改变”。

16. 2012年 Linux服务器销售额收入等于其他Unix市场的总和。

17. 2015年 Linux4.0发布:live patching(热补丁、实时补丁)。

18. 2016年 Linux4.8发布。

Linux操作系统发展史的更多相关文章

  1. 了解Linux操作系统发展阶段

    一.硬件与软件发展历史 计算机由硬件和软件组成结构 二.Linux的发展史 Linux 操作系统是Unix操作系统的一种克隆系统.它诞生于1991年的10月5日(只是第一次正式向外公布的时间).以后借 ...

  2. Linux的发展史和centos7的安装

        目 录 第1章 Linux系统介绍与环境搭建准备UNIX操作系统    1 1.1 Unix的发展    1 1.2 MINIX的发展    1 1.3 GUN    1 1.4 Linux的 ...

  3. (day28)操作系统发展史+进程

    目录 一.操作系统发展史 (一)穿孔卡片(手工操作) (二)批处理系统(磁带存储) 1. 联机批处理系统 2. 脱机批处理系统 (三)多道技术 二.进程 (一)程序和进程 (二)进程调度 1. 先来先 ...

  4. Python并发编程01 /操作系统发展史、多进程理论

    Python并发编程01 /操作系统发展史.多进程理论 目录 Python并发编程01 /操作系统发展史.多进程理论 1. 操作系统 2. 进程理论 1. 操作系统 定义:管理控制协调计算机中硬件与软 ...

  5. Linux操作系统相关资料

    玩转Linux操作系统 操作系统发展史 只有硬件没有软件的计算机系统被称之为"裸机",我们很难用"裸机"来完成计算机日常的工作(如存储和运算),所以必须用特定的 ...

  6. UDP代码编写、操作系统发展史、多道技术、进程理论与代码层面创建、进程join方法与进程对象方法

    昨日内容回顾 socket基本使用 # 内置的模块 import socket s = socket.socket() # 默认是TCP协议 也可以切换为UDP协议 s.bind((ip,port)) ...

  7. 操作系统发展史 & 进程

    今日内容 UDP协议 操作系统发展史 进程 单核情况下的进程调度 进程三状态图 同步异步 阻塞非阻塞 内容详细 一.UDP协议 1.什么是UDP协议 UDP是传输层的协议,功能即为在IP的数据报服务之 ...

  8. Linux操作系统备份之三:通过二进制拷贝(dd)方式实现Linux操作系统数据的备份

    前面有两篇文章,<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>和<Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份& ...

  9. Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份

    http://www.tektea.com/archives/2163.html. 在<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>文章中,我们介绍了使 ...

随机推荐

  1. 【分布式协调】之理解paxos

    感叹一下 不得不说近几年国内软件行业发生了巨大的变化,之前几乎所有应用都围绕桌面展开,而近几年很多让人神魂颠倒的关键词一个接一个的映入眼帘:web2.0.移动应用.云计算.大数据.互联网的浪潮一波接着 ...

  2. Linux进程间通信之管道

    1,进程间通信 (IPC ) Inter-Process Communication 比较好理解概念的就是进程间通信就是在不同进程之间传播或交换信息. 2,linux下IPC机制的分类:管道.信号.共 ...

  3. Oracle中序列(SEQUENCE)的使用一例

    曾经在触发器中使用序列(SEQUENCE): create or replace trigger TRI_SUPPLIER before insert on SUPPLIER for each row ...

  4. 现代软件工程 第七章 【MSF】练习与讨论

    7.7  移山开发方法——比TFS敏捷更精简 几个软件学院的学生来请教阿超,同学们自豪地说,我们要用全套TFS敏捷开发模式开发项目! 真的?阿超不敢相信. 同学: 对!我们要用全5个工作项类型 – 任 ...

  5. 在无修改权限的情况下修改文件hosts中的内容

    今天遇到了一个问题,本来希望修改hosts中的内容,但保存时被告知无权限,网上搜索有很多方法都无效,最后搜到一个简单的方法:将hosts文件复制到桌面上,修改,然后覆盖原来位置的hosts文件即可!

  6. 素数筛 poj 3518

    给你一个n 求包括n的一个非素数区间有多长 +1输出 #include<stdio.h> #include<string.h> #include<algorithm> ...

  7. spoj705 后缀数组求不同子串的个数

    http://www.spoj.com/problems/SUBST1/en/  题目链接 SUBST1 - New Distinct Substrings no tags  Given a stri ...

  8. java-io-inputStream

    inputStream的方法 1. 关于InputStream.read()     在从数据流里读取数据时,为图简单,经常用InputStream.read()方法.这个方法是从流里每次只读取读取一 ...

  9. js-比较两个日期的大小

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head ...

  10. mindmup-editabletable-编辑table的使用

    官方网站:http://mindmup.github.io/editable-table/ github下载地址:https://github.com/mindmup/editable-table 我 ...