当前位置:首页 > 技术文章 > 正文内容

GNU 是什么,和 Linux 是什么关系?

douba31个月前 (07-21)技术文章13

GNU是一个自由软件操作系统—就是说,它尊重其使用者的自由。GNU操作系统包括GNU软件包(专门由GNU工程发布的程序)和由第三方发布的自由软件。GNU的开发使你能够使用电脑而无需安装可能会侵害你自由的软件。

Unix 系统被发明之后,大家用得很爽。但是后来开始收费和商业闭源了。一个叫 RMS 的大叔觉得很不爽,于是发起 GNU 计划,模仿 Unix 的界面和使用方式,从头做一个开源的版本。然后他自己做了编辑器 Emacs 和编译器 GCC。

BSD的网络栈极大的影响了主流操作系统的网络编程接口.这算是后话了.然后可以看到这是90年代,也就是Linux刚诞生的时代.因为Linux上来的用户态(shell/toolchain/text editor)基本上都来自于GNU的移植,所以被冠上GNU/Linux作为distro的标题,也就是说内核是Linux,用户态环境都是GNU系,发行版主要区别于软件包管理策略所以总体来说GNU这个体系

那么Linux脱离GNU有可能么?其实也是有可能的.比如说:

编译器gcc->clang,但是得打一堆 patch,主线是动不了的,BSD这边前几年似乎是迁移到clang 了shell选一个非gnu实现

从glibc换成其他libc实现,比如Android用的是bionic(然而为了和glibc兼容从glibc偷了点变量名/函数声明之类的东西,他们美其名日[机器生成],并且把这段话加入了license里面,gnu的人是比较不爽的,算是打了cleanroom的擦边球)实用工具尽可能替换为 BSD 系

GNU 是一个计划或者叫运动。在这个旗帜下成立了 FSF,起草了 GPL 等

接下来大家纷纷在 GNU 计划下做了很多的工作和项目,基本实现了当初的计划。包括核心的 gcc 和 glibc。但是 GNU 系统缺少操作系统内核。

原定的内核叫 HURD,一直完不成。同时 BSD(一种 UNIX 发行版)陷入版权纠纷,x86 平台开发暂停。然后一个叫 Linus 的同学为了在 PC 上运行 Unix,在 Minix 的启发下,开发出了 Linux。

注意,Linux 只是一个系统内核,系统启动之后使用的仍然是 gcc 和 bash 等软件。Linus 在发布 Linux 的时候选择了 GPL,因此符合 GNU 的宗旨。

最后,大家突然发现,这玩意不正好是 GNU 计划缺的么。于是合在一起打包发布叫 GNU / Linux。然后大家念着念着省掉了前面部分,变成了 Linux 系统。实际上 Debian,RedHat 等 Linux 发行版中内核只占了很小一部分容量。TG:li9047

相关文章

向日葵对比ToDesk,谁才是解决远程开关机问题的NO.1?

很多办公人士都会有这样的烦恼,那就是打算下班回家工作,才发现有一份重要的资料没有上传,真的是让人很头大!想要回去拿,又很麻烦,不回去吧,又无法完成工作,所以这时候一款远程控制电脑开关机的产品就很重要。...

Linux 中,查找文件指令用法解析(linux查找文件夹命令)

find 命令是 linux 系统中一种强大的搜索命令,用来在系统中精准定位到所需文件的位置,并可以提供各个参数方便筛选查找。用法find [起始路径] [选项] [表达式]起始路径:搜索的根目录选项...

在linux上怎么查看cpu信息(linux中如何查看cpu)

在 Linux 上,可以使用多种命令查看 CPU 信息。以下是最常用的几个命令:使用 lscpu 命令: 打开终端并输入以下命令:lscpu此命令将显示有关 CPU 的详细信息,包括核心数, 文章末尾...

Linux系统查看IP地址的常用方法(查看linux ip地址)

简介:Linux系统经常使用ifconfig命令查看网卡的IP地址,一般需要以root身份登录使用ifconfig工具。ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置...

如何查询 Linux 中 CPU 的数量?这几个命令要知道!

在深入命令之前,先聊聊为什么要关心 CPU 数量。想象一下,你是个系统管理员,手底下管着几十台服务器,突然有台机器跑任务慢得像乌龟,你得搞清楚是不是 CPU 不够用。或者你是程序员,想写个多线程程序,...

linux 查看磁盘信息的常用命令(linux中查看磁盘的命令)

在Linux系统中,排查磁盘问题是一个非常重要的任务,以下是一些常用的Linux排查磁盘问题的命令:df:查看磁盘分区的使用情况,可以查看磁盘分区的总容量、已用容量、可用容量等。du:查看文件或目录的...