我们不妨想一下进程在什么时候才能感知到内核的存在。在malloc分配内存的时候,最终会调用内核的sys_mmap系统调用来申请虚拟内存空间;在fork创建子进程的时候,最终会调用内核的sys_fork来复制父进程;在open打开文件的时候,最终会调用内核的sys_open来进行文件系统底层操作。诸如此类的过程刚好,我总结了一些嵌入式资料放在视频结尾都可以感知到内核的存在,那这些过程有什么共同点呢?是的,他们都提到了一个词——“系统调用”。这就是进程与内核交互的本质。内核就是一个二进制文件,就是一块代码加数据,平时驻留在内存里啥也不干,它也没法干,因为它又不是进程。等到有进程向做一些高特权的操作时,就调用一下系统调用,系统调用有个入口程序,从这里开始执行的就是内核代码了,这样的过程我们成为陷入内核。当要执行的高特权操作完成后,系统调用会立即返回,然后进程继续执行。我们可以看到,内核在进程需要时出现,又在操作完成后迅速离开,而内核出现所途径的传送门就叫做系统调用。
我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6