linux基础篇之操作系统(五)

    大概九几年的时候,unix商用以后开始卖钱了,很多原来的科研机构或者高校就不能再免费试用,这包括当时荷兰的一所大学,当时荷兰阿姆斯特丹大学有个教授叫安德鲁,这个教授一直在使用unix进行教学,但是unix不让用,以后他很是恼火,觉得不爽,于是他也决定能够仿造unix再自己开发一个操作系统来进行上课用,于是另外一个操作系统诞生了叫做Minix,他说他是小的unix,和unix系统完全相像,甚至API都是兼容的,但是体积要小的多,刚开始的时候大概只有4000行代码,后来已经非常复杂了,那安德鲁就拿着它这个系统在欧洲各地教学,荷兰是小国家,所以整个欧洲是欧盟,老师们、教授们在整个欧盟内部是可以自由流动的,那因此,有一年到了芬兰赫尔辛基来进行上课,Minix是开发在这个教授自己的主机上的,很多地方使用汇编语言写的,尤其是驱动程序,那因此,他的学生们学习Minix的时候,要装在自己的主机上,不得不自己手动开发驱动,这让很多学生很是不爽。

    有些非常牛的学生专门给他的系统写了很多驱动,跟着教授谈,希望能够直接把这个系统加进系统里边来,这老教授非常固执,不让加,不让外来代码污染Minix系统,黑客们很是不爽,这其中包括赫尔辛基大学的一个学生叫Linus,Linus也不爽了,当时Linus的外公好像是芬兰的高管,就相当于中国的信息工业化部的部长,在Linus过20岁生日的时候,给Linus送了一个80386的PC机,他当时在他的机器上好像装了个什么unix系统,但是用一次不让他用了,后来因为他这个版权问题,所以装了Minix,但是那个老头又这么固执,也不爽,于是他也决定自己写一个,于是花了几天时间,出了一个系统,并且把他的工作发布到网上,后来至于名字为什么叫做linux了,这个至今也没人能说得清,反正是后面的s就变成x了,可能为了跟unix像,名字就这样来的,而且他在网上说,我最近写了一个小系统,咱跟那老头不一样,这个系统是随便任何人改的,你可以根据你的需要往里面加任何内容,并且你只需要把你加的内容给我一个反馈告诉我,你加了什么东西,这样以来,正是他的这种思想,使得linux在全球迅速流行开来,当然这是一个历史契机,并不是说linux天生就具有这种强大的生命力,而是在unix商业化的时候。

    80年代,在美国麻省理工学院有一个著名的教授叫 理查德(richard),这位教授很了不起,他认为程序是全人类的思想的结晶,而不应该为某一个流氓公司所独有,所以他举起了自由的大旗,他倡导软件应该公开给全球使用,谁也不能够也不应该把这个软件自己封闭,而且拿来去卖钱,
