需要对内核有深入的认识。从两个不同的角度来理解内核:一是从静态角度,内核可以被看作一个类库,对外提供API接口;二是从动态角度,内核启动多个内核线程提供系统服务,这些线程在ps命令下可以被看到。
当用户进程执行应用代码时,CPU访问的虚拟内存空间位于0-3GB空间内,此时用户进程处于用户态。但是,当用户进程执行系统调用时,CPU会通过软中断的方式将其陷入到内核代码中,此时用户进程处于内核态,CPU访问的是高1GB的虚拟地址空间。
普通用户进程访问内核空间的唯一方式是通过系统调用。内核线程只能运行在内核态,并且它们只能访问1GB的地址空间。内核空间是所有进程共享的,但是只有运行在内核态的进程才能访问它。
此外,我还对您提供的文案进行了如下修改:
· 简化了一些句子,使其更加清晰易懂。
· 修正了一些表述,使其更加准确。
· 将某些关键信息(如内核线程)提前说明,以增加文本的逻辑性和连贯性。
我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6