Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 是通过BIOS在x86 CPU上引发软件中断的唯一方法吗?_Windows_Interrupt Handling - Fatal编程技术网

Windows 是通过BIOS在x86 CPU上引发软件中断的唯一方法吗?

Windows 是通过BIOS在x86 CPU上引发软件中断的唯一方法吗?,windows,interrupt-handling,Windows,Interrupt Handling,实际上,我的印象是,这有点过时,现代操作系统(Windows、Linux)直接调用CPU 编辑: 我在维基百科的文章上读到了 例如,使用BIOS中断0x10[…]将字符打印到屏幕上 不,现代应用程序不使用也不能使用BIOS中断(因为它们必须从16位模式调用) 软件中断用于系统调用,系统调用允许应用程序将控制权传递给操作系统,以执行应用程序不允许执行的操作(如文件访问)(如写入视频内存或访问硬件)。否。它们仍然使用int调用。但这与“bios”无关。除了初始启动,现代操作系统不使用bios。bio

实际上,我的印象是,这有点过时,现代操作系统(Windows、Linux)直接调用CPU

编辑:
我在维基百科的文章上读到了

例如,使用BIOS中断0x10[…]将字符打印到屏幕上


不,现代应用程序不使用也不能使用BIOS中断(因为它们必须从16位模式调用)


软件中断用于系统调用,系统调用允许应用程序将控制权传递给操作系统,以执行应用程序不允许执行的操作(如文件访问)(如写入视频内存或访问硬件)。

否。它们仍然使用
int
调用。但这与“bios”无关。除了初始启动,现代操作系统不使用bios。bios是一个realmode 16位恐龙,现在完全受保护模式UFI接管,它终于走上了其他恐龙的道路。在任何情况下,无论操作系统如何,都不应该说“通过bios引发软件中断”。在DOS和其他基于BIOS的操作系统中,情况正好相反:通过软件中断调用BIOS。如果这里有一个有意义的问题,它太隐蔽了,我无法推断;也许你可以澄清一下?编辑以帮助澄清我的意思。那篇文章和我说的一样:软件中断是你调用BIOS的方式。您引用的句子后面的示例代码引发软件中断0x10,以调用BIOS“将字符打印到屏幕”功能。@HarryJohnston这不意味着,如果您想使用中断将字符打印到屏幕上,您必须使用BIOS,因此中断是通过BIOS引发的。