[問題] kernel space直接操作 有沒有問題?

作者: Onnnnnnnnnnn (↙㊣煞氣a萬華何潤東㊣↗)   2013-10-05 23:39:29
大家晚安大家好
最近被問到一個kernel space 與 user space的問題
一般AP(應用程式)都是透過user space操作底層kernel space的driver module
他這麼一問:
怎麼不直接操作kernel space的driver?
那時我只是簡單的描述回答:
直接操作底層驅動可能會牽扯到physical memory的問題
若操作不慎而造成memory崩潰的話,可能機子會整個當掉,對系統有危害
所以要透過memory mapping的方式映射成virtual memory記憶體供user space使用
儘管記憶體崩潰也不會直接影響到physical memory,對系統有保護作用
不知道以這個問題來說,大家會怎麼回答呢??
感謝 thanks~
作者: RouterHsieh (醉臥美人膝,醒掌天下權)   0000-00-00 00:00:00
user space本來就沒辦法直接接觸到kernel space啊,所以我是看不太出來這問題的用意在哪..XD畢竟kernel/user space所處的記憶體空間就不一樣了,怎麼會有辦法讓app去直接接觸kernel module呢..@@
作者: shaopin (Brian)   0000-00-00 00:00:00
用mmap, map出device的register space, 就可以了
作者: lungswu (宅爸爸)   0000-00-00 00:00:00
可以參考一下X Window的driver,就如樓上所說。
作者: cobrasgo (人魚線變成鮪魚線,超帥)   0000-00-00 00:00:00
你可以反問他為什麼要切成kernel space和user space
作者: Gway (我愛的你 也愛我 好嗎?)   0000-00-00 00:00:00
dual mode 主要是保護作用,分層可以過濾權限、參數等資訊達成保護動作,另一方便提供簡單好用的抽象概念給上層AP使用當然user 要直接操作還是有辦法 就像你所講的誤用可能會產生很大的危害。 不知道講得對不對 這是我的看法 :D
作者: funnyface325 (吳大)   0000-00-00 00:00:00
要寫sys call開放介面給user space

Links booklink

Contact Us: admin [ a t ] ucptt.com