作者watz0n (watz0n)
看板Soft_Job
標題Re: [請益] user/kernel level
時間Wed Oct 8 23:47:20 2014
※ 引述《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