我对内核和用户空间的确切结构以及占用的内存部分感到困惑.我当前(可能是错误的)理解是这样的:
创建一个进程,并将此进程的虚拟内存分成用户空间和内核空间区域,其中用户空间区域包含进程和内核空间区域的数据,代码,堆栈,堆等.包含诸如进程的页表和内核代码之类的东西.我不确定内核代码是什么...驱动程序代码或类似的东西?
此外,系统调用表是否始终映射到进程内核空间中的同一区域?(说"进程的内核空间"是否正确?
如果我编写自己的驱动程序/模块并插入它,那么该驱动程序代码是否会自动复制到每个创建的新进程的内核空间中?如果不是......这究竟是如何工作的?
在此先感谢任何输入,有助于澄清我的问题的文献/链接也是可以的.
干杯,砖