我正在尝试学习linux内核,在TLDP中的linux内核2.0书。初始化是一个进程或内核线程我不知道确切的区别。它是在物理或虚拟内存空间中运行的吗?内核相关的东西通常使用物理内存空间,但如果它是一个过程,事情可能会改变。
任何人都可以分享他们的知识/经验。
答案 0 :(得分:1)
Init是一个用户进程,就像任何其他进程一样,因此它使用的是虚拟内存。关于init的唯一特别之处在于它是内核最初启动的两个进程之一。当内核启动init时,它进入用户模式。当init调用系统调用fork()时,它会进入内核模式,并且内核会执行大量操作来创建新进程,并且将在以后安排新进程。当fork()返回时,原始进程返回到用户模式。
Btw,即使内核也使用虚拟内存,内核内存地址的映射在进程间共享。