看板 Soft_Job 關於我們 聯絡資訊
※ 引述《zelkova (*〞︶〝*)》之銘言: : 各位前輩好 : 最近面試的時候 遇到一位面試官問了一個問題 : 類似這樣 "你這支程式是user level還是kernel level?" : 以前修OS大概還能區分這兩個名詞的差異 : 但是我發現我都沒去思考怎麼區分程式是屬於哪一個@@ : 請問有什麼關係可以判斷程式是屬於user/kernel level呢? 謝謝 推文主要是表示Kernel/User使用的記憶體區塊不同, 但是重新看了下Figure 3確實也沒有切得很清楚. 大略切割架構如下連結的Figure 2, http://www.ibm.com/developerworks/library/l-linux-kernel/ 然後User Level/Kernel Level應該是類似如下內文的說法: http://unix.stackexchange.com/questions/87625/ what-is-difference-between-user-space-and-kernel-space 但是我比較喜歡下面這篇的解釋方法. http://stackoverflow.com/questions/17208648/ linux-kernel-space-and-user-space 至於為什麼要切這兩個模式, 應該是要實現OS裡面設計的分時多工系統, 因為硬體只有一個, 但是軟體有千千萬萬個, 不獨立一個區域管理, 有時資源(CPU, Memory, IO等)就會衝突而癱瘓. 再詳細要去看有OS實作的書籍解釋如何分配的演算法了. Many Thanks, watz0n -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.55.207 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1412783245.A.FB8.html
zelkova: 先謝謝watz0n大大的回覆 10/09 00:19
zelkova: 我想我的問題主要來自於對firmware的誤解 因為我寫的lib 10/09 00:20
zelkova: 被燒成fw 但是又一直認為fw會跑在kernel mode 10/09 00:21
zelkova: 間接誤會我寫的library會跑在kernel mode 10/09 00:22
watz0n: 恩,原本Firmware指很簡單的IO如BIOS,因為記憶體有限又很貴 10/09 00:34
watz0n: 但是Flash瘋狂演進後就大到幾乎能塞下基礎OS了.. 10/09 00:35
watz0n: 回到原題, 通常.so會掛在user下, .ko會掛在kernel下. 10/09 00:42