我正在阅读一本操作系统书籍,了解Linux的工作原理,然后我发现了这个内容。
引用如下:“[...]内核被创建为单个的、整体的二进制文件。主要原因是为了提高性能。因为所有内核代码和数据结构都保存在单个地址空间中,所以当进程调用操作系统函数或硬件中断被传递时,不需要进行上下文切换。”
对我来说,这听起来相当惊人,但它必须在运行到内核模式处理中断之前存储进程的上下文。但好吧,我暂且相信它。在几页之后,描述了一个进程的调度上下文:
引用如下:“该进程执行时发生的系统调用和中断都将使用此堆栈。”
“此堆栈”是内核存储进程寄存器等信息的地方。
这不是对第一条引用的直接矛盾吗?我是否误解了它?
引用如下:“[...]内核被创建为单个的、整体的二进制文件。主要原因是为了提高性能。因为所有内核代码和数据结构都保存在单个地址空间中,所以当进程调用操作系统函数或硬件中断被传递时,不需要进行上下文切换。”
对我来说,这听起来相当惊人,但它必须在运行到内核模式处理中断之前存储进程的上下文。但好吧,我暂且相信它。在几页之后,描述了一个进程的调度上下文:
引用如下:“该进程执行时发生的系统调用和中断都将使用此堆栈。”
“此堆栈”是内核存储进程寄存器等信息的地方。
这不是对第一条引用的直接矛盾吗?我是否误解了它?