操作系統 OS (oprating system)
隨著計算機行業的迅速發展, 如今的操作系統的種類越來越復雜, 單一的概念有些難以描述清楚, 我將操作系統大致分為3個種類為大家描述
交互簡單, 帶GUI(圖形界面)的操作系統
這種類型的操作系統是大家生活中見得最多, 接觸的最多的操作系統, 例如PC操作系統中windows和帶桌面的Linux, 手機操作系統Android, IOS等. 該類操作系統有豐富的交互界面以及方式, 也能控制各種各樣的外設, 功能強大的同時體積也很龐大, 需要較強的處理器和存儲設備支持. 大量應用于通用計算機型計上, 學習使用門檻低, 可配適的設備多, 這類操作系統上開發的應用程序比較通用. 同操作系統和平臺上, 在更換設備后幾乎也可以正常運行, 可以供人們日常使用.
交互比較困難, 不帶GUI的操作系統
Unix, Linux , windows server等常用于服務器的操作系統, 跟大家的生活其實也密不可分, 他們運行著我們日常所使用各種軟件的網絡服務程序, 或是游戲的網絡服務程序, 我們家里的路由器也會運行類unix操作系統 ,但是這些操作系統沒有GUI或帶GUI的軟件較少, 硬件方面有的可能也沒有顯示設備, 幾乎靠命令行, 或遠程控制程序與運維人員進行交互, 一般人難以操作, 學習使用的成本交高. 在嵌入式中也應用較多, 例如路由器, 物聯網設備網關, NAS等, 這類操作系統上運行的應用程序有一定的定制性, 但由于其操作系統層面接口較為統一, 可移植性也不錯.
嵌入式實時操作系統 RTOS
與上述兩類操作系統相比, 這類操作系統體積非常小, 其源碼可能不到1MB, 操作系統本身沒有提供能夠與人交互的方式, 需要開發人員在其應用層面再確定. 這類操作系統更多是為應用程序提供多線程支持和線程間通信功能的支持, 在這類操作系統上開發的應用程序需要和硬件設備做深度的配適, 更換設備后可能就無法運行, 定制性較強, 可移植性較差
Shell
像Windows和Linux這樣功能豐富的操作系統, 其運行的程序大致可以分為這三個層次
系統內核( Kernel )
用戶與內核交互層( Shell )
應用程序( Application )
能夠正真直接操作計算機硬件(讀寫硬盤, 調用通信接口等)的只有Kernel.
Shell則是在用戶與Kernel之間的一座橋梁
Shell是一部分程序的集合, 這些程序提供了我們用戶與Kernel之間最直接的, 最原始的交互方式: 命令行
例如windows的cmd / powershell 或是 Linux的Terminal這樣的黑框框窗口就叫做命令行終端, 我們在窗口中輸入各種字符命令, 按下回車, 操作系統便會去嘗試執行, 然后給我們返回一些字符信息作為反饋, 在以前, 計算機操作系統還沒有圖形界面的時候, 人們都是這樣與系統交互的. 我們在命令行中輸入的不同指令, 其實就是一個個不同的shell程序
內核模式
上一部分所說到的操作系統, 都有兩種工作模式
用戶模式
在用戶模式下,執行代碼不能直接訪問硬件或引用內存。在用戶模式下運行的代碼必須委托給系統API來訪問硬件或內存。上一部分所說到的Shell, 就是由這些API所封裝而成的程序, 由于這種隔離提供的保護,用戶模式下的崩潰總是可恢復的。在您的計算機上運行的大多數代碼將在用戶模式下執行。
內核模式
在內核模式下,執行代碼可以完全且不受限制地訪問底層硬件。它可以執行任何CPU指令和引用任何內存地址。內核模式通常為操作系統的最低級別、最受信任的功能保留。內核模式下的崩潰是災難性的;他們會讓整個電腦癱瘓。
GUI
Graphics User Interface , 用戶圖形界面. 這個非常好理解, 前面shell部分已經提到過, 以前的計算機操作系統全靠命令行來實現交互, 圖形界面其實則是吧各種樣的指令做成了圖標或者按鈕等圖形, 給不同的程序劃定了顯示的范圍, 以實現更加高效的交互.
通過圖標形象的表示一些功能, 也減少了操作系統的學習成本, 再困難也比命令行記單詞縮寫來的快
X86 , ARM和RISC-V
X86和ARM是兩種處理器架構, 也是兩種指令集架構, 是目前世界上應用的最多的兩種處理器架構
X86
X86由早期(1978年)的英特爾最先推出, 也授權給了早期的AMD (以前和Intel是一家人) , 這種架構使用復雜指令集( CISC ), 32位寬度, 大量應用于高性能計算機上, 例如超級計算器, 服務器, 桌面級PC. 后續推出了64位的擴展集, 被稱為X86-64 , AMD64 或 X64
ARM
ARM架構( Advanced RISC Machine )由ARM公司于1991推出, 他是一種精簡指令集( RISC )架構, 32位寬度, 當然后續也有ARM64的64位版本, 這種架構相較于X86, 同時期性能較弱, 但是其功耗更低, 所以現在大量應用于移動端計算機設備, 嵌入式設備更是離不開它功耗低的特點
RISC-V
與前面兩種架構不同, 這是一種開源架構, ARM架構也在其第一代架構上發展, 開發者使用其來設計處理器無需向前面兩種架構那樣獲取授權或是繳納巨額授權費. RISC-V也是現在非常火熱的架構, 但是其成熟程度和生態暫時還是不如ARM和X86.
ARM架構也是基于RISC第一代發展而來, RISC-V也與ARM較為類似, 大量應用于嵌入式或是一些低功耗場景, 但是由于其優秀的效能, 也被阿里這樣的公司應用于數據中心服務器
雖然現在RISC-V的話語權還不夠, 但是喜歡嵌入式的同學也應該時刻對它保持關注, 在未來極大可能會成為一種新的主流架構