嵌入式Linux經驗談(一):不設限的開放原始碼
本文作者:admin
點擊:
2008-12-09 00:00
前言:
Linux的魅力真的無法擋。只要你有耐心學習它----其實應該說「它們」----其中的樂趣真的樂無窮啊!可惜,一般人習慣於微軟視窗環境,於是促使微軟推出WinCE Pro和Core版本想跟Linux社群一較高下。但微軟至今還是不開放WinCE的原始碼,軟體工程師必須使用它的API來設計自己的程式,因此WinCE的「黑盒子」和「臭蟲」永遠都無法被我們立即解決掉。這種不痛快,真讓人受不了。
反觀Linux,幾乎可以百分之一百滿足所有想窺探作業系統究竟在搞什麼的人的慾望,只要他願意花時間去讀Linux程式碼和技術手冊,研究它們的邏輯,並試著自己動手做。
尼米茲航空母艦
美國尼米茲核子動力航空母艦(Nimitz Aircraft Carrier)是歷史上最大的軍艦,也是最昂貴的軍艦,建造這樣的巨無霸是為了要充分運用F-14雄貓式等90架高性能戰鬥機。或許微軟帝國就像尼米茲航空母艦一樣壯大,但微軟的財大氣粗似乎沒有嚇阻一大群Linux雄兵。諷刺的是,Linux社群的成長已經逐漸威脅到微軟的市場地位。所以我們現在要問:到底誰才是軟體業的尼米茲航空母艦?微軟或Linux?
木匠精神的延伸
雖然美國是軟體的發祥地,可是Linux核心卻是芬蘭大學生Linus Torvalds在1991年發明的。好在Free Source Foundation(FSF)創辦人和GCC發明人Richard Stallman早在1984年就提倡開放原始碼的觀念,算是挽回美國人的面子。只是Stallman那時還沒開發或找到像Linux這樣好用的作業系統核心。1980年代的頭條新聞是:AT&T由於捍衛BSD UNIX版權和柏克萊大學大打官司。
1970年代,UNIX在AT&T的貝爾實驗室被美國科學家們發明出來以後,AT&T就像現在的微軟一樣想獨占UNIX程式碼的版權。「一物剋一物」是自然的法則,FSF就是這樣誕生的。一直持續至今,Linux社群突破微軟的威嚇,已經締造了許多不可能的任務了。現在連微軟也不得不使用部份的GNU/Linux程式碼。回顧這段軟體歷史,真教人不可思議啊!
Linux的精神很崇高,幾乎等於美國的立國精神一樣偉大。自由、平等、博愛就是Linux的精神。此外,在實作上,Linux幾乎都是DIY的,使用者要自己建立開發環境和許許多多工具與程式庫,沒人能夠代勞。這是承襲美國人的習慣,他們喜歡在家裡設立workshop,自己當工匠設計家俱。Linux也是如此,敲敲打打統統自己來。這種類似美國西部拓荒的精神,正是高科技不斷進步的原動力。
內行人的必備工具
為何Linux會流行呢?因為它的功能越來越穩定和可靠;因為Linux社群結合了全世界程式設計師的力量,使它的bug越來越少了----這實在可以比擬中國萬里長城和埃及金字塔的偉大工程啊!現在連Mac X OS、VxWorks和數不清的軟體都有用到Linux程式碼;而直接使用Linux核心的知名作業系統,譬如:Red Hat/Fedora、Debian、SUSE、Ubuntu……等,都是Linux的一個桌上型發行版。此外,還有專供嵌入式系統使用的特製Linux、微型Linux……等,這些變種Linux大都是晶片設計公司直接將Linux核心移植到他們的晶片平台上,雖然它們無法像知名的桌上型Linux一樣可以讓用戶不斷複製和重新安裝,可是它們小巧玲瓏,普遍應用在手機、PDA、數位相機、嵌入式PC……等可攜式裝置中。
最近金融海嘯來襲,企業紛紛縮衣節食,於是Linux的使用者又增加了。便宜是Linux的最大優勢,但是便宜並沒有侵蝕到Linux的強大功能。這真是匪夷所思,違反自然法則啊!
如今,一旦軟體工程師遇到任何程式問題,第一個想到的救兵,就是上網找Linux程式,或到Linux社群的Q&A網站、部落格查看信件找答案。Linux真是個寶藏,而且它是來者不拒,任何人都可以去挖寶。連IC設計工程師也可以找到他們所需要的Linux工具。不過,要看懂這些Linux程式、技術手冊、信件,坦白說並非易事。一般人對Linux還很陌生,因為Linux是一大堆奇奇怪怪的命令、程式碼和術語堆砌而成的巨塔。只有Linux內行人看得懂它的門道,外行人只能跟著看熱鬧了。哈!
專利戰爭
在知識經濟時代,打的是智慧戰爭,或專利戰爭。而專利構成的要件是:這個創意以前沒有被任何人發表過。微軟有許多獨門的專利,其他公司或團體若抄襲或仿造微軟的創意或專利,照理說,都會被微軟告上法庭的。可是,Linux卻像是打不死的「蟑螂」,永遠存在。這是因為Linux有不怕被告的本錢:Linux的版本控管有記錄可查,每一個版本都有log檔案,記錄了每一個設計概念和創意。
此外,Linux社群都利用網路通信,共同討論問題和交換意見,他們的新創意發想幾乎都是公開的,而且是第一手的;即使某個模組或演算法觸犯到別人的專利權,Linux社群也可以藉由眾人的力量及早發現、及早移除之,並設法設計出其它替代方案。相反的,一些Linux社群的網站還很歡迎任何人複製他們的創意哩!你說奇不奇怪啊!
不過,「麵包」也很重要。有些開放原始碼社群四處尋找捐款,譬如:2000年時的OpenBSD,以及許許多多默默無名的Linux網站,類似現在的他們都很容易因為財務短缺而被迫關閉或被微軟個個擊破。FSF的GPL授權到GPLv4後也必須和商業妥協,當初Stallman在發表GPL時,就沒說GNU是免費的,可是一般人都把GNU當成「免費啤酒」一樣。
2008年,我國電子廠在CeBit展和柏林CE展吃盡了苦頭,都是因為廠商事先沒有查清楚專利的來源。雖然GNU是軟體授權,可是硬體和晶片其實也是用軟體設計而成的,而那些軟體很可能是使用GNU或其他授權,因此跟Linux軟體一樣,縱使硬體零組件是廠商自己採購的,可是晶片和電路圖的使用仍需要專利所有者授權,因為Linux或其它開放原始碼不是全部免費的。
總之,Unix是Linux的祖先,也是其它作業系統的祖先----微軟或許會否認,但這卻是不容置疑的事實。如果沒有Unix就不會有現在的PC和嵌入式裝置。Unix誕生後,GNU也隨之出現。連晶片和硬體都是軟體設計的,因此軟體才是智慧的精髓。軟體授權是無形的,而法律授權卻是非常無情的。許多開放原始碼一開始出現時,好像是免費的,可是等到有廠商拿去量產以後,他們就會來索取權利金,最明顯的例子就是uC/OS-II。只重視硬體量產的我國廠商長期漠視軟體的發展,以後恐怕會遇到更多的專利陷阱,這似乎是不可避免的。