小编fan*_*nte的帖子

在启动时操作系统如何确定所有硬件?

我有这些相关问题:

  1. 有谁知道操作系统如何了解主板上连接的所有硬件?(我想这被称为“硬件枚举”)。

  2. 它如何确定特定 IO 地址上驻留的硬件类型(即:串行或并行或任何控制器)?

  3. 如何编写一个系统模块来完成这项工作?(假设尚未加载操作系统,仅加载 BIOS)。

我知道 BIOS 只是一个验证和一个用户友好的界面,用于在启动时配置硬件,之后对于大多数现代操作系统(win、Linux 等)没有真正的用途。此外,我知道对于 BIOS,找到所有硬件应该不难,因为它是由主板制造商专门调整的(谁知道有关它的一切!)。但对于 BIOS 之上的操作系统或应用程序来说,情况就完全不同了。正确的?

hardware boot operating-system enumeration bios

1
推荐指数
1
解决办法
1791
查看次数

在Rings之间跳转时的处理器行为

当某些内核代码(Ring 0)对用户代码(Ring 3)例程进行"调用"时,我找不到任何关于标准CPU(即:x86)的真正含义的具体信息.

1)执行该例程时,CPU模式状态是否变为用户模式?

2)在用户级例程执行最后的'ret'指令后,由于尝试返回内核空间代码而引发异常?

x86 cpu-architecture osdev kernel-mode

1
推荐指数
1
解决办法
69
查看次数