像微软或者像unix一样,不但如此,很多的程序员也都非常赞成他的这种做法,因此全球的很多的黑客级别的人物都纷纷支持,为此,理查德专门成立了一个组织,叫做GNU,GNU是什么呢?它是个递归缩写,意思是GNU 不是 unix,GNU is not unix,GNU是什么,GNU就是GNU!懂了吗?这叫递归缩写,为什么GNU说他不是unix?因为unix商业化了,他不商业化,明白这意思吗?
他发起了程序界的共产主义运动,他认为,程序是共产的,共产主义运动的标志就是共产党宣言,对吗?马克思领导的对吧?所以GNU组织的这种运动也需要一种宣言,那凡是遵守这种宣言的,都可以加入到共产党里边来,是不是这意思啊?所以他们也需要一个宣言,因此GPL诞生了,GPL就相当于共产党宣言,而GNU就相当于一种运动,共产主义运动,那GPL指的是什么?叫 
general public license,我们称为叫通用公共许可证,任何人开发的软件,只要说自己遵循GPL协定,那么就认为它的软件是自由软件,任何人都可以自由获取,自由修改,自由学习,自由安装使用,所以叫GPL,那么,它的GNU运动和它的GPL宣言,受到全球很多组织和个人的支持,他们纷纷为贡献自己的力量,这其中就包括当时研发了很多非常著名的产品,比如像Emacs,我不知道各位听说过没有?这是非常非常著名的一款文本编辑器,还有像GCC ,叫gnu c compare,叫做gnu的c编译器,我们说过编译器是什么?将语言转换成计算机可以运行的程序的二进制格式的是不是?gcc就是这么个东西,当然,一个好的编译器几乎决定了绝大多数程序的运行效率,
GCC就是这么一个编译器,但是不管这些人怎么去运行,提供这些程序,这些程序还在运行在一个unix上,程序必须要运行内核上,你看上unix,你又离不开unix,这好像是莫大的讽刺,所以这帮人很郁闷,就要求理查德给我们提供一个内核吧,我们是时候该独立出来了,对不对?理查德也满口答应,但是一晃五年过去了,依然没有什么东西,恰好,不早不晚,他们相遇了,没有别的什么,只有轻轻的说一声,你也在这里,原来你也在这里,OK,所以当linux诞生那一刻起,它就很好的跟GNU组织所需要内核的这样一种现状达成了一种天造地设,珠联璧合的组合,那真是海枯石烂,山无棱,天地合是吧?大概就是这种情况下,所以二者一相遇,就是惊天地,泣鬼神的,那因此用了linux的内核,从此以后,GCC 的emax等程序再也不需要运用unix了,更重要的是linucs宣布自己加入GNU组织,也就意味着linux本身就属于GNU的,它也遵循gpl协定,所以从此以后,
GNU组织有了自己完整意义上的操作系统。
    所以,我们说linux出现是一个非常好的契机,使得它才发展起来,但是,各位要明白linus所提供给我们的只是内核,linux只是一个内核,它本身不是应用程序,它甚至没有一个通用的库,在linux上叫glibc,我们说的c库或者API,GCC是它的编译器,利用GCC,它也能够移植过来很多其他软件,比如像bash,GNU组织还有另外一个著名的软件叫bash shell,命令行界面。
    那因此,linus在他的linux诞生以后,他使用GCC编译器给他系统上移植了一个shell,使得他的系统能够跑起来了,所以他向全世界宣告说他linux诞生的时候,
