計算機操作系統是基礎軟件,分為閉源和開源兩類。
廣義的操作系統包括:計算機(PC、工作站、服務器)系統、移動端系統(例如鴻蒙)、嵌入式系統 等。本文只涉及計算機操作系統。
計算機操作系統的功能角色:作為用戶和計算機硬件資源之間的交互,管理調度硬件資源,為應用 軟件提供運行環境。操作系統屬於基礎軟件,是系統級程序的彙集,為用戶屏蔽底層硬件複雜度, 並提供編程接口和操作入口。操作系統控制處理器(CPU)調度系統資源,控制應用程序執行的時機, 決定各個程序分配的處理器時間(CPU time)。操作系統需要兼容底層硬件和應用軟件,才能實現計算機的功能。
根據核心代碼是否向開放,操作系統可劃分為兩類:開源系統、閉源系統。
1. 閉源操作系統:代碼不開放,以微軟 Windows 系統為代表
微軟公司內部的研發團隊開發 Windows 操作系統,並開發配套的應用軟件,比如 Office。在生態 建設方面,Intel 和 Windows 長期合作形成 Wintel 體系,在 PC 端市佔率全球領先
Windows 系統的訪問分為 User mode(用戶模式)和 Kernel mode(內核模式)。用戶級的應用程序在 用戶模式中運行,而系統級的程序在內核模式中運行。內核模式允許訪問所有的系統內存和 CPU 指令。Windows 系統從最早期的 16 位、32 位到現在流行的 64 位,系統版本從最初的 Windows 1.0 到 Windows 95、Windows 98、Windows 2000、Windows 2003、Windows XP、Windows Vista、Windows 7、Windows 8、Windows 8.1、Windows 10 和 Windows Server 服務器企業級 操作系統,不斷持續更新。
Windows 系統最大的優勢在於圖形界面,使得普通用戶操作起來非常便利。相比大部分 Linux 系 統,windows 的常用軟件安裝和系統設置不需要以命令行的方式去輸入系統指令,只需要點擊“按 鈕”即可完成。如今,絕大多數常見軟件、專用軟件和底層硬件都支持 Windows 操作系統,形成 了 Window 強大的生態整體。
2. 開源操作系統:代碼免費開放,以 Linux 操作系統為代表
Linux kernel(內核)由 Linus Torvalds 在 1991 年發佈,代碼免費公開,由全球開發者共同貢獻, 已成為影響最廣泛的開源軟件項目。以 Linux 內核為基礎,不同的開發團體(開源社區、企業、個 人等)對內核代碼進行一定的修改和補充,加入 GUI(圖形界面)、應用等部分,形成了相應的 Linux 操作系統發行版。
Linux 系統版本之間存在衍生關係,由此形成 RedHat、Slackware、Debian 等幾大家族,各家族 內部又衍生出一些著名版本,如 Ubuntu、SUSE、CentOS、Red Hat Enterprise Linux、Fedora 等。
Linux kernel 是開源項目,由全球範圍的開發者(企業、團體、獨立開發者)共同貢獻源代碼。Linux 的官方組織是 Linux 基金會,作為非盈利的聯盟,協調和推動 Linux 系統的發展,以及宣傳、保護 和規範 Linux。Linux 基金會由開源碼發展實驗室(Open Source Development Labs,OSDL)與自 由標準組織(Free Standards Group ,FSG) 於 2007 年聯合成立。
開源社區是 Linux 系統的創新源泉和主要的開發場所。Linux 操作系統發行版分為社區版本和商 業版本。社區版本數量較多,其開發和維護的主體是開源社區。少數的商業版本(比如紅帽企業版) 則是在社區版本的基礎上,進一步優化而來。整體來看,無論是否涉及商業活動,開源社區是 Linux 發行版的創新來源和主要的開發場所。而成熟的開源社區通常由相應的開源基金會(或者項目委員 會)進行管理。開源基金會為開發社區制定了規則,進行資源管理,負責可能的商務對接,以及保 護社區的健康運轉。社區的開源基金會(委員會)一般由開源貢獻方進行贊助和決策支持。
許多開源社區背後都有一個主導企業,為社區提供資金和研究支撐,甚至直接委派員工參與開源 項目。例如,Fedora 社區的核心開發者中 1/3 是紅帽的正式僱員。通過資助和維護開源社區的方 式,企業可以發揮研究力量的“槓桿”作用,通過向社區輸入自有的研究資源,吸引更多的外部貢 獻者參與進來,擴大創意來源;另一方面,開源社區版本也成為企業擴大技術影響力的重要途徑。
Linux 操作系統由 4 部分組成:kernel、shell、文件系統、應用程序。 Kernel(內核)是操作系統的 核心,不同於 windows 的內核,Linux 的內核不僅實現了進程調度、內存管理、中斷處理、異常陷 阱處理,而且還實現了進程管理、進程通信機制、虛擬內存管理、文件系統驅動和 USB、網絡、聲 音等各類設備驅動子系統,決定了整個系統的性能和穩定性。而 shell 是系統的用戶界面,提供用 戶與內核交互的接口,接收用戶輸入的命令並送入內核去執行。
Linux 操作系統主要的優勢領域是服務器和嵌入式。據 Linux 基金會統計,全球 90%的公有云平 臺採用了 Linux 系統,99%的超算和 62%的嵌入式設備也都是基於 Linux。亞馬遜 AWS、微軟 Azure、微軟 Azure、谷歌雲平臺和阿里雲等主流雲服務商,都提供了 Linux 系統方案。全球公有 雲平臺運行的所有應用,超過 54%是運行在 Linux 虛擬機上。甚至微軟 Azure 的近 30%的虛擬機 也是基於 Linux。根據 IDC 在 2017 年的統計數據,全球服務器操作系統使用份額(免費+付費)中, 68%是 Linux 服務器操作系統。
Linux 操作系統在服務器領域的普及,主要由於 3 個方面:
1)創新方面,集思廣益。全球開發者對 Linux 內核保持了持續的更新,提供了充足的創新動力。據 GitStats 分析結果,截至 2018 年 9 月,已有超過 19000 名開發者為 Linux 內核貢獻了代碼, 這些開發者遍佈全球範圍超過1500個組織/企業。廣泛分佈的開發者,從不同視角不同方面對Linux 內核的補充,使得 Linux 系統得以快速適應服務器領域的變化。
2)系統代碼可以修改和自定義,用戶可調用計算機資源的自由度極高。 Linux 操作系統的使用者 可以輕鬆查看系統代碼,可以自由修改代碼來修補常見的問題,也可以開發自己的程序並添加入 Linux 操作系統中。相比 Windows 等閉源系統,Linux 支持了使用者對於計算機資源極大的使用自 由度,支持專業用戶去構建和自定義服務器,由此獲得了互聯網公司、雲計算公司的青睞。
3)運行效率高,運維成本低。Linux 系統在服務器上面的運行效率較高,相對比較輕量化,除非硬 件資源分配出現問題,不易出現系統卡死狀況。而且 Linux 系統天然地支持虛擬化。因此,在服務 器集群上,Linux 系統的運維成本較低。
4)安全。Linux 從發展根源上就是針對多用戶系統設計的,系統管理員和 root 用戶具有系統管理 權限。Linux 面向全球開發者開源,系統文件都是文檔,在全球開發者多次的篩查和更新中,基本排除了“後門植入”的可能。實際應用中,普通不成熟的 Linux 操作系統確實可能存在安全問題, 也是和系統的文檔屬性有關。例如,用戶 root 權限和 sudo 指令可在有意或無意間修改 Linux 系 統文檔,可能會對其他用戶或整個系統造成不利影響。因此,成熟的 Linux 操作系統解決方案,有 必要對這類屬性進行設計方面的防範,去進行適當的權限屏蔽。而這些安全屬性的設計,本質上並 不存在難以解決的障礙。
閱讀更多 網信軍民融合雜誌 的文章