Linux 的簡史

介紹

在通俗用法中,“Linux”通常指的是圍繞Linux內核構建的一組操作系統發行版。然而,在最嚴格的意義上,Linux僅指內核本身的存在。為了構建完整的操作系統,Linux發行版通常包括來自GNU項目和其他來源的工具和庫。近來,越來越多的開發人員使用Linux來構建和運行移動應用程序;它還在Chromebook等價格實惠的設備的開發中發揮了關鍵作用,這些設備在內核上運行操作系統。在雲計算和伺服器環境中,Linux基於一些實際原因成為一個受歡迎的選擇:

  • 它的發行版保持當前並得到其他開發人員社區的支持。
  • 它可以運行在各種硬體上並且可以與現有系統並存(在本地開發環境中這是一個有用的特點)。
  • 它支持從現有存儲庫中進行集中軟體安裝。
  • 它的資源需求很低。
  • 在開發人員構建應用程序生態系統和伺服器工具時,它經常是首選,具有很高的兼容性。
  • 它維持對操作系統行為的必要修改。

此外,Linux還可以追溯到自由和開源軟體運動的起源,因此一些開發人員基於道德和實際原因選擇使用它。

  • 對於一些開發者來說,使用Linux代表對可訪問性和表達自由的承諾。
  • Linux社區對一些開發者也具有吸引力:當他們有問題時,可以諮詢由該社區產生的資源,或直接聯繫眾多活躍的維護者之一。

為了了解Linux在開發者社區(以及更廣泛的範疇)中的角色,本文將通過Unix的方式概述Linux的簡要歷史,並討論一些流行的Linux發行版。

Unix的根源

Linux源於Unix和Multics,這是兩個旨在開發堅固多用戶操作系統的項目。

Unix的起源

Unix是在Bell Laboratories的計算機科學研究中心的Multics項目迭代中發展而來的。在Bell Labs和其他地方參與Multics項目的開發者們致力於構建一個具有單層存儲、動態鏈接(運行過程可以請求將另一段添加到其地址空間,使其能夠執行該段代碼)和分層文件系統的多用戶操作系統。

貝爾實驗室於1969年停止資助Multics計畫,但一群研究人員,包括Ken Thompson和Dennis Ritchie,繼續遵循該計畫的核心原則進行工作。在1972-3年,他們決定用C重新編寫系統,這使得Unix具有獨特的可移植性:與其他當代操作系統不同,它既可以從硬件轉移,也可以比硬件更長久。

貝爾實驗室(後來的AT&T)的研發工作仍在繼續,Unix System Laboratories與Sun Microsystems合作開發了Unix的版本,這些版本被商業Unix供應商廣泛採用。與此同時,學術界的研究也在繼續進行,最著名的是加州大學伯克利分校的計算機系統研究小組。該小組生產了伯克利軟件發行版(BSD),它啟發了各種操作系統,其中許多至今仍在使用。值得注意的兩個BSD發行版是NeXTStep,這是由NeXT開創的操作系統,它成為macOS等產品的基礎,以及MINIX,這是一個教育用操作系統,作為Linus Torvalds開發Linux時的比較基礎。

Unix的主要特點

Unix以清晰度、可移植性和同時性原則為導向。

  • 清晰度:Unix 的模塊化設計允許功能以有限且明確的方式運行。它的文件系統是統一且分層的,這簡化了數據操作。與一些前身不同,Unix 實現了數百(而不是數千)個系統調用,每個調用都設計為目標明確且清晰。
  • 可移植性:通過用 C 語言編寫 Unix,貝爾實驗室的團隊將 Unix 定位為廣泛使用和采用。C 語言被設計為對內存具有低級訪問權限,對運行時支持要求最小,並且語言與機器指令之間具有高效的關係。基於 C 語言的基礎意味著 Unix 具有適應性,並且易於在各種硬件上運行。
  • 同時性:Unix 內核針對維持多個用戶和工作流程(與 Multics 項目共享的目標)進行了定制。Unix 中的內核空間與用戶空間保持分離,這使得多個應用程序可以同時運行。

Linux 的演進

Unix 為開發人員提出了重要問題,但在其最早期的版本中仍然是專有的。因此,它的歷史的下一章是開發人員如何在其中工作並對其進行抵制,以創建免費和開源替代方案。

