齊兵輝 鄭州航空工業管理學院智能工程學院
開源操作系統(open source operating system),就是公開源代碼的操作系統軟件,可以遵循開源協議(GNU)進行使用、編譯和再發布。在遵守GNU協議的前提下,任何人都可以免費使用,隨意控制軟件的運行方式。
開源操作系統(open-source operating system)具有源碼,而非只有編譯過的二進制碼。Linux是最為著名的開源操作系統,而Microsoft Windows則是一個著名的閉源(closed source)的系統。Apple公司的Mac OS X和iOS操作系統采用一種混合方式。它們有開源的內核,稱為Darwin,也有閉源的專用組件。
從源碼可以生成二進制碼,以便在系統上運行。而反著干,即從二進制碼到源碼的逆向工程(reverse engineering),則很費力,并且也無法恢復一些有用信息,如注釋。通過閱讀源碼學習操作系統還有很多好處。有了源碼,學生可以修改操作系統,再編譯和運行源碼,觀 察修改結果,這是很好的學習方式。
計算機和軟件公司試圖限制軟件使用,如只限于授權計算機和付費客戶。僅發布二進制代碼而非源代碼,可讓這些公司實現這一目標;對競爭對手來說,也保護了代碼及其方法。還有一個問題是關于知識產權的。操作系統和其他程序可以實施限制,只有授權計算機才可播放視頻和音樂、閱讀電子書等。如果實現這些限制的源碼公開了,那么復制保護(copy protection)和數字版權管理(Digital Rights Management,DRM)就無效了。許多國家 的法律,包括美國的千禧年數字版權法案(Digital Millennium Copyright Act,DMCA),都認定DRM代碼的逆向工程或試圖繞過復制保護是違法的。
為反對限制軟件使用與再發布,Richard Stallman于1983年設立了GNU項目,以創建一個免費的、開源的、兼容UNIX的操作系統。1985年,他發表了GNU宣言,主張軟件應是免費的和開源的。他也設立了自由軟件基金會(Free Software Foundation,FSF),以鼓勵自由交流軟件源碼和免費使用軟件。FSF不是對軟件施加版權(copyright),而是對軟件施加著佐權(copyleft),鼓勵共享和改進。GNU通用公共許可證(Gnu General Pubic License,GPL)為著佐權的條文,這是一個發行軟件的公共許可證。從根本上說,GPL規定:軟件源代碼應與二進制一起分布,軟件源代碼的任何修改應按同樣的GPL許可來發布。
GNU/Linux是開源操作系統的范例。GNU項目開發了許多與UNIX兼容的工具,包括編譯器、編輯器及其他實用程序,但從未發布內核。1991年,一位名叫Linus Torvalds 的芬蘭大學生,利用GNU編譯器和工具,開發并發布了一個類似UNIX的簡單內核,并邀請大家一起開發。有了Internet,任何有興趣的人員都可下載源碼,可修改它,可向Torvalds遞交修改。每周更新一次,加上數千程序員的共同努力,使得這個稱為Linux的操作系統迅速發展起來。
這樣形成的GNU/Linux操作系統有數百個的不同發布(distribution)和定制。主流的發布有RedHat、SUSE、Fedora、Debian、Slackware和Ubuntu。在功能、實用程序、應用程序、硬件支持、用戶界面和用途等方面,這些發布不盡相同。例如,RedH Enterorise Linux針對的是大企業的應用。PCLinuxOS為LiveCD,該操作系統可以從CD-ROM上直接引導并運行,而無須安裝到系統硬盤。一種稱為“PCLinuxOS Supergamer DVD”的PCLinuxOS為LiveDVD,它包括圖形驅動程序和游戲。玩家可以在任何兼容系統上,直接從DVD引導并開始游戲。游戲結束后,系統重新引導就會回到原來安裝的操作系統。
正如Linux一樣,BSD UNIX也有許多發布,如FreeBSD、NetBSD、OpenBSD和DragonflyBSD等。為了研究FreeBSD源碼,只要下載感興趣版本的虛擬機鏡像,并從VMware中引導即可,具體步驟與Linux相似。
自由軟件運動使得眾多程序員創建了數千個開源項目,包括操作系統。網站如http://freshmeat.neg/和 http://distrowatch.com/為許多這些項目提供了門戶網站。正如以上所述,開源項目讓學生利用源碼作為學習工具。他們可以修改程序,測試程序,幫助查錯和糾錯,也可研究全功能的成熟操作系統、編譯器、工具、用戶界面和許多其他類型的程序。以前項目(如Multics)的源碼有助于學生學習這些項目,增長知識,實現新的項目。
雖然GNU/Linux和BSD UNIX都是開源操作系統,但是它們有自己的目標、工具、版權和用途。有時,版權并不互斥,也會出現交叉,這也加快了開源操作系統項目的改進。例如,OpenSolaris的多個組件就移植到BSD UNIX。免費和開源的優點可能是:提高了開源項目的數量和質量,使用這些項目的個人和公司也增加了。