GNU/Linux的前世今生

GNU计划、自由软件基金会、Linux、GPL、GCC、GPL

在我们日常的工作学习中, 有很多的小伙伴会使用Linux操作系统, 有的时候中间会夹杂很多的其他概念, 比如GCC、GNU、G++、GPL等等, 这些概念搞在一起就有种云里雾里的感觉, 今天这篇文章, 我们好好的捋一捋这些问题。

想要了解Linux的起源, 我们就需要简单的说一下GNU计划

GUN计划

什么是GNU计划

  • GNU计划, 又称“革奴计划”,是有理查德·马修·托斯曼老爷子于1983年9月27日麻省理工学院公开发起的自由软件集体协作计划, 他的目标是创建一套完全自由的操作系统GNU;GNU是“GNU's Not UNIX”的递归缩写,发音为“canoe”;GUN项目的吉祥物是非洲牛玲,非常的有个性,就是下面这样子的

 

  •   在这里放一张理查德·马修·托斯曼大牛的照片:

  •  GNU的软件内容完全以GPL的方式发布, 这里提到的GPL, 全称是GNU 通用公共许可证(GNU General Public License,GPL),同样是斯托曼的贡献。同时针对不同的场合, 提供了GNU宽通用公共许可证GNU自由文档许可证这两种协议条款
  • GPL协议的特点总结一下就是下面的两点:
    • 允许用户运行、学习、共享和修改软件
    • 使用GPL协议发布的产品,只能以相同的协议发布;意思就是东西随便用,但是不能将它变成个人是有成果
    • 使用GPL许可证系列的杰出产品有C语言编译器GCC、Linux内核等
  • 在1985年, 理查德·斯托曼又创建了自由软件基金会(Free Software Foundation,FSF)来为GNU计划提供技术、法律和财务方面的支持。
  • GNU计划已经推出的软件包括Emacs、GCC和大部分的Unix系统的程序库和工具, 但是, GNU操作系统的内核(HURD)这一重要组件仍然没有完成!
  • 从GNU的名称来看, GNU和Unix看起来是不是有联系? 是的, 没猜错, 正是由于斯托曼老爷子不喜欢Unix这一牛逼商业系统的诸多限制, 所以才发起了GNU项;但是不得不承认, Unix确实厉害,而且,Unix 的生态已经很成熟了,  所以斯托曼依然选择让GNU实现了Unix的标准接口。

啥是GCC?g++和gcc是一家人吗?

前面已经提到, GCC是GNU项目中的一个C语言编译器,它是以GPL方式发布的GNU项目的一个自由开源软件。是GNU项目的一个关键部分。实质是上一个编程语言编译器;他最开始的时候只能处理C语言, 但是在发布之后,很快的得到了扩展, 慢慢地可以支持C++、Fortran、Java等诸多其他语言了。

目前市面上诸多的类Unix系统,都将GCC作为标准编译器。

看明白了, 其实, GCC就是个GNU编译器软件套装,为什么说他是套装呢? 因为他支持的语言类型确实很多!

那G++和GCC到底是啥关系呢?

先看看名字:

GCC: GNU Compiler Collectiong

 g++:GNU C++ Compiler

gcc:GNU C Compiler

从名称上可以看出来, GCC是一个GNU项目下的编程语言编译套装软件,在 这个套装软件下,g++ 是下用来编译C++语言的, gcc是用来编译C语言的

Linux内核

  前面提到,GNU自己的操作系统内核HURD难产了, 正当这个时候, 另一个大神Linus(林纳斯)上线, 在他21岁的时候整出了逆天的Linux内核,并且Linux内核和Unix兼容, 也是在GPL下发布,虽然发布的的时候只有一个内核, 完全没有多余的人性化功能,比如图形界面,但是,由于GPL, Linux很快大火, 并且生态圈快速崛起。

1992年, Linux和其他的GNU软件结合, 自此, 一个完全自由的操作系统GNU/Linux诞生了。很多成员参与了Linux的开发和修改, 并且通常也将Linux当做是GNU软件项目的开发平台。 这个操作系统一般被称为是GNU/Linux, 也会被简称为Linux。

需要说明的是, Linux内核本身不是GNU计划的一部分, 只不过, 他采用了GPL协议发布了这个内核。而GNU自己的内核HURD, 是的,仍然难产中, 期待早日实现突破。好消息HURD的Beta测试版已经发布了。

 

总结一下:GCC是大佬斯托曼出于对自由软件精神的向往发起的GNU项目中的一个小产品;Linux操作系统是GNU系统和Linux内核结合在一起的一个类Unix操作系统

GNU/Linux操作系统简要分类

 Linux操作系统的发行版本大致分为两类:RedHat和Debian

ReHat: 又称Redhat 系列,国内引用最广泛的Linux系统, 包括RHEL, Fedora Core和Centos

Debian: 又称Debian系列, 包括Debian和Ubuntu等;Debian是社区类Linux操作系统的典范, 迄今为止最遵循GNU规范的Linux系统

Redhat

  • RHEL:Redhat Enterprise Linux , 也就是所谓的 Redhat Advance Server , 收费版本
  • Fedora Core:由原来的 Redhat 桌面版本发展而来 , 免费版本
  • CentOS :RHEL的社区克隆版本 , 免费

Redhat 系列的包管理方式采用的是基于 RPM 包的 YUM 包管理方式 , 包分发方式是编译好的二进制文件 ;

稳定性方面 RHEL 和 CentOS 的稳定性非常好 , 适合于服务器使用 , 但是 Fedora Core 的稳定性较差 , 最好只用于桌面应用。

Debian

  • Debian:最早由 Ian Murdock 于 1993 年创建 , 分为三个版本分支 (branch) : stable , testing 和 unstable
    •   unstable 为最新的测试版本 , 其中包括最新的软件包 , 但是也有相对较多的bug , 适合桌面用户 ;
    • testing 的版本都经过 unstable 中的测试 , 相对较为稳定 , 也支持了不少新技术 (比如SMP等) ;
    • 而 stable 一般只用于服务器 , 上面的软件包大部分都比较过时 , 但是稳定和安全性都非常的高 ;
  • Ubuntu:严格来说不能算一个独立的发行版本 , Ubuntu 是基于 Debian 的 unstable 版本加强而来
    •   根据选择的桌面系统不同 ,
    • 有三个版本可供选择 , 基于 Gnome 的 Ubuntu , 基于 KDE 的 Kubuntu 以及基于 Xfc 的 Xubuntu ;
    • 特点是界面非常友好容易上手 , 对硬件的支持非常全面 , 是最适合做桌面系统的Linux发行版本 ;

Debian 最具特色的是 apt-get/dpkg 包管理方式。

 

参考链接:

GNU计划_百度百科 (baidu.com)

(27条消息) GCC、GNU到底啥意思?_一只杨阳羊的博客-CSDN博客

(27条消息) Linux操作系统分类详解_Ensk的博客-CSDN博客

posted on 2023-06-06 15:06  401work  阅读(206)  评论(0)    收藏  举报

导航