【评论】GNU/Linux下有多少是GNU的?

导读:一个葡萄牙的学生写了一篇文章 《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黑客文化的真正延伸)。

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

来源:酷壳网

转载于:https://www.cnblogs.com/waw/articles/2187744.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[react] 在React中怎么使用字体图标?

[react] 在React中怎么使用字体图标? 1、npm install --save react-fontawesome 2、npm install font-awesome 3、import ‘font-awesome/less/font-awesome.less’; 4、import ‘react-fontawesome’; 个人简介 我是歌谣,欢迎和大家一起交流前后端知…

Linux下scp命令的用法

scp 对拷文件夹 和 文件夹下的所有文件 对拷文件并重命名 对拷文件夹 (包括文件夹本身) scp -r /home/wwwroot/www/charts/util root192.168.1.65:/home/wwwroot/limesurvey_back/scp 对拷文件夹下所有文件 (不包括文件夹本身) scp /home/wwwroot/www/charts/util/* root19…

研究者展示黑客通过GPU绕过防毒软件查杀的方法

Slashdot网站近日刊登了一篇研究文章称黑客可以通过特殊手段利用电脑中的GPU来躲避杀毒软件的清查。在这份PDF文档中,研究者展示了黑 客如何 利用GPU来躲避杀毒软件查杀的方法,作者还表示类似的技巧还有可能会发展升级为更加复杂的攻击手段,如…

关于sprintf和snprintf的比较

#include <stdio.h> #include <string.h>typedef unsigned char uchar;#define BUF_SIZE 10 // 缓冲区大小 #define CLEAR_SIZE (BUF_SIZE2) // 操作的缓冲区大小, 需要全部重置void printRuler(int len) {putchar(\n);for(int i 1; i < len; i){printf…

[react] React的isMounted有什么作用?

[react] React的isMounted有什么作用&#xff1f; (页面执行异步请求&#xff0c;切换页面 &#xff0c;组件卸载 增加isMounted 作为判断) 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 …

鸽巢原理入门

鸽巢原理又叫抽屉原理&#xff0c;百度百科的定义是&#xff1a;桌上有十个苹果&#xff0c;要把这十个苹果放到九个抽屉里&#xff0c;无论怎样放&#xff0c;我们会发现至少会有一个抽屉里面至少放两个苹果。这一现象就是我们所说的“抽屉原理”。 下面有两个入门题目&#x…

javascript笔记:javascript的前世,至于今生嘛地球人都知道了哈

&#xff08;引子&#xff1a;javascript其实是个私生子&#xff09;我在上一篇博文最后说道&#xff0c;想写一篇关于javascript基础语法的文章&#xff0c;原因是我在读很多优秀的javascript源码时候常常被javascript诡异的语法搞的精疲力尽&#xff0c;所以时不时的加固java…

gcc -E 产生预编译后的文件

利用gcc -E选项&#xff0c;可以得到预编译后的文件。这可以得到宏展开后的文件。 先来看看几个相关联的文件吧! #ifndef __DEFS_H__ #define __DEFS_H__#ifdef WIN32#define snprintf _snprintf #endif// Join two variables #define MACRO_JOIN( X, Y ) MACRO_DO_JOIN( X, Y…

[react] 在React中我们怎么做静态类型检测?都有哪些方法可以做到?

[react] 在React中我们怎么做静态类型检测&#xff1f;都有哪些方法可以做到&#xff1f; flow 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

STM32F4 使用STLink 和 EventRecoder 调试运行时间

最近使用STM32F407的DSP库&#xff0c;测试了一下浮点数1024个点的FFT计算时间&#xff0c;采用EventRecoder计时间&#xff0c;记录如下。 1、在Compiler中添加EventRecorder 组件&#xff0c;CMSIS的版本5.4。 2、main.C增加头文件&#xff1a;#include "EventRecorder…

道德经经典解读

老子说&#xff1a;上善若水。水善利万物而不争。 原著实录 《道德经》第8章&#xff1a;上善若水。水善利万物而不争&#xff0c;处众人之所恶&#xff0c;故几于道。居善地&#xff0c;心善渊&#xff0c;与善仁&#xff0c;言善信&#xff0c;政善治&#xff0c;事善能&…

_attribute_((packed))

From: http://blog.csdn.net/wesleyluo/article/details/7565165 _attribute_((packed)) 1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐&#xff0c;是GCC特有的语法。这个功能是跟操作系统没关系&#xff0…

制作centos安装u盘

制作centos安装u盘 格式化 mkfs.vfat /dev/sdb1 制作 dd ifCentOS-7-x86_64-Minimal-1503-01.iso of/dev/sdb # 1. 注意是/dev/sdb 不是/dev/sdb1 # 2. bios中将硬盘设置为AHCI模式 posted on 2015-10-23 11:28 北京涛子 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnb…

[react] 怎么在JSX里属性可以被覆盖吗?覆盖的原则是什么?

[react] 怎么在JSX里属性可以被覆盖吗&#xff1f;覆盖的原则是什么&#xff1f; 会被覆盖&#xff0c;类似Object.assign&#xff0c;后面的覆盖前面的 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨…

Keil5 EventRecorder 的STDOUT输出丢包率较大现象

采用STLINK EventRecorder 对printf进行重定义&#xff0c;在连续发送数据时&#xff0c;存在较大的丢包情况。因此&#xff0c;调试小数据量时可以采用这种方法&#xff0c;大数据量的时候还是直接用UART 进行输出。

使用 C++ 处理 JSON 数据交换格式

From: http://blog.csdn.net/xt_xiaotian/article/details/5648388 使用 C 处理 JSON 数据交换格式 一、摘要 JSON 的全称为&#xff1a;JavaScript Object Notation&#xff0c;顾名思义&#xff0c;JSON 是用于标记 Javascript 对象的&#xff0c;JSON 官方的解释为&#x…

Etherchannel的配置 三层

三层以太网通道 interface FastEthernet0/19 no switchport no ip address channel-protocol lacp channel-group 30 mode active ! interface FastEthernet0/20 no switchport no ip address channel-protocol lacp channel-group 30 mode active interface Port-chan…

[react] immutable的原理是什么

[react] immutable的原理是什么 使用字典树持久化数据结构&#xff0c;更新时可优化对象生成逻辑&#xff0c;降低成本 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面…