这无疑给全世界的这些黑客们注入了一个兴奋剂,所以使得这些黑客们迅速的团结在linux的周围,为linux开发诸多应用,所以短短几年的时间,大概这个是91年,linux版本的内核,版本是01,而到94年的时候10就诞生了,而10诞生出来的时候l,inux已经能够完全可以跑在很多主机上了,尤其是PC机上,X86系列的PC机上,此后,又通过全球各地程序员的不懈努力,他们被移植到了各种平台上,powerpc、power、spark等等,几乎都能跑起来,那所以我们说,当我们提到linux的时候,各位应该明白,它只是个内核,而完整意义上的linux操作系统叫做GNU linux,因为GNU提供了各种外围软件,这个我们要理解,当然,
这也是理查德(Richard Matthew Stallman)希望的名字,只不过大家都知道linux,不知道gnu,这也让理查德很长一段时间落寞不已,到今天为止,
当别人说linux的时候,Stallman仍然站起来大吼一声,那叫gnu linux,今天仍然是这种现状,大家只知linux,不知gnu,需要注意的是,无论是更多的软件还是linux的内核,
他们都是源代码,什么叫原代码?使用c开发的程序能理解吧?那因此我们说过,任何程序语言所开发的程序,要想运行起来该怎么办?编译对吧?得编译成二进制,什么是二进制?就是0101代码,只有编译成01代码,我们的计算机才能识别,然后才能运行这个程序,对不对?
但是能有多少人有这种能力去编译呢?何况你要编一个程序,是不是这个编译器才能运行啊?因此,我们必须要借助一个很好的,已经能够运行系统上的编译器,才能编译程序的,
但是更重要的是,编译必须要两个平台完全一样,也就意味着我编译之后,期望它能在x86上运行,那你必须要在X86上进行编译,否则。你编译程程序只能在当前时间运行,
拿到其他主机上运行不了,我说过的,它不能跨平台,记得吗?OK,那我们如果不得不必须要进行编译,我在aCPU上编译,在bCPU上去运行,那这种编译我们称做交叉编译,很多同学应该听说过的,叫交叉编译,但这要麻烦的多,尽管都是二进制,尽管甚至都是英特尔的CPU,你在英特尔系列的酷睿系列上编译出来的程序,它未必能在奔腾上运行,因为CPU所支持的二进制格式也各不相同,而这种格式我们把它称为abi,
我们称为叫应用二进制接口,application binary interface,叫做abi,
所以如果某一个CPU所支持的特性比另外一个古老CPU所支持的特性多的话,
它们仍然是无法直接交叉的,当然,一般来讲,在库上运行没问题,因为库里是相互兼容的,兼容老的产品的,那理解就行,想一下,我们linus通过这种方式,通过语言代码的形式方式,向全球的使用者来公布,谁能够编译出来呢?我们作为一个计算机的初学者来讲,你上来,先不告诉你,你要我要学计算机,计算机得有系统,要想要有系统,你得编译内核,你得编译程序,编译是什么你知道吗?是不是?所以很多人压根就用不成这个,
用不成linux,那怎么办呢?就出来一些第三方组织,这些组织就专门负责去编译Linux内核和各种外围应用程序,并且将它们打包发行成为一个可安装的便捷的的linux,后来直接做成二进制,向外打包发行,而这种组织就包括1993年成立在美国北卡莱纳州的red hat,当然,也包括91年诞生的最古老的叫sls是吧?还有92年左右美国普渡大学的一个学生,叫伊恩-默多克研发的叫debian,以他妻子的名字第一笔开头,他这个名字是an结尾,所以用他妻子的名字和他的名字结合起来,弄成这样一个很诡异的名字,叫debian,另外,德国还有三个大学生,组织起来研发了另外一个系统,叫suse或者发行另外一个系统,但是sls也好,debian也好,suse也好,他们本身都不是linux的开发者,或者不是linux本身的拥有者,他们只是负责,将源代码格式的linux,在通用的计算机平台上编译成通用格式使得其他人拿到以后可以在大多数硬件平台上安装并使用的,
能理解吗?其他用户不需要再编译了,所以这些人被称为叫linux的发行商,所以内核是由linus维护的,软件是由GNU组织维护的,而red hat也好,debian也好,suse也好,只是负责包装发行,
只不过他们在各自包装发行过程当中,加入了自己对于一个操作系统的理解,加入了自己对于某些参数的调整,
加入了自己的公司的logo,使得你的linux看起来各不相同,事实上,内核一样,软件一样,可能配置文件不一样而已,可以理解吗?什么是配置文件?后面我讲到程序管理的时候会给大家细讲,好,这是几个著名的发行商,但是各位应该明白,无论你怎么发行?red hat也好,suse也好,sls也好,debian也好,无论怎么对它进行发行,我们必须要将软件给它做成二进制格式,那这个二进制格式以什么方式展现?比如说,我们有内核,他也需要各种外围软件,而假如说,gnu提供了两万个外围软件,他不能说让系统一装,把这两万个都装上去,对吧?或者说某一个我装上去了,我想把它卸掉怎么办?早期这些软件都是直接被打包到一块进行安装的,这不便于软件包的单个管理,那因此,他们也期望能够提供一种在整个系统上专门用于管理软件的管理器,著名的debian就提供了一个著名的管理器,大概就叫dpt,好像是debian package tools,这是我们的dpt,后来red hat就模仿dpt研发了另外一个叫RPM,这是模仿的,叫做RPM,叫红帽软件包管理器,有它以后,这些软件包都能够由这个管理器进行管理,可以方便的实现卸载查询升级,安装校验等各种功能,当然,具体的细节,我们后面讲到软件包管理的时候再给大家细讲,给出一个基本概念就可以了,那无论如何,这些系统他们本身都遵循GPL,就算是红帽把它做成了二进制格式,但是它也必须要把它的软件包的源码格式公布出来,因为GPL有这种规定,GPL是怎么规定的呢?任何人,当你获取GPL组织的软件程序以后,无论你怎么改,改完之后必须要把你改的内容也一并公布出来,不公布有侵权,他们主要是为了保证软件自由的,所以GPL是像一个病毒一样,任何人都不敢沾它,后来很多商业公司想用GPL的软件,可以啊,用完之后比方说GPL,我这个软件有20行代码,我借鉴了,其中十行我自己又研发了一万行,但是对不起,你的代码必须得公开,这是规定,所以使得很多人不敢再去使用,GNU和GPL的这样的软件,这就大大阻碍了自由的进程,虽然它是为了保证自由,反而反过来又阻碍了自由的进程,那因此,GPL这个协定也发展,也进行了改进,它后来又有了LGPL 指的比较宽松一些的GPL,而且是在库机上实现兼容,除此之外GPL还有第二版叫 GPL version2,2是GPL的版本,3是今天为止,是比较流行的,它的每一个版本的协定可能各不相同,各位一定要记得将来当你供职于某一家商业公司去使用这些自由软件的时候,一定要认真看它的版权协定,尤其看GPL这种协定,当然我们说过,尽管如此,GPL仍然是非常严苛的,非常苛刻,所以也有一些其他组织开源组织,做了另外一种协定,这种协定非常宽松,比如像bsd,比如apache,他们也有自己的协定,这种协定非常宽泛,我的软件编译好了,你拿来爱怎么用怎么用,你拿来,比如说,你用了我一万行,你自己加了一行,你说是你的,你拿了去卖钱,那也无所谓,只要你别说,你就说这个软件就是我研发的就行,宽松到这种地步,所以使得bsd和apache目前来讲反而非常流行起来了,这也是我们开源界,什么叫开源?理解吧,源代码开放了,就这个意思,所以软件是自由的,那自由指的是什么?就是你能够自由下载,自由获取,自由修改,自由学习。为了你可以为任何目的进行使用,这是自由软件的基本前提,或者叫基本思想,这是开源和自由,它们两个之间是密不可分的,大家应该知道,有时候有人也把开源称简称为OS叫open source,叫OS,但是OS也叫operating system,对吧?这简写容易混淆,所以各位明白我们这个叫open source,开放源代码,所以GPL就是这么一个严苛的程序,但是我们的Linux内核就是遵循GPL的,那彼此之间当然是目前来讲能够装在linux之上的,很多软件可能有些是遵循gnu的,有些是遵循bsd的,但不管怎么地,红帽也好,debian也好,他们负责包装发行二进制程序的任何一个程序,他必须要将他的原程序公布出来,因为他用的程序是遵循gnu的,这能理解吧,无论他怎么改,他们也必须要把那改好的都公布出来,所以红帽向外进行发布系统的时候,他就发布了两种版本,一种是包装好的二进制格式的,一种是原代码格式的,但是这样一来不当紧,人家红帽好不容易做好一个系统,想先去赚钱,自由并不意味着是免费,为什么呢?我软件要公布出来,你就可以自由下载,自由下载使用过程当中,如果使用出了问题了,就概不负责,能理解吗?那想让我负责怎么办?拿服务费明白了吧?收费收的是服务费,而不是版权费,你想你买WINDOWS,你买的是个软件的授权使用费,而买red hat,很多地方也需要去买,甚至也很很贵,买一年的授权8千美元,都很常见的,那你要记得买的不是软件,而是服务,而这一年的服务,比如说你花的钱越多,他们响应时间越短,两小时内响应,电话响应,一个小时内响应,甚至保证五分钟之内响应,花钱越多,显得对方响的越快,出了问题,最后你解决问题的速度也就越快,所以叫服务等级,好了,不但如此。像红帽这个组织,为了能够赚钱,我不是把软件公开给你吗?但是后来比如说这个软件升级了,有补丁出现,那怎么办?我做的这个补丁,我不公开给你,这个补丁跟原程序没关系,或者我公开你也可以只公开你一个代码,不公开你二进制的源代码给你了,你自己爱咋装咋装,但是很多人装不上去,我跟你说过是不是?那怎么办?买服务也就是买了他后续的升级保证,但是这让人很不熟,对吗?所以就有些组织不爽了,这个组织就包括像叫做centos的组织,centos是什么意思?说白了就叫社区企业操作系统,community 社区的,一旦说社区就是开放的意思,ent叫enterprice,企业的operating system简称为叫centos,centos是干什么呢?
    刚才我们说过,红帽不是把它的各种语言程序都要发布出来吗?你不是不给我二进制的升级补丁吗?centos负责,你只要做了二进制程序,我都给你做成二进制格式,直接发布源码,而且做的跟他的红帽,原来格式一模一样兼容,所以你不让升级,centos能让你升级,所以我们说centos是社区版的red hat,能理解了吗?但是红帽由于是红帽公司的,注册商标,所以centos不能使用红帽这个名字,因此后来改名,它的起名叫centos,图标不一样,logo不一样,但是它的程序格式是完全兼容的,但是centos不提供服务保证,你如果使用过程中系统崩溃了,就没人关了,能理解吧好,所以对那些不愿意花钱的公司来讲,而且能够自己保证服务运行的话,你可以使用centos,实际上国内的很多组织使用都是centos。
    我们刚才说过,它的源码是完全兼容的,好了,红帽其实刚刚诞生的时候,它的那个版本是不是说运行在服务器上的?也不是运行在具有颗cpu的主机上的,而且那时候是个人版,像红帽1.0、2.0、3.0、4.0 到后来9.0,大概是2001年9.0出现,那时候,它的系统已经进入了一个非常稳定,非常靠得住的一个阶段了,与此同时,红帽开始发展到企业版,叫红帽企业版 red hat enterprise的版本,刚才我说的9.0,那些都是个人版,它的企业版大概从2001年,著名的3.0系列开始就是比较著名的,到后来4.0、5.0到6.0,这是企业的,所以,各位应该知道,9.0是个人版系列的,而6.0是企业版系列的,当然我们学习,将来系统就是在企业级运行中,更何况,个人版在2003年就已经终止了,不再提供任何支持和后续的东西,并且朋友把他的个人版捐献给了另外一家组织叫做fedora,这是另外一个开源组织,fedora在获得红帽个人版以后,他就负责在他的个人版的基础上,给他引入新特性,引入新驱动,引入新功能,修复一些bug等等,更新版本非常快,它每六个月一般来讲升级一次版本,所以从2003年开始一开始到今天为止已经到40了,好像是,而红帽企业级一般2到3年甚至3到5年才更新一次的,所以红帽二十多年走来,才也才到8而已,但是fedora所引用的各种新特性,在经过测试稳定以后,都会被后续引入到企业级来使用的,所以fedora是为企业级提供测试、应用环境的,能理解吗?OK,所以这是这个主流系列叫fedora,事实上,基于红帽二次发行的版本还有很多,像mandriva版,各位可能也听说过这个,这个也很漂亮,主要用在个人桌面上,桌面界面做的很漂亮,但是各位可能会发现红帽系的界面做的很丑陋,因为它压根就不是用于桌面的,甚至都不是想让你装他的图形界面,将来我们的整个操作激活也不会用到图形界面,而且它的图形界面是很容易崩溃的,所以我们大多数情况下都要使用命令,而的主要着眼点就在于它的桌面,好,这是红帽系列,再说 suse,已经被收购了,现在属于novell,曾经在九几年的时候推出过一个系统叫NetWare,不知道听说过没有?在网络刚刚诞生的时候NetWare是网络著名的网络操作系统,当时在网络服务器界,它的市场占有度达到90%,但后来WINDOWS nt出现了,简单易用的NetWare立即被夺去了半壁江山,两年以后,几乎销声匿迹,什么概念,惨败,铩羽而归,是吧?这绝对是惨败,所以novell一直想东山再起,把微软踩在脚下,各种方式不遗余力买unix,买贝尔实验室,不行,后来买suse,还是不行。
    再后来,跟微软同流合污,说要将linux跟WINDOWS能够交互式的,所以,很多开源界的人视novell为开源界的叛徒,把suse带入了歧路,但不管怎么讲,suse目前来讲,它有企业级应用和开放开源两个版本,所以suse有suse和open suse两个版本,不用解释,open指的是开放的意思,好,这是suse,当然suse的前身,实际上是sls,它是基于sls的发展而来的,再说这边sls不说了,再说debian,debian刚才我说过,它的创建者非常独特,名字也来源也非常独特,但是debain和red hat、suse比起来,是目前唯一一个不受商业组织支持的系统,red hat有商业公司,suse也有上市公司,对不对?但是debian没有,它的所有者,负责维护debian的,通通都是来自于互联网,让大家自发联合起来去维护的,就像维护linux一样,但是debian是这三者当中,技术最先进的也是最难用的,所以对高级用户来讲,用的比较多,而redhet 在国内非常流行,在北美和中国是非常流行的,suse在欧洲非常流行,debian在高级用户中非常流行,OK,所以debian加入的限制也很少,运行的时候所需要的一些垃圾文件也很少,但是,入门起来比红帽要难,他所能够获取的资料也没红帽多,所以大家学习红帽是非常好的入门,况且debian和红帽也没什么区别,用的软件都一样,对不对?不同之处在于它的配置文件不一样,组织机制不一样,好,那因此,既然基于红帽有很多二次发行版,那基于debain也有,比方说,各位可能许多人了解这个乌班图,是吧,ubuntu,但是ubuntu基于debian发行,二次发行,它的界面做的非常漂亮,主要专注于PC机的使用,所以现在很多的笔记本卖的时候可能里边直接装了系统,预装的是英语的linux,当然,基于debian还有二次发行的叫mint,比ubuntu的还漂亮,在桌面上可能更易用,而且ubuntu,它的主体颜色色调是胶泥色的,灰色的,而mint的主体颜色是绿色的,主色调是绿色的。勤于动手,无论他怎么花哨,怎么变,万变不离其宗,他们核心也都是linux软件,也都是各种软件,只不过软件包的管理方式,安装卸载方法不一样,界面logo不一样,配置文件的路径可能不一样而已,其他几乎 没什么不同,核心概念都是一样,所以我学习一个即可,在国内用的最多的是centos,有些企业可能,比方说外企,或者合资,可能用的是ubuntu,对我们而言,学习centos是最好的,当然,centos跟red hat是完全兼容的,对吗?所以我们的学习过程一直用的是red hat,这无所谓了,对客户来讲,应该不是什么问题,好,我不知道我是不是说明白了linux的由来,它是什么东西?跟gnu是什么?GPL是什么?linux是什么?好,刚才我们提到过linux是内核,而内核这个软件是有版本的,你比如说我们说过91年是0.1对吧?到后来94年1.0再到后来2.0,2.2几个著名的版本2.4,2.6,再到后来的3.0,4.0,5.0以及现在的6.0什么之类的,它的官方站点 www. kernel.org,
    注意,这是Linux内核的版本,内核这个软件自身的版本,那接下来我们还要说一说另外一个版本,再看红帽,我们红帽叫简写为叫红帽企业版rgel,叫红red hat enterprise linux,它有这刚才我提到过什么3.0,4.0是吧,5.0,6.0,刚才我们是不是提到过?那这个版本到底有什么呢?这是它的发行版的版本,而不是内核版本,各位记得这点,所以它是红帽的系统版本,而不是linux版本,一定要记得,那suse也是这个道理,suse目前比较新的是12.0,debian最新版本好像是12.0,但是他们核心都是linux,仍然都是linux,可能2.6的或者3.x的或者4.x的什么之类的,所以这两个压根就不同主线上的版本的区别,各位一定要理解,好,这是我们的linux的由来,以及各种常见的linux。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值