我现在正试图掌握操作系统的概念(在类似Unix的机器上)。
内核是PID 0的进程。当然,内核并不是真正的“另一个进程”,因为进程是内核的一个概念,但它不像内核生成对其他组件的控制(.?)。
内核所能做的一切,都可以在内核的源代码中查找(例如,Linux内核在Github上供大家查看)。
因此,操作系统以内核作为活动的“进程”开始。然后,它向其他进程(例如PID 1的进程)生成一个时间片段,但同时确保它将控制权还给内核。
因此,CPU的控制总是:内核->、进程->内核->、进程-> (.)
从不:一些过程,->,一些过程
系统调用是用户进程的API,用于执行内核能够做的一些事情。任何程序的所有“高级功能”(访问文件、连接到web)都可以追溯到某些系统调用。
我有什么严重的误会吗?
发布于 2016-04-07 04:00:07
不同类型的UNIX有不同的体系结构。在Linux和传统的单块UNIX系统中,内核不是一个进程。它是一个代码和数据块,映射到每个进程的内存空间(通常位于具有高位集的地址),但具有不同的I/O特权级别。当进程进行系统调用时,这将触发一个中断,该中断将CPU切换到一个更高的权限级别,并使内核代码和数据可访问,直到中断返回。像init (PID 1)和getty (由init启动)这样的进程不是内核,它们只是由系统自动启动的普通用户模式进程。
例如,其他UNIX系统( Mach )使用微核体系结构,并且有多个子系统作为单独的进程运行。
https://softwareengineering.stackexchange.com/questions/314979
复制相似问题