对内核空间的认识清晰了许多。要理解用户空间与内核空间需要有如下的几个认识:
· 内核的认识:从2个不同的角度来理解,一个是静态的角度,如“芦中人”所比喻,内核可以看做是一个lib库,内核对外提供的API打包在内核的库中;一个角度是动态的,内核启动了许多内核线程经常来提供系统服务,在ps命令下可以很多这样的进程。
· 用户进程平时执行应用代码时,CPU访问的虚拟内存空间是在0-3GB空间内,此时用户进程是用户态。刚好,我总结了一些嵌入式资料放在视频结尾
· 用户进程执行系统调用时,通过软中断的方式,将会陷入到内核代码中,此时用户进程是内核态,CPU访问的是高位的1GB的虚拟地址空间。
· 普通的用户进程访问内核空间的方式:系统调用。
· 内核线程一定运行在内核态,它所能访问的虚拟地址空间就是那1GB的空间。
· 内核空间是所有进程所共享的,但是只有运行在内核态的进程才能访问。
我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6