一場版權官司如何改變軟體產業:Linux 的稱霸之路
作業系統,一個我們既熟悉又陌生的存在,它好像很重要,卻又不完全清楚它究竟做了什麼。在今日,桌面電腦的作業系統由 Windows 與 Mac OS 所把持,然而伺服器卻完全是另外一番風景,超過 90% 的伺服器都是運作在一個你可能沒聽過的作業系統——Linux,而 Linux 甚至還是免費的!今天我要告訴你 Linux 是如何掘起,成為伺服器的霸主。
Linux 簡史
作業系統(Operating System,簡稱 OS),是運行在電腦上,負責主管應用程式與硬體之間溝通的系統。為什麼需要作業系統呢?我們每個人的電腦都不一樣,有著不同的 CPU、記憶體、硬碟、網路卡,如果說沒有作業系統,寫程式的人就得要自己去控制所有硬體,那只要使用者換了新的硬體,你舊的程式就沒辦法跑。因此作業系統誕生了,我們由作業系統去連接所有的硬體,並提供系統呼叫(System Call)來讓應用程式跟硬體互動。這樣一來,當有新的硬體出現,只要作業系統支援,應用程式不用修改就可以直接在新硬體上運作。
從 1940 年代第一台電腦的發明以來,電腦領域就是非常熱門的發展重點。1969 年,貝爾實驗室發明了 UNIX 作業系統,UNIX 由於其優秀的系統設計與多人、多工能力,成為了大型主機的主流系統,直至今日,工程師仍相當推崇「UNIX 哲學」。在當時 AT&T 以低廉的許可將 UNIX 程式碼授權給美國的大學使用,而各大學也在 UNIX 的原始碼上做了許多擴充與改進,成為了「UNIX 變種」,其中最著名的就是柏克萊加州大學所開發的 BSD。然而 AT&T 後來意識到了 UNIX 的商業價值,便不再授權給學術機構,還對 BSD 等 UNIX 變種進行版權宣告,後來演變成了一場長期的官司。
1983 年,Richard Stallman 發起了 GNU 計畫及自由軟體運動,希望打造一個能不受限制的自由作業系統,希望不要再有像 UNIX 的事發生。你說 GNU 是什麼意思?GNU 是 GNU is Not UNIX 的縮寫,其中的 GNU 是 GNU is Not UNIX 的縮寫……GNU 計畫開始後,開發了許多系統的重要組件,好比編輯器、編繹器(將程式碼轉換成執檔的程式)、以及 shell,唯獨缺了一個系統核心。當時 BSD 仍在跟 AT&T 打官司,而 GNU 的核心開發又遇到許多困難而停滯不前。
到了 1991 年,芬蘭赫爾辛基大學的一位電腦科學學生 Linus Torvalds,因為不滿當時沒有一個可以自由使用的作業系統,於是就參考 UNIX 的架構,著手自己寫了一個核心(是個狠人),並將原始碼發佈在網路上,取名為 Linux。Stallman 在知道此事之後,便找上 Torvalds,邀請他將 Linux 以 GNU 提出的 GPL 自由軟體授權發佈,Linux 也使用 GNU 開發好的各種組件,組成了一個完整的作業系統,因此 Linux 的又叫作 GNU/Linux,但為求方便,我們一樣將其簡稱為 Linux。
歷經 30 年的發展,如今 Linux 已經取代 UNIX 成為伺服器的主流,以及各種小型電腦,如手機和路由器,都廣泛的使用 Linux。同時,自由軟體運動的發展也深深的改變了整個軟體產業,如今已成為了軟體開發的主流。工程師不再需要從頭開發所有功能,可以使用大量的自由軟體來完成,而這些自由軟體也在大家的共同努力下不斷進步,讓軟體產業成為了一個充滿創新且進展飛速的領域。
Linux 與它的發行版
當我們說「我在使用 Linux」時,其實是指「我在使用 Linux 發行版」(distribution)。Linux 本身只是一個核心,還需要搭配許多軟體才能構成完整的作業系統。因為 Linux 自由且開放的性質,任何人都可以建立自己的發行版,如今世界上有超過 600 個針對不同目的與需求開發的發行版,而 Linux 發行版也可能因為需求而包含一些專有軟體。
三大重要的發行版家族:
- Debian:由社群開發的發行版,特色是自由穩定,每個版本會有五年的支援期,軟體倉庫嚴格的區分自由軟體與專有軟體。當今最主流的發行版 Ubuntu 就是屬於 Debian 家族,而 Linux Mint、Pop!_OS 等發行版則又是基於 Ubuntu 之上。
- Red Hat:由紅帽公司所開發的發行版 Red Hat Enterprise Linux,特色是有商業支援的服務,常被企業伺服器所採用。其中針對個人使用的發行版為 Fedora。此外採用 RPM 包管理系統的還有 CentOS、openSUSE 等發行版。
- Arch Linux:同樣為社群開發的發行版,跟 Debian 不同的是,Arch Linux 採取滾動式更新,並沒有「版本」,直接從上游開發者取得最新的程式碼,並且對專有軟體比較寬鬆,可以直接從軟體倉庫安裝專有軟體。軟體更新最快,但你知道的……新軟體 bug 會比較多,你也需要自己解決比較多的問題。對比較有經驗的使用者而言,很可能是最適合桌面使用的發行版。現在很流行的發行版 Manjaro 跟 EndeavourOS 都是基於 Arch Linux。
世界上並沒有所謂「最好的發行版」,不同的發行版有不同的特色,在你有不一樣的需求、技術實力,或甚至在不同的人生階段,都會有一個最適合你當下的選擇,像極了愛情。「哪個發行版最好」,十個工程師,你大概會得到 12 個答案。光是我和夥伴內部討論,就吵了一整個星期,我不希望在第二部影片就開戰,但遺憾的是我終究還是得選一個開始。考量穩定性、熱門度、使用體驗的多個面向,在往後的教學我會使用 Ubuntu Server 作為伺服器的作業系統。
我自從 2017 年,在我家的一台老電腦上安裝了我的第一台 Ubuntu,從此踏入了 Linux 與 self-hosting 的圈子,後來也一路嘗試了各式各樣的不同發行版,最頻繁的時期甚至兩個月就換一個發行版。我不認為 Ubuntu 是最好的發行版,但它確實適合入門,不會讓你在第一次使用,還懵懵懂懂時就被嚇壞而不敢再嘗試。當你有了基礎後,我相信你自然而然會去尋找更合你胃口的發行版。
除了伺服器以外,Linux 也非常適合在桌面環境中使用,我自己從 2017 年以來也完全使用 Linux 作為我的桌面系統。關於 Linux 桌面環境,我們也會在未來的影片介紹。
在下一篇文章是 Ubuntu Server 實體電腦安裝教學,準備好你的舊電腦,我們下次見!
免費訂閱電子報,擺脫演算法控制
絕對不會寄垃圾信給你,隨時能取消訂閱