Windows還是Linux?這是一個問題。前者是多數人接觸第一款操作系統,甚至于對于這部分人來講,Windows就是電腦的代名詞,我們熟悉該系統的操作邏輯,他有完整的軟件生態,即使是再小眾的軟件移植到PC首先考慮的必然是Win的兼容性,Windows仿佛是開發平臺的必然選擇,是這樣嗎?
Win與Linux學習曲線
如上圖所示,Windows的生態對于娛樂、辦公、學習等有廣泛的適應性,但是有他有多項缺點是不能容忍的。第一,對于本項目而言,Windows環境軟件少之又少,相關參考資料由于系統閉源的特性又語焉不詳;第二,系統函數封裝過度,用戶調用極其困難;第三,一個工作需要切換多個軟件界面,需要點擊多次鼠標,筆者認為如果鍵盤能解決問題沒必要轉到鼠標。
Linux上手是一件困難的事情,如果是選擇不帶圖形化界面的更是如此,但失之東隅收之桑榆,當跨過攔路虎后,你會發現Linux世界如此廣闊,同樣的選擇Linux作為開發環境也有幾個理由。第一,適合本項目的軟件眾多,而且Linux提供的包管理工具可以很方便的下載和使用,Linux的man手冊也給軟件學習提供官方的學習途徑,同時Linux世界有齊全的技術文檔且易于檢索;第二,Linux高度健壯的社區為解決問題提供了思路;第三,大多數操作可以使用鍵盤操作,一條命令可以解決多數問題
微內核與宏內核
操作系統內核實現有兩種實現途徑:微內核與宏內核。用戶進程需要操作系統協作完成一些工作,若所有工作通過系統調用交給內核態完成的做法稱為宏內核;相反地,將工作剝離交給系統調用而非內核完成,內核只需要進行諸如進程調度的簡單工作的思想便稱為微內核。簡而言之內核承擔大部分任務稱為宏內核,承擔部分工作即為微內核。
Liunx是宏內核操作系統的代表,在宏內核操作系統中完成具體任務,用戶進程通過各種調用門、系統調用例程指揮內核完成工作。
以Minix為代表的微內核操作系統進行系統調用過程較為復雜,在微內核中內核類似于一個指揮者。例如進程A需要讀取一個文件,需要通過內核告知進程B,進程B通過內核告知硬盤驅動程序C讀取,通過棧對數據傳遞。顯然在此過程中進程通信很重要。
本項目的操作系統將基于微內核而實現,宏內核的直截了當使他具備一定優勢,但從長期來看內核逐漸變大時,微內核的結構會更加清晰,實現邏輯雖然復雜但又顯得嚴謹,結構上十分優雅且精致,程序模塊化也更加容易,可移植性高。最重要的一點,該操作系統以后是需要在嵌入式系統中使用的,或者是需要在嵌入式系統中重構的,微內核的勝利不言而喻。
-
PC
+關注
關注
9文章
2102瀏覽量
154495 -
Linux
+關注
關注
87文章
11338瀏覽量
210104 -
WINDOWS
+關注
關注
4文章
3564瀏覽量
89101
發布評論請先 登錄
相關推薦
評論