為什麼2017年之後作業系統仍將扮演重要角色?

linuxpro2023發表於2023-04-17
作業系統的歷史雖然不像計算科學那麼久遠,但卻也已經擁有相當可觀的發展歷程。大型機客戶於上世紀五十年代末編寫了第一批作業系統,這些系統直到數十年後的今天仍擁有相當的知名度——其中包括來自IBM公司的OS/360以及貝爾實驗室打造的Unix。

在可預期的未來,作業系統仍將繼續存在並保持活躍。

作業系統的歷史雖然不像計算科學那麼久遠,但卻也已經擁有相當可觀的發展歷程。大型機客戶於上世紀五十年代末編寫了第一批作業系統,這些系統直到數十年後的今天仍擁有相當的知名度——其中包括來自IBM公司的OS/360以及貝爾實驗室打造的Unix。
為什麼2017年之後作業系統仍將扮演重要角色?為什麼2017年之後作業系統仍將扮演重要角色?
首先,作業系統立足於物理系統之上且與硬體直接互動。這使得眾多應用軟體能夠充分享受到硬體提供的特性與功能。舉例來說,這意味著開發商能夠在硬體當中提供更多創新空間,因為作業系統能夠完成對新型處理器及各類伺服器設計方案的支援任務——而無需強迫開發者承擔這部分工作。可以說,硬體創新將在機器學習及其它關鍵性軟體發展趨勢背景下煥發更為旺盛的生機,這意味著我們不再需要年復一年等待CMOS工藝提升帶來有限的一點效能提升。隨著混合雲架構的廣泛普及,由此抽象層帶來的可移植能力亦將變得更為重要。

第二,作業系統本身——特別是作業系統核心——負責執行應用程式所必需的常規任務。其管理程式排程、電源管理、root訪問許可權、記憶體分配以及全部其它底層守護及執行類細節任務,從而保證系統整體能夠高效安全地保持運作。

最後,作業系統還作為其自有“使用者相關”程式——例如日誌記錄、效能配置等系統工具——以及使用者所編寫之應用程式的介面存在。作業系統應當透過各類基於開放標準的API(即應用程式程式設計介面)為應用提供一致性介面。另外,商業支援型作業系統亦會提供與其在業務及技術層面保持合作關係的第三方應用程式供應商的產品,同時作為內容通道為該平臺提供更多受信內容。

過去幾年以來,計算技術的發展前景已經發生了很大變化,這也同時改變了我們看待作業系統及其效果的方式——儘管其仍然扮演實在同樣的核心角色。總體而言,我們需要考慮應用程式打包方式、計算基礎設施快速發展以及未來威脅與漏洞等一系列實質性轉變。

容器化

執行在 容器內的應用程式相當於立足於一套經過隔離並執行在物理伺服器之上的單一作業系統副本內。這套方案不同於以往基於虛擬機器管理程式的虛擬化例項。虛擬機器方案意味著每款應用都繫結有一套完整的訪客作業系統副本,並能夠透過管理程式與硬體進行通訊。簡而言之,虛擬化管理程式負責對硬體資源進行虛擬化,而容器技術則負責對作業系統資源進行虛擬化。如此一來,容器技術需要佔用的記憶體等系統資源量更低,且應用程式的執行基本不會帶來額外效能損耗。

容器化技術在很大程度上依賴於大家熟知的作業系統概念。容器構建於Linux核心的程式模式之上,同時配合其它作業系統功能,例如名稱空間(例如程式、網路、使用者)、cgroups以及許可權模式,旨在實現容器隔離的同時實現完整的系統功能。

容器技術的優勢在於,其能夠將整體應用程式拆分成一組可移植層結構,從而以極低成本實現在不同環境間的遷移。在這方面,容器其實只是個籠統的概念,其擁有多種不同的實現形式——且目前尚未成為主流。(至少還遠未達到虛擬化應用的普及程度。)對於容器技術而言,當前最為重要的變化在於開源及開放標準開始發揮核心作用。以開放容器倡議為例,該合作專案由Linux基金會負責管理,旨在圍繞容器的格式及執行時等建立開放性行業標準。

另外值得關注的是,容器技術與軟體定義基礎設施(例如OpenStack)相結合後,已經被納入Linux範疇之內。透過計算機軟體的發展歷史,可以清晰地看到將技術方案整合至作業系統之內代表著相關技術將得到廣泛採納,並迎來更為廣闊的發展空間及更加強大的生態系統支援——TCP/IP之於網路或者其它任何被廣泛採用的安全相關特性都能夠證明這一點。

