Documentation 是否有一个很好的描述;系统调用“;操作系统中使用的机制?

Documentation 是否有一个很好的描述;系统调用“;操作系统中使用的机制?,documentation,operating-system,kernel,Documentation,Operating System,Kernel,我正在寻找操作系统用来从用户空间过渡到内核以调用诸如“打开”、“读取”、“写入”等函数的系统调用机制的良好入门或技术描述 除了入口还有别的吗? 网站、PDF、书籍、源代码都是受欢迎的:)对于源代码,有很多开源内核可以深入研究 至于书籍,关于Linux内核的内容非常丰富。至于源代码,有很多开源内核可以深入研究 至于书籍,关于Linux内核的内容非常丰富。您可能想看看minix内核。它是开源的,设计简单,在很多单级操作系统课程中使用。深入了解/usr/src/kernel/proc.c,尤其是sys

我正在寻找操作系统用来从用户空间过渡到内核以调用诸如“打开”、“读取”、“写入”等函数的系统调用机制的良好入门或技术描述

除了入口还有别的吗?
网站、PDF、书籍、源代码都是受欢迎的:)

对于源代码,有很多开源内核可以深入研究


至于书籍,关于Linux内核的内容非常丰富。

至于源代码,有很多开源内核可以深入研究


至于书籍,关于Linux内核的内容非常丰富。

您可能想看看minix内核。它是开源的,设计简单,在很多单级操作系统课程中使用。深入了解/usr/src/kernel/proc.c,尤其是sys\u调用函数和相关功能。请记住,minix是一个微内核,因此有些东西可能与您所习惯的有些微妙的不同。

您可能想看看minix内核。它是开源的,设计简单,在很多单级操作系统课程中使用。深入了解/usr/src/kernel/proc.c,尤其是sys\u调用函数和相关功能。请记住,minix是一个微内核,因此有些东西可能与您所习惯的有些微妙的不同。

如果您想购买一本对*nix编程非常有用的书。我推荐Stevens和Rago的“UNIX环境中的高级编程”。
它有深入的解释和代码示例。

如果您想购买一本对*nix编程非常有用的书。我推荐Stevens和Rago的“UNIX环境中的高级编程”。
它有深入的解释和代码示例。

确切的方法取决于处理器体系结构以及它为转换到内核模式定义的操作。一种方法,以及x86上的传统方法,是使用软件中断。事实证明,在一般情况下,这并不是很快,所以后来,Intel添加了
SYSCALL
,AMD添加了
SYSENTER
。Windows XP和更高版本在引导时为平台选择适当的系统调用技术

您可以选择为特定功能使用特定的软件中断号,但通常处理器没有足够的中断来覆盖所有系统功能,因此有必要使其中一个寄存器包含所需的功能号。如果您正在这样做,那么只使用一个系统调用函数并不困难


WindowsCE在版本6.0之前使用了并行进程虚拟地址模型,实际上允许进程直接相互调用。设置页面保护时,会发生访问冲突故障:内核获得控制权,修复进程地址空间(将被调用的进程移动到插槽0),修复基于插槽0的参数以指向调用进程,并返回用户模式。因为返回地址在另一个进程中,所以当函数调用返回时,会发生相反的进程。不幸的是,此模型只允许每个进程使用非常小的虚拟地址空间(32MB)和少量的进程(32),因此Windows CE 6.0将恢复为更传统的系统调用模型。

确切的方法取决于处理器体系结构以及它为转移到内核模式定义的操作。一种方法,以及x86上的传统方法,是使用软件中断。事实证明,在一般情况下,这并不是很快,所以后来,Intel添加了
SYSCALL
,AMD添加了
SYSENTER
。Windows XP和更高版本在引导时为平台选择适当的系统调用技术

您可以选择为特定功能使用特定的软件中断号,但通常处理器没有足够的中断来覆盖所有系统功能,因此有必要使其中一个寄存器包含所需的功能号。如果您正在这样做,那么只使用一个系统调用函数并不困难


WindowsCE在版本6.0之前使用了并行进程虚拟地址模型,实际上允许进程直接相互调用。设置页面保护时,会发生访问冲突故障:内核获得控制权,修复进程地址空间(将被调用的进程移动到插槽0),修复基于插槽0的参数以指向调用进程,并返回用户模式。因为返回地址在另一个进程中,所以当函数调用返回时,会发生相反的进程。不幸的是,此模型只允许每个进程使用非常小的虚拟地址空间(32MB)和少量的进程(32),因此Windows CE 6.0恢复为更传统的系统调用模型。

有关Linux中系统调用的详细说明,请参阅中的示例设备驱动程序。

有关Linux中系统调用的详细说明,查看中的示例设备驱动程序。

它依赖于体系结构,需要了解计算机体系结构。Tanenbaum的“结构化计算机组织”很好地总结了系统调用的基础知识。更多信息,请阅读任何有关操作系统设计的教科书。

它依赖于体系结构,需要了解计算机体系结构。Tanenbaum的“结构化计算机组织”很好地总结了系统调用的基础知识。更多信息,请阅读任何有关操作系统设计的教科书