操作系统如何调用BIOS函数?

时间:2018-11-25 16:17:58

标签: operating-system

因为我们知道操作系统可以在保护模式下运行
BIOS在实模式(16位)下工作。所以当从
调用中断时 是操作系统还是应用程序,CPU是否每次都来回切换模式?

1 个答案:

答案 0 :(得分:0)

一般而言;硬件能够一次完成很多事情(在生成3D图形时播放声音,在将数据发送到网络时将声音传输到多个磁盘上,同时在所有CPU忙于实际处理的同时等待用户输入的同时将数据传输到多个磁盘上);和BIOS功能不能一次允许发生多个事情(例如,将浪费100%的CPU时间来等待硬盘控制器传输数据,而CPU却什么也不做,而其他任何东西都无法使用任何其他BIOS服务任何东西)。

仅出于这个原因,BIOS服务无法使用,并且任何现代OS都不会使用(除非在启动过程中短暂地使用过)。

当然,这不是唯一的原因-没有IO优先顺序,不支持任何类型的热插拔,不支持电源管理,不支持系统管理(例如https://en.wikipedia.org/wiki/S.M.A.R.T。),不支持GPU。 ,不支持任何声卡(“ PC扬声器蜂鸣声除外”),不支持网络连接(不包括PXE),不支持IO APIC,等等。具有讽刺意味的是,在所有问题中,“ BIOS服务是为真正的设计的。模式”是最不重要的问题,因为这是操作系统可以解决的唯一问题。

相反,每个操作系统都有本机驱动程序,没有任何这些限制。

注:这部分是为什么现代操作系统支持UEFI相对容易(UE根本不存在BIOS服务)的原因-大多数情况下,它们取代了引导加载程序/引导代码,不需要改变很多。