【问题标题】:about hardware drivers in protected mode关于保护模式下的硬件驱动程序
【发布时间】:2011-07-25 12:19:33
【问题描述】:

最近,我正在尝试编写一个简单的操作系统。这是一个大项目。
当我编写代码时,我想知道现代操作系统如何在保护模式下接触硬件
在实模式下,我们只需调用 bios 中断即可完成这项工作。
但我想知道如何在保护模式下实现这一目标。(它是使用 in 和 out 指令吗??)
我跟踪了一些linux源代码,但还是找不到合适的代码。

我知道这对很多人来说是一个基本问题,请帮助我,tks。
并为我糟糕的英语感到抱歉。

【问题讨论】:

标签: operating-system x86 device-driver interrupt protected-mode


【解决方案1】:

在保护模式下,CPU 可以在内核模式或用户模式下运行。在内核模式下,您始终可以访问硬件。调用 BIOS 中断是一种旧方法,但现代操作系统通常有自己的硬件设备驱动程序,并且不会太频繁地调用 BIOS。如果您知道硬件数据表,则可以使用inout 直接访问硬件。此外,对于现代 PCI 和 PCI Express 设备,它们支持内存映射 IO(X86 CPU 也支持),这意味着您可以使用mov 访问硬件。

对于 x86,CPU 还允许用户级程序使用 in 和 out 指令访问硬件。您可以在 Intel CPU 手册中找到它。只需设置 DPL、CPL? (我忘记了正确的名字)。

我想你最好阅读一些关于设备驱动程序的书,例如 Linux Device Drivers, 3rd edition。 http://lwn.net/Kernel/LDD3/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 2011-02-12
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多