您的位置:軟件測試 > 開源軟件測試 > 開源軟件測試新聞 >
自由軟件和開源協(xié)議
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/6/17 11:59:08 ] 推薦標(biāo)簽:自由軟件 開源協(xié)議 開源軟件測試

  自由軟件和開源協(xié)議.我在Linus 系列的上一篇文章中提到了系統(tǒng)調(diào)用,有讀者問,System Call(系統(tǒng)調(diào)用)和 Library Function(庫函數(shù))到底有什么區(qū)別呢?我在這簡單回答一下。

  我在Linus 系列的上一篇文章中提到了系統(tǒng)調(diào)用,有讀者問,System Call(系統(tǒng)調(diào)用)和 Library Function(庫函數(shù))到底有什么區(qū)別呢?我在這簡單回答一下。

  操作系統(tǒng)的進(jìn)程空間分為內(nèi)核空間和用戶空間,不同的空間需要不同的執(zhí)行權(quán)限。其中系統(tǒng)調(diào)用運(yùn)行在內(nèi)核空間,庫函數(shù)運(yùn)行在用戶空間。系統(tǒng)調(diào)用是通向操作系統(tǒng)本身的接口,面向設(shè)備驅(qū)動程序和硬件,屬于底層調(diào)用,一般不具備可移植性。庫函數(shù)是更高層次的接口,面向應(yīng)用開發(fā),通過執(zhí)行系統(tǒng)調(diào)用滿足應(yīng)用軟件的需求,并降低系統(tǒng)開銷。

  為了更好的理解這個(gè)問題,大家可以想象一個(gè)場景:你和你的小伙伴被空投到敵占區(qū),抵達(dá)目標(biāo)后,你通過對講機(jī)呼叫小伙伴:

  「土豆土豆,我是地瓜,請掩護(hù)我!」

  「土豆收到,土豆收到,可我特么種你前頭了,怎么掩護(hù)你啊?」

  這種類型的通信,可以看作是庫函數(shù)調(diào)用。

  等摸清楚了敵人的軍火庫坐標(biāo),想干掉它得申請硬件資源,這時(shí)候要呼叫總部:

  「洞拐洞拐,我是地瓜,請向我開炮」

  「洞拐明白,洞拐明白,你小子等著一起飛上天吧」

  這是系統(tǒng)調(diào)用。

  之所以這么設(shè)計(jì),主要是為了: 1、分層架構(gòu);2、避免把系統(tǒng)調(diào)用直接暴露在敵人面前;3、提高性能;4、增加應(yīng)用層的可移植性。

  大致如此。這個(gè)系列中會涉及一些技術(shù)話題,但大都淺顯易懂,高手不屑一閱。有不明白的初學(xué)者或非 IT 朋友想弄明白的,Google 一下大致也能七七八八,實(shí)在不明白,提出來,我再用類似的方式給大家說說。

  講了 Linus,有讀者說,給介紹介紹自由軟件和開源協(xié)議吧,講講這個(gè)。不過為了防止 Linus 系列成坑,我會繼續(xù)寫下去的,直到完成這個(gè)系列,請組織監(jiān)督,請群眾放心。

  什么是自由軟件呢?根據(jù)自由軟件基金會的定義,自由軟件(Free Software)是一種可以不受限制地自由使用、復(fù)制、研究、修改和分發(fā)的軟件。不受限制正是自由軟件重要的本質(zhì)。注意:其定義與是否收取費(fèi)用無關(guān),自由軟件不一定是免費(fèi)軟件(整理自維基百科)。

  自由軟件運(yùn)動的創(chuàng)始人是理查德·斯托曼,他的成絕不輸于李納斯。這位奇才出生于1953年,那是個(gè)計(jì)算機(jī)大師扎堆出生的年代。20年后他正式成長為一個(gè)理想主義者和自由軟件斗士,并開始了偉大的、光榮的、作死也不會死的戰(zhàn)斗人生,他以個(gè)人對抗整個(gè)業(yè)界,他的對手不是人或公司,而是所有封閉的軟件公司,比如蘋果、微軟、Oracle、IBM等等。他到目前為止的成有三,個(gè)個(gè)牛逼二五:

  1、開發(fā)了Emacs編輯器。Emacs不用介紹了,號稱神的編輯器。 2、GNU通用公共許可證(GPL),這是世界上采用為廣泛的自由軟件許可證。 3、Copyleft,所有的GNU程序都應(yīng)遵循“Copyleft”原則,你可以復(fù)制、修改、出售自由軟件,但是源代碼相關(guān)的改動都必須公開,所有用戶都可以獲得改動后的源碼。Copyleft保證了自由軟件傳播的延續(xù)性。

  這些成保障了自由軟件世界的繁榮昌盛和長治久安,同時(shí)催生了一系列的工具軟件和函數(shù)庫,比如文本編輯器、編譯器、調(diào)試工具、Web 服務(wù)器等等,但 GNU 唯獨(dú)沒有開發(fā)出操作系統(tǒng)內(nèi)核,可能是天意使然,在這個(gè)節(jié)骨眼上,李納斯開發(fā)的 Linux 內(nèi)核橫空出世了,并終采用了GPL 協(xié)議,以完全自由、免費(fèi)的方式發(fā)布,從此,GNU 算是功德圓滿了,自由、開源和共享的精神一直延續(xù)到了。自由軟件服務(wù)了千家萬戶,在這樣一個(gè)信息共享的時(shí)代,我們每個(gè)人都或多或少的受益于斯托曼、李納斯和自由軟件的貢獻(xiàn)。

  隨著自由軟件的蓬勃發(fā)展,GPL 也根據(jù)開發(fā)者的需求和軟件技術(shù)的發(fā)展衍生出諸多版本,目前世界上有上百種開源協(xié)議,常用的有GPL、LGPL、Apache、MIT、BSD 等,如何搞明白這些協(xié)議對開發(fā)者來說十分困難,我根據(jù)網(wǎng)絡(luò)資料畫了一張關(guān)系圖,大致解釋了這幾個(gè)流行的開源協(xié)議的關(guān)系和區(qū)別,感興趣的看看的題圖即可。

  自由軟件除了自由開放之外,還隱含著公民的隱私不受侵犯的含義。隨著社會的發(fā)展,網(wǎng)絡(luò)信息監(jiān)控和審查越來越嚴(yán)重,偉大防火墻、實(shí)名制、審查制度等等,無一不包含著控制和壟斷的意味。這更加凸顯處自由軟件的意義。斯托曼說,「我們的社會正越來越依賴計(jì)算機(jī),我們使用的軟件對保證未來社會的自由至關(guān)重要。自由軟件使我們能夠控制我們使用的技術(shù),讓技術(shù)造福個(gè)人和社會,而不是讓技術(shù)被商業(yè)公司或政府控制,用來限制或監(jiān)視我們!

  很多軟件人員使用自由軟件更容易從經(jīng)濟(jì)角度關(guān)注免費(fèi)的問題,事實(shí)上另一個(gè)Free與我們更加息息相關(guān)!

  這個(gè)世界很多人覺得從未去爭取過什么,活的也還不錯(cuò)。但真實(shí)的原因是,有很多類似理查德·斯托曼這樣的人一直在風(fēng)口飛翔,他們是一群特立獨(dú)行的豬……

軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd