GNU/Linux下有多少是GNU的?

2023-11-05

原文地址:http://coolshell.cn/articles/4826.html#more-4826

一个葡萄牙的学生写了一篇文章 《How much GNU is there in GNU/Linux?》 - GNU/Linux下有多少是GNU的。他的这篇文章主要分布了今年4月份的Ubuntu Natty的Linux分发包。其主要是用代码行来做的分析,其给了两个饼图。

第一个饼图如下,其指明了各种主流的开源项目组的分布情况。可见GNU只占了8%,当然,GNome也是GNU的,加起来也只有13%,只占整个分发包很少的比重。

第二个图,作者把GNU的部分拿了出来,再进行了分析:

在下面这个图中,我们可以看到主要是四大块——gcc, gdb, binutils 和 glibc,所以,作者说,这些东西都不是最终用户需要的,不是每一个用户都是需要搞开发的。所以,如果去除这些,再去除Gnome(这个桌面UI也不是很力),那么GNU的东西几乎没有了。

所以,作者以此来挑战Richard Stallman提到的 GNU/Linux的这个说法。好像更为好的说法应该叫——

GNU/KDE/java/xorg/Linux

我对这篇文章有下述一些感觉:

  • 以代码行来衡量重要性,非常的不准确。比尔盖茨说过——“用代码行数来衡量编程的进度,就如同用航空器零件的重量来衡量航空飞机的制造进度一样”(参看《最佳编程语录》),所以,用这个数据来并不一定正确。如果用Linux的各种包的依赖性可能会更好一点。
  • 至少我知道,离开了glibc,可能整个操作系统都会不举。Linux下,绝大多数软件都是gcc/gdb编程和调试出来的(当然,LLVM和Clang正在挑战着gcc编译器),而且大多数软件都在用着GPL的许可证(虽然开源世界的许可证是如此的混乱
  • 辩证地,我们不能否定GNU的历史价值,同时我们似乎也在看到GNU好像有点萎靡。

老实说,其实叫什么不重要,是GNU/Linux也好,是Ubuntu 也好,还是Android也好,无所谓。Linux的各种分发包中都存在着全世界黑客文化的和开源文化的结晶,每当我看到这样的分布图时(例如:是谁写的Linux?),我心中都有一种说不出来的豪情,这难道不真是一种壮举吗?(Unix黑客文化的真正延伸)。

不管这种方式的软件有没有市场,能不能得到“最终用户”的认可,但这已成为了软件开发的一种精神——那种不分彼此,相互协作的精神,不是吗?


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GNU/Linux下有多少是GNU的? 的相关文章

随机推荐

  • 计算机视觉入门 - MacOS搭建Python的OpenCV环境并在VScode上使用的详细步骤(完整版)

    目录 过程 下载VScode编辑器 在VScode中安装Python插件 安装Python解释器 测试Python程序 安装wget插件 安装cmake插件 安装opencv 通过程序来测试opencv 运行成功 过程 下载VScode编辑
  • Detecting Twenty-thousand Classes using Image-level Supervision

    Detecting Twenty thousand Classes using Image level Supervision 摘要 背景方法 Preliminaries Detic 具有图像类别的检测器 loss 技术细节扩展 Grad
  • 台式机新装windows系统

    学校正版软件网页下载正版windows操作系统 windows官网下载U盘系统工具 根据电脑厂商按对应的Fn键启动bios设置 设置启动项为U盘启动 根据提示进行设置 新装操作系统后无法联网 没有以太网 参考https www xiaozh
  • provide和inject的用法

    1 provide与inject的功能 通过provide与inject 可以把一个祖先组件指定的数据和方法 传递给其所有子孙组件中 provide 和 inject 主要在开发高阶插件 组件库时使用 由于vue有 parent属性可以让子
  • Unity中用触摸控制物体旋转和放大

    using UnityEngine using System Collections using System IO public class ScaleAndRotate MonoBehaviour private Touch oldTo
  • Python编程从入门到实践(九)-文件和异常

    1 从文件中读取数据1 1 读取整个文件 要读取文件 需要一个包含几行文本的文件 下面首先来创建一个文件 它包含精确到小数点后30位的圆周率值 且在小数点后每10位处都换行 pi digits txt 3 1415926535 897932
  • Flink异步IO第一讲

    Async I O 是阿里巴巴贡献给社区的一个呼声非常高的特性 于1 2版本引入 主要目的是为了解决与外部系统交互时网络延迟成为了系统瓶颈的问题 对于实时处理 当需要使用外部存储数据染色的时候 需要小心对待 不能让与外部系统之间的交互延迟对
  • 起底高危RCE漏洞“Follina”:Windows系统无一幸免

    通告信息 上周末 独立网络安全研究团队 nao sec通过社交媒体表示 发现一份从白俄罗斯提交至分析服务网站VirusTotal的恶意微软Word文档 利用远程模板功能并通过 ms msdt MSProtocol URI模式执行恶意Powe
  • C/C++——new和delete的实现原理(详解)

    C C 内存管理 1 C C 内存分布 2 C语言中动态内存管理方式 2 1malloc calloc realloc free区别 3 C 中动态内存管理 new和delete 3 1new delete操作内置类型 3 2new del
  • AD22使用笔记+积累库

    一 前言 使用AD9习惯了 但是需求逐渐上来了就不够用了 好多快捷的新功能要新版本软件才能用 所以升级使用AD22 目录 1 添加层之后中间层无法布线 2 新增快捷方式Ctrl W布线 不用点图标了 二 环境 AD22 三 正文 1 添加层
  • [系统安全] 二十六.WannaCry勒索病毒分析 (2)MS17-010漏洞利用及蠕虫解析

    您可能之前看到过我写的类似文章 为什么还要重复撰写呢 只是想更好地帮助初学者了解病毒逆向分析和系统安全 更加成体系且不破坏之前的系列 因此 我重新开设了这个专栏 准备系统整理和深入学习系统安全 逆向分析和恶意代码检测 系统安全 系列文章会更
  • SSH和SSM的区别

    1 定义 SSH Spring Struts2 Hibernate spring 为事务层 Struts2为控制器 hibernate 负责持久层 SSM springMVC为控制器 spring 为事务层 MyBatis 负责持久 都是当
  • gerber 文件格式 [一]

    在电路设计这块 目前还绕不开 gerber 文件的工程交互 所以来了解一下 目前官网的文档gerber layer format specification revision 2022 02 en pdf gerber 文件是一个ascii
  • 时序预测

    时序预测 MATLAB实现具有外生回归变量的ARIMAX时间序列预测 含AR MA ARIMA SARIMA VAR对比 目录 时序预测 MATLAB实现具有外生回归变量的ARIMAX时间序列预测 含AR MA ARIMA SARIMA V
  • 机器学习(二)深度学习实战-使用Kera预测人物年龄

    问题描述 我们的任务是从一个人的面部特征来预测他的年龄 用 Young Middle Old 表示 我们训练的数据集大约有19906多张照片及其每张图片对应的年龄 全是阿三的头像 测试集有6636张图片 首先我们加载数据集 然后我们通过深度
  • 本地部署体验LISA模型(LISA≈图像分割基础模型SAM+多模态大语言模型LLaVA)

    GitHub地址 https github com dvlab research LISA 该项目论文paper reading https blog csdn net Transfattyacids article details 132
  • jquery.webcam进行摄像头拍照

    最近由于项目要进行人像采集 所以就涉及到在web页面调用摄像头 进行拍照来获取图片 可以初来乍到 这技术又不是杠杠滴 所以在面对这有实现想法 但是又没有实现手段的时候 还是按照往常惯例找度娘 这个搜索过程可谓是无比艰辛 由于关键字不准确迟迟
  • WDK李宏毅学习笔记第十八周01_Meta learning-MAML and Gradient descent as LSTM

    Meta learning MAML and Gradient descent as LSTM 文章目录 Meta learning MAML and Gradient descent as LSTM 摘要 1 Meta learning
  • LO Frequency Plan

    概述 LO DIV是位于VCO和mixer之间的模块 其作用是分频和驱动长走线 设计难点在于底噪 不同的band有不同的频率覆盖范围 为了减小VCO的设计难度需要选择合适的分频方案 E UTRA规定的band与频率的对应关系在3GPP或wi
  • GNU/Linux下有多少是GNU的?

    原文地址 http coolshell cn articles 4826 html more 4826 一个葡萄牙的学生写了一篇文章 How much GNU is there in GNU Linux GNU Linux下有多少是GNU的