《 跟老男孩学Linux运维:核心基础篇(上)(第2版)》 —1.3 Linux核心概念知识

举报
华章计算机 发表于 2019/11/15 13:11:47 2019/11/15
【摘要】 本节书摘来自华章计算机《跟老男孩学Linux运维:核心基础篇(上)(第2版)》一书中第1章,第1.4节,作者是老男孩 。

1.3 Linux核心概念知识

1.3.1 自由软件与FSF

1.自由软件

简单地理解,自由软件的核心就是没有商业化软件版权制约,源代码开放,可以无约束地自由传播。

注意:自由软件强调的是权利问题,而非是否免费的问题。大家一定要理解这个概念,自由软件中的自由是“言论自由”中的“自由”,而不是“免费啤酒”中的“免费”。

自由意味着freedom,而免费意味着free,这是完全不同的两个概念。例如,Red Hat Linux自由但不免费,CentOS Linux则是自由且免费的。

自由软件关乎使用者运行、复制、发布、研究、修改和改进该软件的自由。更精确地说,自由软件赋予软件使用者四种自由,具体如下。

不论目的为何,有运行该软件的自由。

有研究该软件如何运行,以及按需改写该软件的自由。当然,取得该软件源代码为达成此目的之前提。

有重新发布拷贝的自由。

有改进该软件,以及向公众发布改进版本的自由,这样整个社群都可受惠。同样,取得该软件的源码为达成此目的之前提。

2.自由软件基金会FSF

FSF(Free Software Foundation)的中文意思是自由软件基金会,是Richard Stallman于1984年发起和创办的。FSF的主要项目是GNU项目。它的目标是建立可自由发布和可移植的类Unix操作系统产品。GNU项目本身产生的主要软件包括:Emacs编辑软件、gcc编译软件、bash命令解释程序和编程语言,以及gawk(GNU抯 awk)等。

1.3.2 GNU知识

GNU的全称为GNU抯 not Unix,意思是“GNU不是Unix”,GNU计划,又称革奴计划,是由Richard Stallman在1984年公开发起的,是FSF的主要项目。前面已经提到过,这个项目的目标是建立一套完全自由的和可移植的类Unix操作系统。

GNU类Unix操作系统是由一系列应用程序、系统库和开发工具构成的软件集合(例如,Emacs编辑软件、gcc编译软件、bash命令解释程序和编程语言,以及gawk等),并加上了用于资源分配和硬件管理的内核。

但是GNU自己的内核Hurd仍在开发中,离实用还有一定的距离。因此,这个GNU系统并没有流行起来。现在的GNU系统通常是使用Linux系统的内核、再加上GNU项目贡献的一些组件,以及其他相关程序组成的,这样的组合被称为GNU/Linux操作系统。

到1991年Linux内核发布的时候,GNU项目已经完成了除系统内核之外的各种必备软件的开发。在Linus Torvalds和其他开发人员的努力下, GNU项目的部分组件又运行到了Linux内核之上,例如,GNU项目里的Emacs、gcc、bash、gawk等,至今都是Linux系统中很重要的基础软件。GNU项目的相关图片纪念如图1-6所示。

1.3.3 GPL知识

1. GPL

GPL全称为General Public License,中文名为通用公共许可,是一个最著名的开源许可协议,开源社区最著名的Linux内核就是在GPL许可下发布的。GPL许可是由自由软件基金会(Free Software Foundation)创建的。

1984年,Richard Stallman发起开发自由软件的运动后不久,在其他人的协作下,他创立了通用公共许可证(GPL),这对推动自由软件的发展起到了至关重要的作用,那么,这个GPL到底是什么意思呢?

简单的理解,GPL的核心,是保证任何人有共享和修改自由软件的自由,任何人有权取得、修改和重新发布自由软件源代码的权利,但都必须同时给出具体更改的源代码。

虽然整个Linux内核都是基于GNU通用公共许可的,但是Linux内核并不是GNU计划的一部分,这一点请读者不要混淆。

2. LGPL

LGPL(Lesser General Public License)相对于GPL则较为宽松,其允许不公开全部源代码,这为基于Linux平台开发商业软件提供了更广阔的空间。对于该知识点,本书仅提及一下,有兴趣的读者可到网上查询相关信息。

image.png

1.3.4 Linux系统组成

Linux操作系统的核心为Linus Torvalds开发的Kernel,Linux内核之上的组件可分为如下几部分:一部分是GNU组件,如Emacs、gcc、bash、gawk等;另一些重要组成部分则来自加利福尼亚大学Berkeley分校的BSD Unix项目和麻省理工学院的X Windows系统项目,以及在这之后成千上万的程序员开发的应用程序等(见表1-1)。正是基于Linux内核与GNU项目、BSD Unix以及MIT的X11(X Windows)的结合,才使得整个Linux操作系统得以很快形成,并得到了发展,进而组成了今天优秀的Linux系统。

Linux操作系统=Linux内核+GNU软件及系统软件+必要的应用程序

表1-1 Linux系统各组成部分的贡献人员

image.png

 image.png

图1-7为Linux系统的核心组成原理示意图。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。