規模化

另一大明顯轉變在於,我們越來越多地將計算資源表現形式歸於大規模資料中心,而非個別伺服器。這種轉變早在Web誕生之初就已經出現,但必須承認,如今我們正在更為積極地利用高效能運算“網格”技術處理傳統批次工作負載以及新型面向服務類負載。

與容器以及基於鬆散耦合型“微服務”(各服務執行於容器內)應用進行銜接——無論是否配合永續性儲存——已經成為一類高人氣雲原生方案。儘管與面向服務架構(簡稱SOA)概念存在交集,但這類方案已經顯示出強大的可行性,且開拓出不同於以往整體式應用開發理念的全新思路。透過細粒度、鬆散耦合架構實現的微服務應用允許我們在應用架構內反映經過確切定義的單一應用功能。微服務架構的快速更新、可擴充套件性以及容錯性等優勢正使得此類組合式應用全面壓制傳統整體型應用,畢竟我們很難在不影響其它元件的前提下,對後者的單一元件進行變更。

而這種轉變從作業系統的角度來看,意味著應用能夠更多將單一“計算機”作為一組聚合型資料中心資源集來看待。當然,其中仍然存在著大量底層獨立伺服器; 且雖已具備一定程度的自動化及自行運作能力,其仍需要運營及維護。不過,容器排程與管理的效率優勢已經催生出新的抽象機制,即為工作負載的執行以及多層應用程式的組合帶來全新實現層——而不再單純依靠伺服器。

隸屬於Linux基金會的雲原生計算基金會(簡稱CNCF)旨在“推動新型計算規範的採用,其面向包含成千上萬擁有自我修復能力的多租戶節點的現代分散式系統環境。”CNCF之下的傑出專案之一正是Kubernetes,這款開源容器叢集管理工具最初由谷歌公司設計,但目前已經獲得來自 等其它多家廠商的支援與貢獻。

安全性

一切適用於虛擬化環境的安全強化機制、效能調整機制、可靠性技術手段以及認證,亦同樣適用於容器化技術。事實上,作業系統在隔離化容器及軟體定義基礎設施領域承擔的安全性與資源交付責任要遠高於原有專用硬體或軟體執行環境。Linux已經在利用開源模式構建綜合性安全執行功能工具包當中成為受益者,其中包括透過SELinux實現強制性訪問控制、廣泛的使用者空間與核心強化功能、身份管理與訪問控制乃至加密等等。

不過就目前來看,資訊保安態勢仍然處於不斷變化當中。無論是允許客戶及合作伙伴訪問特定系統與資料、允許員工使用自有智慧手機與筆記本裝置、使用來自軟體即服務(簡稱SaaS)供應商提供的應用程式還是發揮公有云供應商的按需付費計價優勢,我們都無法透過單一方案解決全部實際需求。

開放性開發模式允許整個行業認可同一套標準,並鼓勵最為睿智的開發者不斷對這些技術方案進行測試及改進。大型企業及其下轄部門能夠及時向Linux及其它開源軟體供應方提供安全性反饋,這也有力證明了社群合作在未來技術發展道路上解決問題的實際能力。另外,開源開發流程意味著一旦安全漏洞被曝光,整個開發者社群及供應商都能夠協同提供程式碼更新、安全指導以及說明文件。

除了作業系統之外,同樣的流程及實踐方式亦被混合雲基礎設施所採用,旨在對現有方案進行升級並納入更多新型功能。另外,當元件以微服務及其它鬆散耦合架構形式進行復用時,維護這些元件自身質量及其依賴性(當用於構建應用程式時)的重要意義將進一步提高。

有變化,亦有不變

目前作業系統開發及運營相關事務的具體優先順序顯然發生了轉變。目前我們的關注重點在於如何以規模化方式進行自動化部署,而不再是對單一伺服器進行定製、調整及最佳化。與此同時,威脅因素的發展速度及程度亦令安全邊界變得更加模糊——這意味著我們需要立足系統層面瞭解網路以及快速加以應對的具體辦法。

總結來講,應用程式正變得更具適應性、更具移動性、更具分佈性、更具穩定性且更具輕量性。其安置、配置以及保護方式必須配合更高水平的自動化方案。在此期間,有些作法應當保持,而有些作法則應當變更。這意味著我們必須找到一種能夠隨新要求演變並適應新型工作負載的解決方案?而答案,無疑正是作業系統——或者說,Linux作業系統。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70028838/viewspace-2946384/,如需轉載,請註明出處,否則將追究法律責任。

相關文章