当前位置: 技术问答>linux和unix
内核空间能否调用用户空间程序?
来源: 互联网 发布时间:2015-08-14
本文导语: 在内核空间,能否调用用户空间的程序?好像用户空间可以调用内核程序,反过来怎么办啊?大家能不能给个例子或者参考链接。3ks。 | 可以,signal()就是一个例子。其实每个用户进程都是内...
在内核空间,能否调用用户空间的程序?好像用户空间可以调用内核程序,反过来怎么办啊?大家能不能给个例子或者参考链接。3ks。
|
可以,signal()就是一个例子。其实每个用户进程都是内核调用的。
|
中断
|
内核本身是一个自包含(Self-contained)的系统,所有内核空间的调用都利用内核级的代码来实现,
对用户空间提供系统调用形式的接口。这个结构非常的清晰,就像TCP/IP的协议栈一样。所以在内核空间最好不要调用用户空间的程序,否则会出现很大的安全漏洞。而且用户空间程序异常会直接引起内核调用出错而导致内核崩溃。比如,中断可以实现内核调用用户空间程序,你可以写一个工作在用户空间的驱动程序,产生中断的时候内核会跳转到工作在用户空间的驱动程序。如果此时驱动程序出错,就会导致内核崩溃。
对用户空间提供系统调用形式的接口。这个结构非常的清晰,就像TCP/IP的协议栈一样。所以在内核空间最好不要调用用户空间的程序,否则会出现很大的安全漏洞。而且用户空间程序异常会直接引起内核调用出错而导致内核崩溃。比如,中断可以实现内核调用用户空间程序,你可以写一个工作在用户空间的驱动程序,产生中断的时候内核会跳转到工作在用户空间的驱动程序。如果此时驱动程序出错,就会导致内核崩溃。