Linux操作系统发展史
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操作系统发展史的更多相关文章
- 了解Linux操作系统发展阶段
一.硬件与软件发展历史 计算机由硬件和软件组成结构 二.Linux的发展史 Linux 操作系统是Unix操作系统的一种克隆系统.它诞生于1991年的10月5日(只是第一次正式向外公布的时间).以后借 ...
- Linux的发展史和centos7的安装
目 录 第1章 Linux系统介绍与环境搭建准备UNIX操作系统 1 1.1 Unix的发展 1 1.2 MINIX的发展 1 1.3 GUN 1 1.4 Linux的 ...
- (day28)操作系统发展史+进程
目录 一.操作系统发展史 (一)穿孔卡片(手工操作) (二)批处理系统(磁带存储) 1. 联机批处理系统 2. 脱机批处理系统 (三)多道技术 二.进程 (一)程序和进程 (二)进程调度 1. 先来先 ...
- Python并发编程01 /操作系统发展史、多进程理论
Python并发编程01 /操作系统发展史.多进程理论 目录 Python并发编程01 /操作系统发展史.多进程理论 1. 操作系统 2. 进程理论 1. 操作系统 定义:管理控制协调计算机中硬件与软 ...
- Linux操作系统相关资料
玩转Linux操作系统 操作系统发展史 只有硬件没有软件的计算机系统被称之为"裸机",我们很难用"裸机"来完成计算机日常的工作(如存储和运算),所以必须用特定的 ...
- UDP代码编写、操作系统发展史、多道技术、进程理论与代码层面创建、进程join方法与进程对象方法
昨日内容回顾 socket基本使用 # 内置的模块 import socket s = socket.socket() # 默认是TCP协议 也可以切换为UDP协议 s.bind((ip,port)) ...
- 操作系统发展史 & 进程
今日内容 UDP协议 操作系统发展史 进程 单核情况下的进程调度 进程三状态图 同步异步 阻塞非阻塞 内容详细 一.UDP协议 1.什么是UDP协议 UDP是传输层的协议,功能即为在IP的数据报服务之 ...
- Linux操作系统备份之三:通过二进制拷贝(dd)方式实现Linux操作系统数据的备份
前面有两篇文章,<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>和<Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份& ...
- Linux操作系统备份之二:通过tar拷贝分区实现Linux操作数据的在线备份
http://www.tektea.com/archives/2163.html. 在<Linux操作系统备份之一:使用LVM快照实现Linux操作系统数据的在线备份>文章中,我们介绍了使 ...
随机推荐
- 让mysql支持emoji表情
一.问题及原因 APP产品想对Emoji进行支持,但发现mysql数据库无法写入表情.原因是我们的mysql数据库默认用的是utf8编码,utf8编码存储时用的是三个字节,但Emoji表情是4个字节, ...
- Javascript的精华啊【如果以后我看到了或者想到了再继续补吧】
我不过略有一些讨人喜欢的地方而已,怎么会有什么迷人的魔力呢? 一.语法 JS只有一个数字类型,64位浮点数,所以1和1.0是相同的.为什么这么设计:防止短整型的溢出. 二.对象 1.通常将一个对象的值 ...
- grootjs 简明教程
grootJs简明教程 mvvm框架也是解决的一类问题,在某些时候会提高生产效率: 经过接近一个月的努力,grootJs测试版终于发布了 grootJs是一个mvvm的框架,名字取 grass 和ro ...
- Windows 10 后台音频
UWP版本的网易云音乐已经上架,虽然还不支持Windows Phone但是整体而言功能已经比较齐全了! 那么如何在Windows 10 UWP实现后台播放呢? 我之前是一直在做Windows Phon ...
- Tyk API网关介绍及安装说明
Tyk API网关介绍及安装说明 Tyk是一个开源的轻量级API网关程序. 什么是API网关 API网关是一个各类不同API的前置服务器.API网关封装了系统内部架构,对外提供统一服务.此外还可以实现 ...
- SQL2008R2 不支持用该后端版本设计数据库关系图或表
向下不兼容. 要么安装SQL2012,要么把SQL2012数据库通过脚本转成2008
- md5加密篇(一)
/// <summary> /// 获取文件的md5摘要 /// </summary> /// <param name="sFile">文件流& ...
- 生成短链(网址) ShortUrlLink
建表 CREATE TABLE [dbo].[ShortUrl]( [Id] [,) NOT NULL, [LongUrl] [nvarchar]() NOT NULL, [BaseUri] [int ...
- 可扩展性 Scalability
水平扩展和垂直扩展: Horizontal and vertical scaling Methods of adding more resources for a particular applica ...
- parse date receiving from mvc jsonresult
if we received data like this: ,"Date":"\/Date(1410969600000)\/", we can parse i ...