BIOS 密码如何发挥作用?

BIOS 密码如何发挥作用?

我已经创建了 BIOS 密码。我使用德沃夏克键盘布局。当我将键盘布局切换为 Qwerty 并重新启动,然后使用不同的布局输入密码时,没有任何变化。但是,当我登录操作系统时,使用不同的键盘布局很重要。这里发生了什么?

答案1

许多人感到困惑,因为他们将计算机视为一个单一的实体,而实际上计算机是多个系统一起工作,给人一种错觉,认为它是一个有凝聚力的对象。

多个子系统

BIOS 就是此类子系统之一。 BIOS 正如其名称所描述的那样。基本输入和输出系统。它的工作是为系统提供基本功能,以便它可以检测外围设备(例如:HDD、键盘、显示器等)。 BIOS 提供的另一个主要功能是引导从指定介质(CD、DVD、USB、HDD 等)加载操作系统。

提供对这些外设的访问的功能提供了一个 API,操作系统和软件可以根据需要使用这些 API,但操作系统和软件不必使用这些 API,而且很多时候也不需要使用这些 API,因为它们有多种用途。的原因。

主要原因是设备制造商最了解,并且通常会自己提供低级驱动程序,该驱动程序可以比通用 BIOS 更亲密的方式处理硬件。

你的问题正是这种情况。 BIOS 能够检测键盘并使用自己的软件/驱动程序对其进行处理,而操作系统则不能。

确实没有什么比这更重要的了。

MS-DOS API

如果您想要一个更具体的示例,那么您不必再看由 MS-DOS 普及的中断 21 设施。 MS-DOS 提供了自己的屏幕服务,与 BIOS 并存,因为 Microsoft 想要拥有更丰富的功能或完全不同的 API。

请参阅维基百科页面:操作系统接口

答案2

现代 BIOS 会采用任何检测到的 USB 键盘,并执行一些 SMM 技巧,使其在 BIOS 和任何使用 BIOS 进行键盘 I/O 的程序(例如 MS-DOS、Memtest86+ 和一些引导加载程序。

当按下并释放某个键时,这个旧接口会将扫描代码传送到 PC。扫描代码取决于按键的位置,并且不知道键盘上的 qwerty/dvorak 开关位于什么位置。它们不与任何 ASCII 或 Unicode 点对齐。

在此输入图像描述

维基百科关于扫描码的文章可以提供一些见解。

大多数(如果不是全部)BIOS 都应该理解这些扫描代码,无论是来自真正的 AT 或 PS/2 键盘还是 PS/2 模拟 USB 键盘。额外的按键、开关等会有额外的或非标准的扫描码,BIOS 会忽略它们。

当您登录操作系统时,驱动程序有机会获得控制权。我不确定这个接口究竟是如何工作的,也不知道涉及哪些驱动程序(也许开关是一个非标准扫描码,驱动程序拾取它并导致键盘映射发生变化或其他情况……如果这是一个 USB 键盘(很可能是),那么 qwerty/dvorak 开关可能是另一个 HID 输入设备或其他东西。)

相关内容