隨著人們生活水平不斷提高,現代社會進入了科技時代,生活中隨處可見電子產品,微波爐、電風扇、烤箱、手機、電腦、各種智慧裝置,這些裝置從外表看來都不相同,有些簡單、有些複雜,但這些裝置其實都是由一套硬體與一套軟體的組成來達成其所需的功能。
電腦系統當中,對於user來說,hardware和application software是最容易接觸到的部分,例如: 用滑鼠操控Firefox、用硬碟儲存Visaul Studio Code寫出來的source code。
但hardware和application software之間,還有一種重要的軟體作為兩者的橋樑,除了讓application software可以運用hardware的資源,也確保application software可以正常運作,這種軟體稱為system software
。
Hardware
是computer system的實體裝置,user可以直接觸摸到的電腦元件都屬於hardware。每個hardware有其功能,並且可以被system software控制。
例如: CPU是一個hardware,它的主要功能是執行CPU指令集(instruction set)中的指令進行運算與資料存取,system software可以透過CPU指令控制CPU的運作,並且可以得到需要的運算結果與資料。
例如: PMU/HPM是一個hardware,可以用來量測software performance。
System Software
為了驅動hardware執行,並且為application software提供服務的軟體。System software會直接控制hardware,並且提供服務讓application software可以運行在system software提供的平台上。
例如: Kernel與device driver是system software,搭配分配CPU與hardware資源給application software使用。
Application Software
針對user的特殊需求所撰寫的software,大部分user會接觸到的軟體都是application software。Application software為user直接提供服務,它的內部會使用到system software提供的software或hardware資源,但一套computer system沒有application software也可以正常的運作。
例如: vim是一個application software,vim在開啟檔案、儲存檔案的時候會使用到hardware,但一套computer system中,沒有vim並不會使得computer system無法工作。
System software對於user來說是看不到、陌生的,但system (hardware and software) 缺乏system software是無法運作的,隨著hardware變化度越來越大的趨勢當中,system software的重要性也越來越被凸顯,在這次的鐵人賽中,我們會介紹system software相關的一些基本知識與開發輔助工具。
歡迎各位讀者在接下來的29天與我一起學習