應該沒有人會不知道作業系統是什麼吧?我們使用的電腦/筆電上會安裝Windows、macOS 或Linux,而手機/平板上不是Android 就是iOS;作業系統會管理我們裝置上的資源分配,包含CPU、記憶體、硬碟、網路和外接裝置等。
根據作業系統的基本概念,畫出的架構圖大概就像下圖一樣,作業系統是屬於軟體的範疇,但介於其他軟體和硬體之間,負責兩者之間溝通的橋樑。
目前市面上流行的作業系統不多,一般PC/NB就三種,而行動裝置有兩種:
基本上每個人接觸的第一個作業系統就是Windows,它是由微軟(Microsoft)開發的商用軟體,除了普遍使用在個人電腦上外,還可以在伺服器、嵌入式系統、行動裝置上執行。
它早期憑藉著優異的GUI 搶佔市場份額,擁有個人電腦作業系統的壟斷地位,得到了廣泛的軟體、遊戲支援,目前市佔率依舊超過60%。
Linux 是基於Unix 的開源作業系統,原本是單指作業系統的核心,核心內包含了許多圖形使用者介面和其他工具,而因爲它開源的特色,深受工程師們的喜愛,進一步衍生出眾多Linux 版本,由不同的社區和公司進行開發和維護。
如今Linux 已經泛指那些基於Linux 核心開發的作業系統,而原本的核心被稱為Linux 核心(Linux kernel)。
由蘋果(Apple)公司專為其PC/NB 開發的作業系統,也是基於Unix 的作業系統,它以優美的用戶介面及直觀的操作而聞名,蘋果公司還為其註冊商標(Aqua)。
憑藉著蘋果產品生態系的優勢,並專為創意專業人士和多媒體工作者設計,迅速搶佔作業系統市佔率,以目前查到的資料18%左右,在全美市佔率更是接近30%。
Android 是基於Linux 核心和其他開源軟體開發的行動作業系統,由Google 及其他業者組成的開放手機聯盟(Open Handset Alliance,OHA)共同開發,是第一個全面開放的手機平台,免費提供給手機廠商開發使用,是世界第一大手機作業系統。
iOS 是蘋果(Apple)公司專為其行動裝置所開發的專有行動作業系統,包括iPhone 和iPad,是僅次於Android 的第二大手機作業系統。
作業系統的功能有很多,後端學習地圖中有介紹以下幾種:
當然還有很多重要的功能,但我目前還不確定哪些需要了解,目前預計在接下來的篇章就講以上六種功能,如果有發現其他重要的會再新增。
繼網路篇章後,下一個作業系統也是很大的一個坑,而且平常除了使用指令以外,就沒有特別去了解其他部分,剛好藉由鐵人賽的機會,了解一下作業系統的知識。
個別來看的話,每個作業系統都會有特定的工程師去處理,像Android 工程師和iOS 工程師等,作為後端工程師應該不需要了解得太深入,除非想轉行iOS 工程師,最近有聽說薪水蠻高的。
Backend Developer Roadmap: What is Backend Development?
Computer Basics: Understanding Operating Systems
iOS系統與Android系統差在哪?從硬體到軟體解釋給你聽