天天看點

linux之父?一文看懂Unix是什麼!

作者:托碼頭小小小方

I. 介紹

A. Unix 背後的故事和意義

Unix 是一種高性能、多使用者、多任務的作業系統,最初由 AT&T 的肯·湯普森、丹尼斯·裡奇以及布賴恩·柯林漢基于 Bell Labs 的 Multics 作業系統開發而來。它于 1969 年首次亮相,并在 1970 年代成為了最重要的計算機作業系統之一。

Unix 不僅僅是一種作業系統,它也代表了一種思想,即開源和自由。Unix 早期的版本是一種共享軟體,可以被任何人任意修改和使用,這很大程度上推動了計算機作業系統的發展和普及。

此外,Unix 還代表了作業系統的設計哲學。Unix 在其設計中強調的原則包括:單一的機器模型、清晰定義的接口、子產品化設計、小的、可重用的工具和縱深的測試方案。這種哲學在 Unix 的後繼者 Linux 和其他作業系統中得到了廣泛采用。

linux之父?一文看懂Unix是什麼!

B. 為什麼人們選擇使用 Unix

人們選擇 Unix 的原因很多,這些原因包括:

  1. 可靠性:Unix 作業系統以其穩定性和可靠性而聞名,它能夠支援長期運作和高負載的企業應用程式。
  2. 安全性:Unix 作業系統通過在使用者級别和系統級别上強制嚴格的權限控制,以及其他一些進階安全技術,來保護使用者資料。
  3. 靈活性:由于 Unix 是開源的,使用者可以根據自己的需要修改并重新編譯 Unix 作業系統的代碼,進而提供更加定制化的作業系統。
  4. 強大的工具和應用程式:Unix 作業系統提供了許多優秀的工具,如文本編輯器 vi 和指令行終端,以及強大的應用程式,如 Apache Web 伺服器和 MySQL 資料庫。
  5. 可擴充性:Unix 作業系統能夠以子產品化的方式擴充和定制化,企業群組織可以根據自己的需要進行增強和調整。

II. Unix 作業系統曆史演變

Unix 作業系統自 1969 年首次亮相以來已經發生了多次演變,其曆史可以分成以下幾個階段:

A. 前身:Multics

Unix 作業系統的前身是 Bell Labs 的 Multics (Multiplexed Information and Computing Service)作業系統,該系統是一種時間共享的大型主機作業系統,具有許多創新的特性,例如虛拟記憶體、多任務、分時操作等。

B. 第一個版本的 Unix:Unix Version 1

1969 年,肯·湯普森、丹尼斯·裡奇和布賴恩·柯林漢在 Bell Labs 開始了 Unix 作業系統的開發,并在 1971 年釋出了第一個版本(Unix Version 1),它隻能運作在 PDP-11 上。

Unix Version 1 非常簡單,隻有不到 10,000 行代碼,但它具有子產品化設計、簡單有效的指令行接口和可擴充性等特性,這些特征成為了未來 Unix 版本的基礎。

C. 發展與創新:BSD 和 System V

Unix 的發展一直在推動着系統的進步和創新,這裡主要介紹 BSD 和 System V 兩個版本的發展。

  1. BSD

Berkeley Software Distribution(BSD)是由加州大學伯克利分校開發和維護的 Unix 分支版本,它加入了許多新的功能和特性,如虛拟記憶體、TCP/IP 網絡協定棧、BSD sockets、vi 編輯器等。BSD 也是 Unix 工具和應用程式的主要來源之一。

  1. System V

AT&T 在 1983 年釋出了 UNIX System III 和 System V 兩個版本,後者成為了 AT&T Unix 的主要版本。System V 和 BSD 不同,它更關注于企業級應用程式,例如分布式計算和資料庫管理系統。

D. 開源運動:GNU/Linux 和 BSD衍生版

20 世紀 80 年代後期和 90 年代初期,開放源代碼運動的興起為 Unix 作業系統的發展開創了一條新的道路。開源運動使得 Unix 作業系統成為了免費和可定制化的作業系統,其主要發展方向如下:

  1. GNU/Linux

