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黑客文化的真正延伸)。

不管這種方式的軟件有沒有市場,能不能得到“最終用戶”的認可,但這已成為了軟件開發的一種精神——那種不分彼此,相互協作的精神,不是嗎?

來源:酷殼網

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/454867.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/454867.shtml
英文地址,請注明出處:http://en.pswp.cn/news/454867.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

便攜式三星mysql_JDBC鏈接mysql - 三星藍

package chp07;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;public classJDBC_Test {//創建靜態全局變量staticConnection conn;staticStatement st;public static voidmain(Stri…

C++ 類、對象、class

一、對象初始化 1.不能在類聲明中對數據成員初始化,因為類只是一個抽象類型,不占存儲空間,無處容納數據。 2.若某類的數據成員都是public,則可以像結構體一樣初始化,如 Time t{12,21,04}; 若數據成員有priv…

Unity 富文本

參考鏈接&#xff1a;http://www.ceeger.com/Manual/StyledText.html 首先要說的是不僅僅ugui的text組件支持富文本&#xff0c;Debug.Log也是支持的 Debug.Log("<color#ffff00ff><b>愛生活</b></color> <color#00ffffff><b> 愛海瀾&…

Web項目替換jar包中的文件的方法

經常遇到這樣的問題&#xff0c;需要修改jar包中的方法。應該如何做&#xff1f; 1、有些很人性化的框架jar包&#xff0c;比如SpringSecurity&#xff0c;可以修改配置文件指定一個新建的類&#xff0c;讓類實現Jar包中的對應的接口就好了。 2、大部分的jar包都不會有這么方便…

程序員技術練級攻略

導讀&#xff1a;本文是由陳皓和他的一位朋友Mailper合作完成&#xff0c;原名叫《Build Your Programming Technical Skills》&#xff0c;本文分享了Mailper和作者個人的學習經歷。每個程序員都希望自己能順利的升級到高的層次&#xff0c;您不妨按照下面的方法去做。 前言 你…

Linux shell 之 提取文件名和目錄名的一些方法

很多時候在使用Linux的shell時&#xff0c;我們都需要對文件名或目錄名進行處理&#xff0c;通常的操作是由路徑中提取出文件名&#xff0c;從路徑中提取出目錄名&#xff0c;提取文件后綴名等等。例如&#xff0c;從路徑/dir1/dir2/file.txt中提取也文件名file.txt&#xff0c…

bzoj 2752: [HAOI2012]高速公路(road)

Description Y901高速公路是一條重要的交通紐帶&#xff0c;政府部門建設初期的投入以及使用期間的養護費用都不低&#xff0c;因此政府在這條高速公路上設立了許多收費站。Y901高速公路是一條由N-1段路以及N個收費站組成的東西向的鏈&#xff0c;我們按照由西向東的順序將收費…

搭建DNS主、從服務實驗

此次我們的口號是&#xff1a;簡單、有趣上手DNS服務博主是一個言出必行de好人&#xff0c;&#xff08;正經臉&#xff09;上次轉載了有關DNS的基礎介紹&#xff0c;此次我們來通過實驗搭建DNS服務器從而更好的了解DNS搭建過程如何開始&#xff0c;且聽我細細道來首先我們通常…

GDB中應該知道的幾個調試方法

七、八年前寫過一篇《用GDB調試程序》&#xff0c;于是&#xff0c;從那以后&#xff0c;很多朋友在MSN上以及給我發郵件詢問我關于GDB的問題&#xff0c;一直到今天&#xff0c;還有人在問GDB的相關問題。這么多年來&#xff0c;有一些問題是大家反復在問的&#xff0c;一方面…

長沙java技術_長沙如何提高自身的Java技術

長沙如何提高自身的Java技術&#xff1f;Java自發行二十多年來&#xff0c;一直都是開發者的寵兒&#xff0c;在編程界的位置一直十分穩固。雖然Java人才需求量大&#xff0c;薪資水平高&#xff0c;但想要用Java語言勝任企業工作不容易。比如要成為一名Java架構師&#xff0c;…

strcpy與strcat函數原型

1.strcpy函數原型 char *my_strcpy(char *dest,const char *src) //const使在函數中不能修改*src其原先的值{   char *strDest dest; //保存原始的strDest   assert((dest!NULL)&&(src!NULL)); //檢驗參數&#xff0c;…

CCF 201312-4 有趣的數

試題編號&#xff1a;201312-4試題名稱&#xff1a;有趣的數時間限制&#xff1a;1.0s內存限制&#xff1a;256.0MB問題描述&#xff1a; 問題描述我們把一個數稱為有趣的&#xff0c;當且僅當&#xff1a;1. 它的數字只包含0, 1, 2, 3&#xff0c;且這四個數字都出現過至少一次…

java 代碼重用_Java 代碼重用:功能與上下文重用

我幾乎不需要討論為什么重用代碼是有利的。代碼重用通常使得程序開發更加快速&#xff0c;并使得 BUG 減少。一旦一段代碼被封裝和重用&#xff0c;那么只需要檢查很少的一段代碼即可確保程序的正確性。如果在整個應用程序中只需要在一個地方打開和關閉數據庫連接&#xff0c;那…

GCC-3.4.6源代碼學習筆記

大約4年前&#xff0c;我加入了GDNT - 北電網絡在中國的合資企業&#xff0c;參與3G UMTS無線接入網的研發工作。與GCC有了第一次親密的接觸&#xff08;之前使用的是MS的VC&#xff09;。彼時&#xff0c;北電在其諸如&#xff0c;UMTS、CDMA、及自行開發的眾多工具等項目中&a…

互聯網

2019獨角獸企業重金招聘Python工程師標準>>> 轉載于:https://my.oschina.net/u/3127489/blog/1550726

GCC筆記 命令行分析

1984年&#xff0c;Richard Stallman發起了自由軟件運動&#xff0c;GNU (Gnus Not Unix)項目應運而生&#xff0c;3年后&#xff0c;最初版的GCC橫空出世&#xff0c;成為第一款可移植、可優化、支持ANSI C的開源C編譯器。GCC最初的全名是GNU C Compiler,之后&#xff0c;隨著…

java 反射用法_Java 反射的概念與使用

一&#xff0c;反射的概念對于一個人來說&#xff0c;了解自己的能力、本事、特點&#xff0c;對于他去干事創業來說&#xff0c;是很重要的。同樣的&#xff0c;對于一門面向對象的語言來說&#xff0c;了解類(對象其實就是類的實現)本身也是重要的&#xff0c;可以在很多地方…

關于Unity中的Mesh Collider碰撞器

原來我的場景中有一個平面Plane帶Mesh Collider碰撞器組件&#xff0c;一個主角Hero帶有一個Box Collider碰撞器和有重力的Rigidbody剛體組件&#xff0c;主角可以放在平面上。 在導入場景后&#xff0c;隱藏平面Plane&#xff0c;給一個地板添加一個Mesh Collider碰撞器&#…

GCC常用選項使用詳解

通常所說的GCC是GUN Compiler Collection的簡稱&#xff0c;除了編譯程序之外&#xff0c;它還含其他相關工具&#xff0c;所以它能把易于人類使用的高級語言編寫的源代碼構建成計算機能夠直接執行的二進制代碼。GCC是Linux平臺下最常用的編譯程序&#xff0c;它是Linux平臺編譯…

java 井字棋 人機_井字游戲 人機對戰 java實現

package com.ecnu.Main;/*** 主函數觸發游戲*/public class MainApplication {public static void main(String[] args){TicTacToeGame ticTacToeGame new TicTacToeGame();ticTacToeGame.start();}}//TicTacToeGame 方法類import java.util.Scanner;public class TicTacToeGa…