00:00
关于Linux诞生的过程和它的渊源,我们就已经都了解了,那接下来呢,我们要进一步的做一点扩展。在有一些文章或者资料里边,我们往往可以看到这样一个比较奇怪的写法啊,就是在Linux前面呢,加了一个斜杠,然后还有一个g nu。G nu Linux这是什么意思呢?它跟我们平常所说的单独的Linux又有什么关系呢?接下来我们就来讨论一下这部分话题,这就涉及到了在软件发展过程当中,一个非常著名的运动,就相当于是开源运动啊,开源软件运动。那我们知道Linux本身是一个开源免费的软件,它在李纳斯发布0.01版本的时候,直接就开源了,直接就公开了,那当时李纳斯是怎么样有这样一个想法的呢?可以说,他是受到了一个人的感召,受到了一个人的影响。
01:01
是谁呢?啊,这就要推出另外的一位大神。这位大神叫做理查德斯托曼。Richard stormy,啊,这这个人呢,被称作是自由软件支付啊,你看这个长头发加上大胡子啊啊,看起来就看起来很自由的这种感觉。这个人其实也非常的牛,他是一个职业黑客,有人称他为世界第一黑客,他当时是在MIT的AI实验室工作。当时在进入这个20世纪80年代之后呢,呃,当时的这个软件发展啊,有一个趋势,那就是都在做商业化啊,我们知道就是越来越多的这个软件啊,开始去注册所谓的软件专利啊,然后呢,就通过这个发布商业许可,版权的限制等等的这种方法来设置使用的壁垒,通过这种方式来赚钱来牟利。对这件事儿,理查德斯托曼非常的气愤,他作为一个这个职业黑客啊,他是一个运动的倡导者,这个运动叫做自由软件运动。
02:11
啊,那他这个自由软件运动是一个什么样的想法呢?它的一个基本理念就是软件不应该。收费,而且呢,他不应该完全的封装起来去让别人看不到你的源代码,因为在他看来,你要想让别人用你写的软件,你就应该把源码全部公开呀,让别人知道你要做什么呀,要不然的话,我怎么知道你给我的软件包里边有没有木马呢?诶,所以基于这样的一个想法,那所谓的这个专利软件啊,与自由软件对应的就是专利软件了,那其实看起来这就本身是一个欺骗消费者的行为嘛,啊,就是你买一袋食品里那个外包装上还得写清楚里面到底呃有什么样的这个配料表,能量是什么样的情况啊,所以软件也应该是公开透明的,专利软件本身就是一件不道德的事情。
03:03
那我们可能就说了,那你要这么说的话,这个做软件的公司,他到底靠什么来赚钱,靠什么来盈利呢?啊,理查德斯多曼的想法就是,那你公司盈利,你应该依靠提供服务和培训嘛,所以他在1985年的时候。就提出了一个,发表了一个著名的g nu宣言,他主要是要干什么事呢?就是表示我要开启一个伟大的宏伟的计划g nu计划。他的目标就是要创造一套完全自由的、免费的,而且兼容于unix。又不是unix的这样一套系统,诶,它就把这个东西叫做g nu啊,G nu本身的这个定义呢,它其实是一个递归定义啊,啊这个在技术上比较即刻的,这些老外往往就喜欢干这件事儿,它全称是什么呢?是递归定义啊,我们看啊就是g nu。
04:04
Is not。Unix。哎,所以你看这样的一个递归定义缩写就是首字母GN。有。也就是说,我现在要构建的可以看成是一个庞大的操作系统,包含了各种各样的软件,可以直接装在电脑上就可以用了,它是自由的,免费的,它兼容于unix,跟unix差不多,但是呢,它又不是unix,这就是GU的这样一个计划啊,它的一个宏伟的构想。那他在1989年的时候呢,呃,有。跟一堆律师起草了一个非常著名的一个协议,叫做g nu通用公共协议证书,哎,就是所谓的g general public license这样一个license简写叫做。GP。
05:01
所以这就相当于是自由软件进行发布的一个协议规范了,所以我们往往啊,在提到Linux的时候,有时候大家可能在一些文章里面会看到这样一个说法,就是GP怎么怎么样啊,就是慢,是否符合这个GP呃协议,那GPL主要这个规范是什么呢?诶他的想法就是说。允许。只要我们遵循这个协议,那就表示什么呢?表示我当前的源码是完全公开的,所有人都可以自由的阅读,自由的更改,而且改完了之后还可以进一步的去打包发布。但是它有一个要求,就是假如你用到了满足符合GPL,也就是说符合这个GU项目啊,这个下属的一些软件的话,你用到这些开源自由的软件的话,那么你打包发布之后也必须要遵循GPL协议规范。也就是说,你的开发出来新的代码也必须是开源的自由。
06:04
哎,这就是这个GPL规范所要求的,那跟我们前面提到的另外一个规范呢,就略有不同了,我们前面提到还有一个规范叫做BSD啊,那BSD伯克利的这个规范呢,它整体来讲其实也是免费的。自由的,那允许任何人在版留版权和许可协议信息的前提下啊,就是你得说明我当前用到了,呃,别人什么什么样的一个软件,然后呢,接下来你就可以随意的使用,而且任意的更改,然后进行发布。而且它不像GPL要求你更改之后的这个代码也要开源啊,他说你可以避源,你可以直接把它放到一个商业化的一个产品当中去啊,那所以说我们就会看到了。Free b SD呢?整体来讲,对于商业化的公司去更改代码就会更加的友好一点,这也是为什么苹果公司是基于BSD去进行自己操作系统的设计。
07:03
而对应的这个GPL呢,呃,整体来看的话,我们就说它限制了公司或者说程序开发者的一些自由,它最终保证的是谁的自由呢?保证的是最终用户的自由,最终使用这个软件的人,他永远都能看到所有的源代码啊,所以有人就是说这个自由软件运动啊,理念还是有有这个分歧,有不一致的地方的啊,GP这样一个规范强调的是最终使用软件的用户的自由。而BSD这个规范。他保证的是软件开发者啊,或者说公司的自由。这就是两种不同的协议规范。那理查德斯托曼在创建了G计划,然后又起草了G协议之后呢,接下来很多人就参与进来,在这个项目当中增砖添瓦啊,那一堆的软件都加入进来啊,很多东西就都可用了,那到1989年的时候,其实已经除了最关键最核心的操作系统内核之外。
08:12
其他绝大多数软件都已经完成了。那所以就差最核心的那一块东西了,那当时的g nu计划呢,它的核心是叫做g nu,然后一杠,它的名字叫her。所以除了这个操作系统内核,最难搞定的这个内核还是缺失状态,别的周围的东西都已经搞定,万事俱备,只欠东风,但是这个东西最难搞定。而这个时候呢,1991年的时候,李纳斯刚好完成了Li尼斯的开发,而且在理查德斯托曼的精神感召下,直接把这个项目开源了,诶,所以我们看这不是要什么来什么吗?所以就直接把Linux。这样一个操作系统内核,类似于unix的操作系统内核,直接加入到了自由软件j nu计划当中,这样一来,呃,我们整个这个GU计划就完备了,就完整了,所有的东西都有了,可以真正安装在电脑上去运行了,不光有底层的操作系统内核,而且外层还有各种各样丰富的软件。
09:20
就跟我们直接装了一个Windows一样,我们就可以直接使用自己的电脑了,所以这里我们要区分的呢,其实就是这样的一些概念,就是什么是Linux系统,什么是Linux内核,然后什么是j nu Linux啊,那么对于老外来讲,它一般是把这个缩写要连读的,所以很多老外把它读作glue Linux啊啊,那他们之间到底有什么样的区别呢?其实现在我们就可以总结一下了。在整个计算机的最底层,当然就是计算机的硬件,我们要操作电脑,最终就是要转化成指令去操作计算机硬件,那什么样的东西可以直接操作硬件呢?那当然就是操作系统。诶,所以。
10:05
在它之外必须要有一个硬件的接口层,这个接口层呢,其实就是操作系统的核心层,往往我们把它叫做kel。那李纳斯大神1991年当时发布的版本呢,其实就是Linux的核心层,Linux内核克隆,它是一个操作系统的内核部分啊,所以有时候我们提到Linux的时候,可能指的是狭义的Linux,这个时候所指的其实是什么呢?就是Linux,可能Linux内核,这是李纳斯所做的这个工作,那我们实际要用一个操作系统的时候,肯定在它之上,还应该要很多各种各样的应用程序啊,比方说我们要打开一个文档在Windows上啊,打开一个word,或者说我们想要用它去上网,去有一个这个FTP服务,或者说HTTP服务,有一个浏览器,那这些应用软件。
11:01
需要跟底层的操作系统内核要交流,要去通信,要去告诉底层的操作系统内核,我到底当前想干什么事儿,所以在K层的外边还应该有一个媒介,还应该有一个接口。这个媒介呢,就叫做shell啊,Shell呢其实是一个命令解释层啊,Shell我们知道它有这个外壳的意思啊,相当于一个接口,就是要连接我们外部的应用程序和内层的操作系统内核啊,那当然了,最外边当然就是外围的应用层了,所有的应用,包括文本编辑器,浏览器,数据库管理系统啊,DBMS以及图形化的桌面,其实都是在最外面这一层。那在这一层里边,所有的用户就可以非常直观的去操作电脑,所以我们说这个unix啊,它本身有一些商业化的发行版本,而Linux呢,它也有各种各样的发行版。
12:02
我们可以基于同一个内核,同一个版本,某个版本的Linux kernel,然后呢,在外围添加上不同的shell,添加上各种各样不同的外围应用程序,这样就构建出了不同的Linux整体操作系统,那这样的操作系统呢,我们就把它统称叫做g nu Linux。所以呃,一般来讲啊,如果我们提到的是一个完整的具体的直接可以上手使用的Linux系统的话,那其实是这样的g nu Linux啊,那往往我们具体使用的是一个它的发行版本,所以这里边我们可以看到啊,Linux kernel它的内核是整个操作系统的核心部分。主要他的工作干什么呢?来做内存管理,进程管理,设备驱动程序啊,还有这个文件系统,网络管理等等等等,而像其他一些这个应用软件界面的接口,外围的附加的驱动这些,那就是我们的这个外围应用层所要做的事情,他们可以在不同的发行版里边有所区别。
13:09
那回过头来我们就会看到啊,Linux的图标,这只企鹅,当时我们说他不是有点不太精神吗?有点慵懒,有点懒散吗?啊,用李纳斯的话说,它应该这是一只什么样的企鹅呢?这是一只就像刚喝了一大闸鲜啤酒,醉眼朦胧这样的一只企鹅,它的状态是什么呢?状态是微醺爽翻了的一个状态啊,那所以现在可能我们就稍微的可以理解一点了,因为Linux本来就是g nu计划里边的一员嘛,而且是GU计划的核心,它是一个自由软件。它是开源的,免费的,哎,那你说是不是就要慵懒一点就就很爽呢,所以可能李纳斯要的就是选这个图标,企鹅图标啊,可能要的就是这样一种自由散漫,无拘无束啊,非常爽的感觉。
我来说两句