[问题] 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