GNU/Linux 是由 GNU 計劃的理念建立的一款基于 Linux 核心的 Unix 作業系統,它是由像 Richard Stallman 這樣的 Unix 愛好者建立的。該作業系統具有自由和開放的特性,并成為了 Linux 作業系統開發和使用的主要方向。

  1. BSD 衍生版

BSD 衍生版是由 BSD 作業系統的版本衍生而來,如 FreeBSD、NetBSD、OpenBSD 和 DragonFly 等。這些作業系統大力推動了開放源代碼運動,并迅速獲得了廣泛的使用和貢獻。

linux之父?一文看懂Unix是什麼!

III. Unix 特性

A. Unix 作業系統的簡單、緊湊可靠性、易擴充性得益于它的子產品化設計和良好的标準化。Unix 作業系統将各種不同的功能子產品,例如檔案系統、網絡協定和使用者接口等,組織成清晰且獨立的系統元件。這使得使用者可以選擇自己需要的功能,将它們組合成一個完整的作業系統,這種功能子產品化的設計也使得 Unix 作業系統很容易擴充和更新。

B. Unix 首先就是設計成支援多使用者和多任務的作業系統,使得多個使用者能夠在同一時間共享計算機的資源,這大大提升了計算機的使用效率和使用率。Unix 作業系統中的“程序”和“線程”是實作多任務的基本單元,每個程序或線程都擁有獨立的資源和控制能力。

C. Unix 作業系統強調文本編輯和程式設計環境,這種特性展現在它的“Shell”(指令行界面),它可以使用文本界面在各種作業系統中有效的編輯文本檔案,執行指令行指令并編輯腳本或程式檔案, 使用者可以按照自己的喜好配置、定制自己的 Shell 界面。

D. Unix 作業系統内置了許多安全機制來保證系統、檔案和使用者的安全性。其中最重要的安全機制應該是“權限控制”(Permission Control)。在 Unix 作業系統中,每個檔案和目錄都有所屬使用者和使用者組,同時還具有“讀”,“寫”,“執行”等權限設定。系統管理者可以精确控制使用者對檔案和目錄的通路權限。此外,Unix 作業系統中的“防火牆”和“加密”等安全機制也大大增加了系統的安全性。

linux之父?一文看懂Unix是什麼!

VII. 後言

A. Unix 作業系統的優勢包括簡潔、高效、可擴充、可定制性強、穩定性高、多使用者、多任務處理能力等,這些特點使 Unix 成為了現代作業系統的典範。不足之處主要包括:

1. 使用者體驗不夠友好:Unix 作業系統主要是面向專業人士和技術人員,是以界面和操作相對于普通使用者來說有些略顯複雜和難以了解。

2. 軟體支援不夠廣泛:雖然 Unix 作業系統的開源特性使得其軟體可以被擴充和改變,但是它的應用程式和軟體支援略弱于其他作業系統,在某些領域的使用限制較多。

3. 學習曲線較陡:由于 Unix 作業系統注重安全、可靠和高效性,學習如何操作和使用這種系統對于初學者來說可能需要較長的學習曲線。

B. 随着技術的不斷進步,Unix 作業系統仍将繼續發展和演變,這其中可能出現以下幾種趨勢:

1. 全面開源:由于開源軟體日益盛行,以及不少大型科技公司(如Google和Facebook)的使用,Unix 作業系統在接下來可能進一步開源,這将使得它的功能和應用範圍更強大、更廣泛。

2. 支援新興技術:随着物聯網、大資料、雲計算等新興技術的崛起,Unix 作業系統可能會加強對這些技術的支援,使它們與現有的計算機環境更好地融合。

3. 缺陷修複:随着 Unix 作業系統的使用和開源,越來越多的漏洞和問題得到了發掘,未來 Unix 開發人員将進一步修正和優化系統,提升其可靠性和安全性。

linux之父?一文看懂Unix是什麼!

繼續閱讀