那我可不可以理解成,内核空间只是存放操作硬件的代码,如果有进程需要使用操作硬件的代码,就将代码移至用户空间的进程中执行?
5 个解决方案
#1
“移至用户空间的进程中执行”
这个“移至”肯定不对,驱动代码都是在内核空间执行的。
而且,代码也说不上“存放”在内核空间还是用户空间。
个人理解:
驱动执行肯定是代表着某个用户空间的进程。因为驱动代码只有在某个用户空间的进程调用他的时候才会执行,他不会自己独立开始执行的。
这个“移至”肯定不对,驱动代码都是在内核空间执行的。
而且,代码也说不上“存放”在内核空间还是用户空间。
个人理解:
驱动执行肯定是代表着某个用户空间的进程。因为驱动代码只有在某个用户空间的进程调用他的时候才会执行,他不会自己独立开始执行的。
#2
“驱动执行肯定是代表着某个用户空间的进程”这里代表用户空间具体是怎么代表的,麻烦能解释下吗
#3
细节我也不懂。
驱动难免要执行一些与用户空间交互的函数, 比如说copy_to_user吧, 他把数据从内核空间复制到用户空间, 肯定能准确地复制到调用这个驱动的那个用户空间进程, 而不会写到别的进程去
驱动难免要执行一些与用户空间交互的函数, 比如说copy_to_user吧, 他把数据从内核空间复制到用户空间, 肯定能准确地复制到调用这个驱动的那个用户空间进程, 而不会写到别的进程去
#4
说复制不对,内核空间和用户空间都是逻辑空间,不是物理隔离的,你的内存条上并没有标明系统内存条或用户内存条不是么,做个内核—用户状态转换,改下映射关系就行了
#5
内核应该不会把什么东西放到用户空间去做吧,而是应用空间是通过一些内核函数来完成相关的执行任务。
还有我觉得说内核只负责操作硬件的代码是不太对的,这样好像把内核平面话了,说成只是一个和硬件相连的一个面了,我觉得它应该是立体的。
还有我觉得说内核只负责操作硬件的代码是不太对的,这样好像把内核平面话了,说成只是一个和硬件相连的一个面了,我觉得它应该是立体的。
#1
“移至用户空间的进程中执行”
这个“移至”肯定不对,驱动代码都是在内核空间执行的。
而且,代码也说不上“存放”在内核空间还是用户空间。
个人理解:
驱动执行肯定是代表着某个用户空间的进程。因为驱动代码只有在某个用户空间的进程调用他的时候才会执行,他不会自己独立开始执行的。
这个“移至”肯定不对,驱动代码都是在内核空间执行的。
而且,代码也说不上“存放”在内核空间还是用户空间。
个人理解:
驱动执行肯定是代表着某个用户空间的进程。因为驱动代码只有在某个用户空间的进程调用他的时候才会执行,他不会自己独立开始执行的。
#2
“驱动执行肯定是代表着某个用户空间的进程”这里代表用户空间具体是怎么代表的,麻烦能解释下吗
#3
细节我也不懂。
驱动难免要执行一些与用户空间交互的函数, 比如说copy_to_user吧, 他把数据从内核空间复制到用户空间, 肯定能准确地复制到调用这个驱动的那个用户空间进程, 而不会写到别的进程去
驱动难免要执行一些与用户空间交互的函数, 比如说copy_to_user吧, 他把数据从内核空间复制到用户空间, 肯定能准确地复制到调用这个驱动的那个用户空间进程, 而不会写到别的进程去
#4
说复制不对,内核空间和用户空间都是逻辑空间,不是物理隔离的,你的内存条上并没有标明系统内存条或用户内存条不是么,做个内核—用户状态转换,改下映射关系就行了
#5
内核应该不会把什么东西放到用户空间去做吧,而是应用空间是通过一些内核函数来完成相关的执行任务。
还有我觉得说内核只负责操作硬件的代码是不太对的,这样好像把内核平面话了,说成只是一个和硬件相连的一个面了,我觉得它应该是立体的。
还有我觉得说内核只负责操作硬件的代码是不太对的,这样好像把内核平面话了,说成只是一个和硬件相连的一个面了,我觉得它应该是立体的。