内核的认识:从2个不同的角度来理解,一个是静态的角度,如“芦中人”所比喻,内核可以看做是一个lib库,内核对外提供的API打包在内核的库中;一个角度是动态的,内核启动了许多内核线程经常来提供系统服务,在ps命令下可以很多这样的进程。 用户进程平时执行应用代码时,CPU访问的虚拟内存空间是在0-3GB空间内,此时用户进程是用户态。 用户进程执行系统调用时,通过软中断的方式,将会陷入到内核代码中,此时用户进程是内核态,CPU访问的是高位的1GB的虚拟地址空间。 普通的用户进程访问内核空间的方式:系统调用。 内核线程一定运行在内核态,它所能访问的虚拟地址空间就是那1GB的空间。 内核空间是所有进程所共享的,但是只有运行在内核态的进程才能访问。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。