1、linux 历史Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus Torvalds。目录创始人 吉祥物 编辑本段创始人 Linus Torvalds托瓦兹出生于芬兰赫尔辛基市。父亲尼尔斯托瓦兹(Nils Torvalds)是一名活跃的共产主义者及电台记者。托瓦兹家族属于在芬兰占6%
2、的少数民族芬兰瑞典人。他毕业于赫尔辛基大学计算机科学系,1997年至2003年在美国加州硅谷任职于全美达公司(Transmeta Corporation)参与该公司芯片的code morph技术研发。后受聘于开源码发展实验室(OSDL : Open Source Development Labs, Inc),全力开发Linux内核。现任职于Linux基金会。 编辑本段吉祥物 TuxTux(一只企鹅,全称为tuxedo,90916P40 Joeing Youthy)是Linux的标志。将企鹅作为Linux标志是由林纳斯托瓦兹提出的。 大多数人相信,“Tux”这个名字来源于Torvalds Uni
3、X,而不是因为它看起来像是穿着一件黑色小礼服(tuxedo)。 这个企鹅图案在最佳Linux图标竞赛中被选中。其他一些图案可以在Linux图标大赛网站中找到。Tux的设计者是Larry Ewing,他于1996年,利用GIMP软件设计出了这个企鹅。 Tux已经成为Linux和开源社区的象征。 编辑本段Linux诞生的历史条件Linux 操作系统是UNIX 操作系统的一种克隆系统。它诞生于1991 年的10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅
4、猛增长。 Linux 操作系统的诞生、发展和成长过程始终依赖着以下五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和Internet 网络。 下面主要根据这五个基本线索来追寻一下Linux 的开发历程,它的酝酿过程,最初的发展经历。首先分别介绍其中的四个基本要素(UNIX、MINIX、GNU 和POSIX,Internet 的重要性显而易见,所以不用对其罗嗦),然后根据Linux 的创始人Linus Toravlds 从对计算机感兴趣而自学计算机知识,到心里开始酝酿编制一个自己的操作系统,到最初Linux 内核0.01 版公布,以及从此如何艰难地一步一个脚
5、印地在全世界hacker 的帮助下最后推出比较完善的1.0 版本这段时间的发展经过,也即对Linux 的早期发展历史进行详细介绍。 UNIX 操作系统的诞生 肯汤普逊(左)和丹尼斯里奇(右)Linux 操作系统是UNIX 操作系统的一个克隆版本。UNIX 操作系统是美国贝尔实验室的肯汤普逊Ken.Thompson和丹尼斯里奇Dennis Ritchie 于1969 年夏在DEC PDP-7 小型计算机上开发的一个分时操作系统。当时Ken Thompson 为了能在闲置不用的PDP-7 计算机上运行他非常喜欢的星际旅行(Space travel)游戏,在1969 年夏天乘他夫人回家乡加利福尼亚渡
6、假期间,在一个月内开发出了unix 操作系统的原型。当时使用的是BCPL 语言(基本组合编程语言),后经Dennis Ritchie 于1972 年用移植性很强的C 语言进行了改写,使得UNIX 系统在大专院校得到了推广。 MINIX 操作系统 Andrew S. TanenbaumMINIX 系统是由Andrew S. Tanenbaum(AST)开发的。AST 是在荷兰Amsterdam 的Vrije 大学数学与计算机科学系统工作,是ACM 和IEEE 的资深会员(全世界也只有很少人是两会的资深会员)。共发表了100 多篇文章,5 本计算机书籍。AST 虽出生在美国纽约,但是是荷兰侨民(1
7、914 年他的祖辈来到美国)。他在纽约上的中学、M.I.T上的大学、加洲大学Berkeley 分校念的博士学位。由于读博士后的缘故,他来到了家乡荷兰。从此就与家乡一直有来往。后来就在Vrije 大学开始教书、带研究生了。荷兰首都Amsterdam 是个常年阴雨绵绵的城市,而对于AST 来说,这最好不过了,因为这样他就可以待在家里摆弄他的计算机了。MINIX 是他1987年编制的,主要用于学生学习操作系统原理。到91年时版本是1.5。目前主要有两个版本在使用: 1.5 版和2.0 版,当时该操作系统在大学使用是免费的,但其它用途不是,当然目前都已经是免费的,可以从许多FTP上下载。 对于Linu
8、x 系统,他表示对其开发者Linus 的称赞。但他认为Linux 的发展有很大原因是因为他为了保持minix 的小型化,能让学生在一个学期内就能学完,而没有接纳全世界许多人对Minix 的扩展要求。因此这激发了Linus 编写Linux。Linus 正好抓住了这个好时机。 作为一个操作系统,MINIX 并不是优秀者,但它同时提供了用C 语言和汇编语言写的系统源代码。这是第一次使得有抱负的程序员或hacker 能够阅读操作系统的源代码,在当时这种源代码是软件商一直小心地守护着的。 GNU 计划 Richard M. StallmanGNU 计划和自由软件基金会(the Free Software
9、 Foundation - FSF)是由Richard M. Stallman 于1984 年一手创办的。旨在开发一个类似 Unix、并且是自由软件的完整操作系统:GNU 系统。(GNU 是GNUs Not Unix的递归缩写,它的发音为guh-NEW。)各种使用linux 作为核心的GNU 操作系统正在被广泛的使用。虽然这些系统通常被称作Linux,但是严格地说,它们应该被称为GNU/Linux 系统。 到上世纪90 年代初,GNU 项目已经开发出许多高质量的自由软件,其中包括有名的emacs 编辑系统、bash shell 程序、gcc 系列编译程序、gdb 调试程序等等。这些软件为Lin
10、ux 操作系统的开发创造了一个合适的环境,是Linux 能够诞生的基础之一。以至于目前许多人都将Linux 操作系统称为GNU/Linux操作系统。 POSIX 标准POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 开发的一簇标准。该标准是基于现有的UNIX 实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。它是在1980 年早期一个UNIX 用户组(usr/group)的早期工作的基础上取得的。该UNIX 用户组原来试图将AT
11、&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 标准。到
12、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 个计划在进行,并且有1
13、6 个工作组参与了进来。与此同时,还有一些组织也在制定类似的标准,如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 标准要求的常数符号,
14、并且在注释中就写到ok,这也许是个玩笑,但我正在着手研究它呢。 Internet的传播1991 年7 月3 日在comp.os.minix 上发布的post 上就已经提到了正在搜集POSIX 的资料。其中透露了他正在进行Linux 系统的开发,并且在Linux 最初的时候已经想到要实现与POSIX(UNIX 的国际标准)的兼容问题了。 Linux 操作系统的诞生 1981 年IBM 公司推出享誉全球的微型计算机IBM PC。在1981-1991 年间,MS-DOS 操作系统一直是微型计算机上操作系统的主宰。此时计算机硬件价格虽然逐年下降,但软件价格仍然是居高不下。当时Apple 的MACs 操
15、作系统可以说是性能最好的,但是其天价没人能够轻易靠近。 到1991 年,GNU 计划已经开发出了许多工具软件。最受期盼的Gnu C 编译器已经出现,但还没有开发出免费的GNU 操作系统。即使是MINIX 也开始有了版权,需要购买才能得到源代码。而GNU 的操作系统HURD 一直在开发之中,但并不能在几年内完成。对于Linus 来说,已经不能等待了。从1991 年4 月份起,他开始酝酿并着手编制自己的操作系统。刚开始,他的目的很简单,只是为了学习Intel 386 体系结构保护模式运行方式下的编程技术。但后来Linux 的发展却完全改变了初衷。 1991 年初,Linus 开始在一台386sx
16、兼容微机上学习minix 操作系统。通过学习,他逐渐不能满足minix 系统的现有性能,并开始酝酿开发一个新的免费操作系统。根据Linux 在comp.os.minix 新闻组上发布的消息,我们可以知道他逐步从学习minix 系统到开发自己的Linux 的过程。 从1991 年的4 月份开始,Linus 几乎花了全部时间研究386-minix 系统(hack the kernel),并且尝试着移植GNU 的软件到该系统上(GNU gcc、bash、gdb 等)。并于4 月13 日在comp.os.minix 上发布说自己已经成功地将bash 移植到了minix 上,而且已经爱不释手、不能离开这
17、个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?(你最想在
18、minix 中见到什么?),在该消息中他首次透露出正在开发一个(免费的)386(486)操作系统,并且说只是兴趣而已,代码不会很大,也不会象GNU 的那样专业。开发免费操作系统这个想法从4 月份就开始酝酿了,希望大家反馈一些对于minix 系统中喜欢那些特色不喜欢什么等信息,由于实际的和其它一些原因,新开发的系统刚开始与minix 很象(并且使用了minix 的文件系统)。并且已经成功地将bash(1.08 版)和gcc(1.40 版)移植到了新系统上,而且再过几个月就可以使用了。 最后,Linus 申明他开发的操作系统没有使用一行minix 的源代码;而且由于使用了386 的任务切换特性,所
19、以该操作系统不好移植(没有可移植性),并且只能使用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 公司选择这个日
20、子发布它的新系统也不是偶然的。 Linux 名称的来由 Linux 操作系统刚开始时并没有被称作Linux,Linus 给他的操作系统取名为FREAX,其英文含义是怪诞的、怪物、异想天开等意思。在他将新的操作系统上载到ftp,funet。fi服务器上时,管理员Ari Lemke很不喜欢这个名称。他认为既然是Linus 的操作系统就取其谐音Linux 作为该操作系统的目录吧,于是Linux 这个名称就开始流传下来。 在Linus 的自传Just for Fun一书中,Linus 解释说:坦白地说,我从来没有想到过要用Linux 这个名称发布这个操作系统,因为这个名字有些太自负了。而我为最终发布版
21、准备的是什么名字呢Freax。实际上,内核代码中某些早期的Makefile - 用于描述如何编译源代码的文件 - 文件中就已经包含有Freax这个名字了,大约存在了半年左右。但其实这也没什么关系,在当时还不需要一个名字,因为我还没有向任何人发布过内核代码。而Ari Lemke,他坚持要用自己的方式将内核代码放到ftp 站点上,并且非常不喜欢Freax 这个名字。他坚持要用现在这个名字(Linux),我承认当时我并没有跟他多争论。但这都是他取的名字。所以我可以光明正大地说我并不自负,或者部分坦白地说我并没有本位主义思想。但我想好吧,这也是个好名字,而且以后为这事我总能说服别人,就象我现在做的这样
22、。- Linus TorvaldsJust for fun第84-88 页。 编辑本段Linux内核 深入理解linux内核Linux是最受欢迎的自由电脑操作系统内核。它是一个用C语言和汇编语言写成,符合POSIX标准的类Unix操作系统。Linux最早是由芬兰黑客林纳斯.托瓦兹(Linus B. Torvalds)为尝试在英特尔x86架构上提供自由免费的类Unix操作系统而开发的。该计划开始于1991年,林纳斯托瓦兹当时在Usenet新闻组comp.os.minix登载帖子,这份著名的帖子标示着Linux计划的正式开始。 在计划的早期有一些Minix黑客提供了协助,而今天全球无数程序员正在为
23、该计划无偿提供帮助。 技术上说Linux是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于Linux内核的完整操作系统叫作Linux操作系统,或是GNU/Linux。 基本思想Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说Linux是基于Unix的,很大程度上也是因为这两者的基本思想十分相近。 版本命名Linux内核有三个不同的
24、命名方案。 早期版本: 第一个版本的内核是0.01。其次是0.02,0.03,0.10,0.11,0.12(第一GPL版本),0.95,0.96,0.97,0.98,0.99及1.0。 从0.95版有许多的补丁发布于主要版本版本之间。 旧计划(1.0和2.6版之间),版本的格式为A.B.C,其中A,B,C代表: A大幅度转变的内核。这是很少发生变化,只有当发生重大变化的代码和核心发生才会发生。在历史上曾改变两次的内核:1994年的1.0及1996年的2.0。 B是指一些重大修改的内核。 内核使用了传统的奇数次要版本号码的软件号码系统(用偶数的次要版本号码来表示稳定版本)。 C是指轻微修订的内核
25、。这个数字当有安全补丁,bug修复,新的功能或驱动程序,内核便会有变化。 第三次,自2.6.0(2003年12月)发布后,人们认识到,更短的发布周期将是有益的。自那时起,版本的格式为A.B.C.D,其中A,B,C,D代表: A和B是无关紧要的 C是内核的版本 D是安全补丁 编辑本段Linux的读法linux发音五花八门版本颇多,见到和听到的不下10种。根据linux的创始人Linus Torvalds的说法,Linux的发音和“Minix”是押韵的。“Li”中“i”的发音类似于“Minix”中“i”的发音,而“nux”中“u”的发音类似于英文单词“profess”中“o”的发音。依照国际音标应
26、该是/links/类似于“里讷克斯”。但是,由于Linus Torvalds本人是芬兰人,所以他的Linux读音不是/links/,而是/liniks/.。 有人综合网上和linux自己的读音,概括出几个自认为最合适也最通用的读法:/links/(“里那克斯”)或/li:nks/(“里讷克斯”)或/linju:ks/(“里纽克斯”)。这几个应该是谁都听得懂的。至于哪个比较正宗,当然是linux的原音。但事实上使用linux哪种读法的人似乎都不在少数。 编辑本段桌面环境在图形计算中,一个桌面环境(Desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI)。
27、这个名称来自桌面比拟,对应于早期的文字命令行界面(CLI)。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性,赋予了它与众不同的外观和感觉。 现今主流的桌面环境有KDE,gnome,Xfce,LXDE等,除此之外还有Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE等。 KDEKDE(Kool Desktop Environment)项目始建于1996年10月,相对于GNOME还要早一些。KDE项目是由图形排版工具Lyx的开发者、一位名为Matthias Ettrich的德国
28、人发起的,目的是为满足普通用户也能够通过简单易用的桌面来管理Unix工作站上的各种应用软件以及完成各种任务。 gnomeGNOME即GNU网络对象模型环境 (The GNU Network Object Model Environment),GNU计划的一部分,开放源码运动的一个重要组成部分。 是一种让使用者容易操作和设定电脑环境的工具。 目标是基于自由软件,为Unix或者类Unix操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,他是GNU计划的正式桌面。 XfceXfce(XForms Common Environment)创建于2007年7月,类似于商业图形环境CDE,是一个运行
29、在各类Unix下的轻量级桌面环境。原作者Olivier Fourdan最先设计XFce是基于XForms三维图形库。Xfce设计目的是用来提高系统的效率,在节省系统资源的同时,能够快速加载和执行应用程序。 编辑本段Linux发行版 linux 版本历史Linux发行版指的就是我们通常所说的“Linux操作系统”,它可能是由一个组织,公司或者个人发行的。Linux主要作为Linux发行版(通常被称为distro)的一部分而使用。通常来讲,一个Linux发行版包括Linux内核,将整个软件安装到电脑上的一套安装工具,各种GNU软件,其他的一些自由软件,在一些特定的Linux发行版中也有一些专有软件
30、。发行版为许多不同的目的而制作,包括对不同计算机结构的支持,对一个具体区域或语言的本地化,实时应用,和嵌入式系统。目前,超过三百个发行版被积极的开发,最普遍被使用的发行版有大约十二个。 一个典型的Linux发行版包括:Linux核心,一些GNU库和工具,命令行shell,图形界面的X窗口系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公包,编译器,文本编辑器到科学工具的应用软件。 很多版本Linux发行版使用LiveCD,是不需要安装就能使用的版本。 主流的Linux发行版Ubuntu, Debian GNU/Linux ,Fedora ,Gentoo ,MandrivaLinux
31、 ,PCLinuxOS,Slackware Linux ,openSUSE,ArchLinux,Puppylinux,Mint, CentOS,Red Hat等。 中国大陆的Linux发行版 中标麒麟Linux, 红旗Linux(Red-flag Linux) ,Qomo Linux(原Everest),冲浪Linux(Xteam Linux) ,蓝点Linux ,新华Linux ,共创Linux ,百资Linux ,veket, lucky8k-veket.Open Desktop ,Hiweed GNU/Linux ,Magic Linux ,Engineering Computing GNU/Linux ,kylin,中标普华Linux ,中软Linux ,新华华镭Linux(RaysLX) ,CD Linux ,MC Linux ,即时Linux(Thizlinux) ,b2d linux ,IBOX ,MCLOS ,FANX,酷博linux,新氧Linux,Hiweed,Deepin Linux,雨林木风YLMF OS。 需要说明的是,Ylmf OS、新氧、Hiweed、Deepin都是基于ubuntu,并且Deepin Linux是Hiweed与深度合并后的版本,原来的Hiweed已经停止更新,新氧也停止更新了。其中CD linu
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1