Linus Torvalds是Linux内核的发起者和主要维护者,时至今日,他的贡献代码量仍保持在2%,居于代码排行榜第一位。1991年时编写出了与UNIX兼容的0.02版Linux操作系统内核并在GPL条款下发布。由于GPL协议,这个操作系统内核是可以免费使用和自由传播的,Linux操作系统是自由软件和开源发展中最著名的例子。也正因如此,越来越多的人参与到这个项目的开发和维护中。因为它是类似于UNIX风格的操作系统,对当时它的发展起到了很大的促进作用。它最初只支持英特尔386处理器,但现在小到嵌入式芯片,大到超级计算机,都用上了Linux内核。根据里纳斯的自传所说,这只是他自己的一个项目,根本没想到后来会有这么大的发展,很多IT巨头都开始支持Linux。普遍认为,Linux和Windows相比具有更低的成本和更高的安全性和性能。
由于UNIX后来的商业化,一般只运行在昂贵的工作台上,硬件和操作系统都要花费很高的价格,普通人都难得一见。后来Andrew Tannebaum教授为了开UNIX操作系统的课程,自己独立开发了Minix操作系统,提供给自己学生的同时发布在网上,供人们免费使用,因为Minix具有UNIX的特点,但是与UNIX不完全兼容,并且教授固执的认为他的操作系统是为了教学,不想添加其他功能也不允许别人更改他的操作系统,所以1991年10月LinusTorvalds着手开始写自己的操作系统,同年11月,在很多热心的支持者的帮助下开发和推出了第一个稳定的Linux0.10工作版本。结果几句话就概括了,但过程真的很不容易,那段时间LinusTorvalds基本上除了睡觉吃饭,就是在编码,几乎没出过门。
后来1994年的3月,Linux1.0版本出现,在Linux设计过程中,Linus Torvalds借鉴了很多UNIX的思想,但是源代码都是独立写的。后面的发展迅速并有很多的IT公司的加入开发,程序员们也以在此项目上做出成绩而自豪,这时Linux迅速发展并普及并进入了商业领域。在1995年6月,发布了Linux 2.0版本,强大的它已经支持很多种处理器,并具有了非常重要的网络功能,增强了系统的文件与虚拟内存的性能。
Linux只是一个操作系统内核,而GNU提供了大量的自由软件来丰富在其之上的各种应用程序。因此,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容所有基于Linux内核的发行版Linux操作系统。基于这些组件的Linux软件被称为Linux发行版。Linux发行套件包含大量的软件,比如软件开发工具,数据库,Web服务器(例如Apache、Nginx),X Window,桌面环境,办公套件、shell程序、工具、编译器及工具等等。正是由于Linux使用了许多GNU程序,GNU计划的开创者Richard Stallman博士提议将Linux操作系统改名为GNU/Linux。但有些人只把操作系统叫做"Linux"。
接下来谈一谈Linux和GNU的关系。Linux的历史是和GNU紧密联系在一起的。GNU是由Richard Stallman在1983年9月27日公开发起的。它的目标是创建一套完全自由的操作系统,倡导所有软件都应该公布源代码。从1983年开始的GNU计划致力于开发一个自由并且完整的类Unix操作系统,包括软件开发工具和各种应用程序,但由于各种原因,RichardStallman受到资金等各种问题的影响,最后只能自己编写程序,包括了一个功能强大的文字编辑器Emacs,C语言编译器GCC。1985年Richard Stallman又创立了自由软件基金会来为GNU计划提供技术、法律以及财政支持。尽管GNU计划大部分时候是由个人自愿无偿贡献,但FSF有时还是会聘请程序员帮助编写。当GNU计划开始逐渐获得成功时,一些商业公司开始介入开发和技术支持。当中最著名的就是之后被RedHat兼并的Cygnus Solutions。到1991年Linux内核发布的时候,GNU已经几乎完成了除了系统内核之外的各种必备软件的开发。在Linus Torvalds和其他开发人员的努力下,GNU组件可以运行于Linux内核之上。整个内核是基于GNU通用公共许可,也就是GPL(General Pubic License)的,但是Linux内核并不是GNU 计划中的一部分。值得一提的是许多UNIX系统上也安装了GNU软件,因为GNU软件的质量比之前UNIX的软件还要好。GNU工具还被广泛地移植到Windows和Mac OS上。
操作系统是一台计算机必不可少的系统软件,是整个计算机系统的重中之重。Linux操作系统由内核(Kernel),外壳(shell)和应用程序三大部分组成。硬件平台是Linux操作系统运行的基础。内核是linux系统的心脏,是运行程序和管理硬件设备的核心程序,负责控制硬件设备,管理文件系统,程序流程以及其他工作。shell程序是系统的用户界面,提供用户与内核进行交互操作的一种接口。它接收用户命令,传达给内核处理,内核处理并把结果传送到界面。
学好Linux操作系统对未来的工作非常重要,在这我向需要学习Linux操作系统的朋友一本书籍,叫《Linux就该这么学》。本书十分适合初学者阅读,在网站上可直接观看,大家可以搜索linuxprobe就可以找到网站。希望大家都能学有所成。