大家晚安大家好
最近被问到一个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~
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:00dual mode 主要是保护作用,分层可以过滤权限、参数等资讯达成保护动作,另一方便提供简单好用的抽象概念给上层AP使用当然user 要直接操作还是有办法 就像你所讲的误用可能会产生很大的危害。 不知道讲得对不对 这是我的看法 :D
要写sys call开放接口给user space