開源實驗

理查德·斯托曼是那些受啟發於創建非專有替代方案以替代Unix的開發者中的重要人物。在麻省理工學院人工智慧實驗室工作時,他開始進行GNU項目(遞歸為“GNU’s not Unix!”)的工作,最終於1984年離開實驗室,以便將GNU組件作為自由軟件進行分發。GNU內核,被稱為GNU HURD,成為自由軟件基金會(FSF)的焦點,該基金會於1985年成立,目前由斯托曼領導。

與此同時,另一位開發者正在為Unix創建一個免費替代方案:芬蘭大學生林納斯·托瓦茲。在對MINIX的許可證感到沮喪後,托瓦茲於1991年8月25日向MINIX用戶組宣布,他正在開發自己的操作系統,類似於MINIX。儘管最初是使用GNU C編譯器在MINIX上開發的,但Linux內核很快成為一個具有核心開發人員的獨特項目,這些人於1994年與托瓦茲一起發布了內核的1.0版本。

Torvalds 曾使用 GNU 代碼,包括 GNU C 編譯器,與他的核心,事實仍然是許多 Linux 發行版使用 GNU 元件。 Stallman 曾遊說擴展 “Linux” 一詞為 “GNU/Linux”,他認為這將捕捉到 GNU 專案在 Linux 發展中的角色以及促成 GNU 專案和 Linux 核心的基本理念。 如今,“Linux” 常常用來指示 Linux 核心和 GNU 元素的同時存在。 同時,許多手持設備和智能手機上的嵌入式系統通常使用幾乎沒有 GNU 元件的 Linux 核心。

Linux 的主要特點

儘管 Linux 核心從 Unix 繼承了許多目標和特性,但它與早期系統在以下方面不同:

  • 它的核心組件是獨立於其他操作系統組件開發的內核。 這意味著 Linux 借用了來自各種來源(如 GNU)的元素來組成整個操作系統。
  • 它是自由和開源的。 內核由開發人員社區維護,授權條款為 GNU 通用公共許可證(FSF 在 GNU 專案上的工作的分支),並可供下載和修改。 通用公共許可證規定衍生作品必須保持原始軟件的授權條款。 GNU 通用公共許可證
  • 它具有类似于Unix的单片内核,但可以根据需求动态加载和卸载内核代码。
  • 它支持对称多处理器(SMP),与传统的Unix实现不同。这意味着单个操作系统可以访问多个处理器,它们共享主内存并可以访问所有I/O设备。
  • 它的内核是可以抢占的,这也是与Unix的另一个不同之处。这意味着调度程序可以在驱动程序或内核的其他部分执行时强制进行上下文切换。
  • 它的内核不区分线程和普通进程。
  • 它包括一个命令行界面(CLI),也可以包括一个图形用户界面(GUI)。

开发人员今天维护着许多流行的Linux发行版。其中最长寿的是Debian,一个免费开源的发行版,提供了50000个软件包。Debian启发了另一个流行的发行版Ubuntu,由Canonical Ltd资助。Ubuntu使用Debian的deb软件包格式和软件包管理工具,并将其变更推送回Debian。

A similar relationship exists between Red Hat, Fedora, and CentOS. Red Hat created a Linux distribution in 1993, and ten years later split its efforts into Red Hat Enterprise Linux and Fedora, a community-based operating system that utilizes the Linux kernel and elements from the GNU Project. Red Hat also has a relationship with the CentOS Project, another popular Linux distribution for web servers. This relationship does not include paid maintenance, however. Like Debian, CentOS is maintained by a community of developers.

结论

在本文中,我們探討了Linux在Unix中的根源以及一些其獨特特性。如果你對於學習Linux和Unix變體(包括FreeBSD)的歷史感興趣,一個不錯的選擇可能是參閱我們的FreeBSD系列。另一個選擇可以考慮是閱讀我們的入門Linux入門系列。你也可以查看這篇有關Linux文件系統佈局的介紹,這篇討論如何使用findlocate在Linux VPS上搜尋文件,或這篇在命令行中介紹正則表達式

Source:
https://www.digitalocean.com/community/tutorials/brief-history-of-linux