关于linux内核的问题,请教高手。

jhs1982419 2008-09-11 03:53:58
虚拟地址空间分为两个部分:用户空间和系统空间。在用户模式下只能访问用户空间而在核心模式下可以访问系统空间和用户空间。系统空间在每个进程的虚拟地址空间中都是固定的,而且由于系统中只有一个内核实例在运行,因此所有进程都映射到单一内核地址空间。内核中维护全局数据结构和每个进程的一些对象信息,后者包括
----------------------------------------------------------------------------------
的信息使得内核可以访问任何进程的地址空间。通过地址转换机制进程可以直接访问当前进程的地址空间(通过
------------------------------------
MMU),而通过一些特殊的方法也可以访问到其它进程的地址空间。


有下划线的地方不懂,还有用户栈和内核栈,假设一个线程不回进入内核态,他也有内核栈指针吗?
...全文
171 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
blackbillow 2008-09-12
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 realdragon2 的回复:]
如果, 一个进程只是用户级的进程,不会发生系统调用,也不会发生中断, 那这个进程还会有内核栈吗?

[/Quote]
1 内核不可能提前预知这个用户级进程的行为,不知道他是否会发生系统调用
2 中断也是不可预知的,而且如时钟中断每毫秒会发生一次
所以内核一定会为他分配内核栈
gogofly_lee 2008-09-11
  • 打赏
  • 举报
回复
进程都会有内核堆栈的,不管怎么样,进程都会通过各种方式进入内核的,如果是用户线程,可以不需要内核堆栈。

[Quote=引用楼主 jhs1982419 的帖子:]
虚拟地址空间分为两个部分:用户空间和系统空间。在用户模式下只能访问用户空间而在核心模式下可以访问系统空间和用户空间。系统空间在每个进程的虚拟地址空间中都是固定的,而且由于系统中只有一个内核实例在运行,因此所有进程都映射到单一内核地址空间。内核中维护全局数据结构和每个进程的一些对象信息,后者包括
----------------------------------------------------------------------------------
的信息使得内…
[/Quote]
实际上LZ的这段话已经说得很明白了,“由于系统中只有一个内核实例在运行,因此所有进程都映射到单一内核地址空间,内核中维护全局数据结构和每个进程的一些对象信息,后者包括的信息使得内核可以访问任何进程的地址空间。”
关键是”每个进程的信息“:在这些信息里包含了进程内存的映射信息,根据这些映射信息,在系统空间可以把相应的用户空间的地址转换为系统空间或者实际物理内存的地址,所以在系统空间可以访问进程地址空间。进程切换时的用户空间切换就是一个典型的情况。
realdragon2 2008-09-11
  • 打赏
  • 举报
回复
如果, 一个进程只是用户级的进程,不会发生系统调用,也不会发生中断, 那这个进程还会有内核栈吗?

[Quote=引用 3 楼 blackbillow 的回复:]
引用楼主 jhs1982419 的帖子:
还有用户栈和内核栈,假设一个线程不回进入内核态,他也有内核栈指针吗?

每个进程都有一个对应的内核栈(4K or 8K), 用于系统调用和中断时,当进程进入系统调用或被中断时,esp指到这个内核栈
[/Quote]
blackbillow 2008-09-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 jhs1982419 的帖子:]
还有用户栈和内核栈,假设一个线程不回进入内核态,他也有内核栈指针吗?
[/Quote]
每个进程都有一个对应的内核栈(4K or 8K), 用于系统调用和中断时,当进程进入系统调用或被中断时,esp指到这个内核栈
快乐田伯光 2008-09-11
  • 打赏
  • 举报
回复
晕,少打了一个字“我深入研究过内核,都是猜的。^_^”
快乐田伯光 2008-09-11
  • 打赏
  • 举报
回复
用户栈跟内核栈都是函数调用所产生的,只不过一个在用户空间,一个在内核空间。至于一个线程,看线程的实现,如果只是用户级线程,内核没有任何关于它的东西,如果是内核级线程,应该也没有特定的内核栈指针,内部只有一个管理线程的数据结构。

我深入研究过内核,都是猜的。^_^

23,110

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