星期二, 2月 19, 2008

閒聊linux與Freebsd

事實上我是一個蠻關心這兩個作業系統的初學者,但是由於自身經驗和能力不足,有時候會有不得其門而入的感覺。

事實上在linux上寫程式,雖然有gcc可以寫,但是一旦寫到應用程式與系統程式,對我而言,不得其門而入,問題很多,最重要的是,我實在是不太會找到切入的點,當然,這應該是我自身的問題,我看書寫程式的時間比較多。

不過昨日與ycfu閒聊,他在linux和freebsd上開發軟體是非常有心得的。他大概跟我說明了linux和FreeBSD的現況,兩者皆為Open Source,但是授權狀況有很大的不同,詳情請看這裡但是簡單而言,還蠻好分辨的(往下看,有註解)。

顯然最自由的是BSD License,於是很多人喜歡使用,包括最有名的Mac OS,ycfu跟我說,Mac OSX只是把FreeBSD包裝的很好而己XD,事實上我不知道,因為我不甚了解,但是MacOS確實以FreeBSD為基礎進行開發,原因有二,第一,FreeBSD是以穩定為前提進行開發,第二,沒有授權問題,思科的router有一個名叫IOS的OS,有hacker無聊進去一看,發現以BSD 核心進行開發的。

若談到軟體撰寫,事實上在linux是一個很大的問題,linux 的 kernel 與 library 是分開的,而且基於自由,kernel 會載入什麼 module 也是不甚清楚的,如果要撰寫程式,在每家的linux中,portable 非常低,這是一個基於自由的非戰之罪,當然,我雖然喜歡OpenSource,但是在FreeBSD上開發卻沒有這個問題,因為kernel + library皆由有同一個團隊維護,所以非常穩定,不過最顯然的缺點是,驅動程式支援相對於linux是非常老舊的(沒人寫是最重要的原因XD)。

但是不得不說GNU GPL,我覺得是一個蠻讓我覺得不舒服的制度(雖然很多人不鳥他XD),GPL 不能說是自由的條款,BSD License 才是,一個人要不要開放自己所撰寫的程式碼,應由他自己決定,GPL卻是說,你若用到就得開放,深入了解,我只能說,GNU不是傳教士就是海盜,這會讓我想到一個故事。

居禮夫婦當初發現鐳的時候放棄其專利,為了造福人群,此舉當然可以讓相關應用快速被發展開來,而也不要求任何回饋。但是居禮夫婦使用類似GPL的協定的話,以後相關的研究專利都得開放,這樣子的科技似乎不會發展那麼快XD,但是使用BSD License的話(的確很像居禮夫人原本的作法),自由取用,那麼到底那個license比較好,見仁見智。當然會有人打著自由口號做壞事,不過我得說,尊重每個人的自由是很重要的。

自由是完全的,而不是強制性。

說到這邊,我還是不知道切入點為何,不過我想我會從FreeBSD開始學,致少初學者,學比較具有一致性的東西比較好,而且FreeBSD port 到Linux的話,我也不知道難度(笑),所以我還蠻期待本學期的Unix Programming XD。

---
說多了


  • GNU GPL: 只要你有使用到GNU Library,你所撰寫的程式碼需全部開放
  • GNU LGPL: 若有改到GNU Library,有使用到該library開放即可。
  • BSD License: 程式碼皆可自由使用,但檔前註解不可移除掉。

張貼留言