关于保护模式下的硬件驱动程序

发布于 2024-10-27 16:57:22 字数 232 浏览 3 评论 0原文

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

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

Recently, I'm trying to write a simple OS. This is a big project.
when I'm writing my code, I'm wondering how modern OS contact hardware under protected mode
In real mode, we can just call the bios interrupt to accomplish this job.
But I'm wondering how to accomplish this goal in protected mode.(Is it using in and out instruction??)
I traced some of the linux source code, but still can't find the appropriate code.

I know it is a basic question to many people, plz help me, tks.
and sorry about my poor English.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

橘亓 2024-11-03 16:57:22

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

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

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

In protected mode, the CPU can run in either kernel mode or user mode. In kernel mode, you can always access the hardware. Calling BIOS interrupt is one old method, but a modern OS normally has its own device drivers for the hardware and does not call BIOS too often. If you know the hardware datasheet, you can use in, and out to access the hardware directly. Also, for modern PCI and PCI Express devices, they supported memory mapped IO (X86 CPU also supports this), and it means you can use mov to access the hardware.

For x86, the CPU also allows the user level program to access the hardware using in and out instructions. You can find it on Intel CPU manual. Just set DPL, CPL? (I forgot the correct name).

I guess you'd better read some book about device drivers, such as Linux Device Drivers, 3rd edition. http://lwn.net/Kernel/LDD3/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文