【问题标题】:Quick CPU ring mode protection question快速CPU环模式保护问题
【发布时间】:2010-05-19 20:45:44
【问题描述】:

我很好奇搞砸硬件。但是到目前为止,我的顶级“混乱”是 C 程序中的链接或内联汇编程序。如果我对 CPU 和环模式的理解是正确的,我不能直接从用户模式应用程序访问一些低级 CPU 功能,比如禁用中断或更改保护模式段,所以我必须使用系统调用来做我想做的一切。

但是,如果我是对的,驱动程序可以在环模式 0 下运行。我实际上对驱动程序了解不多,但这就是我所要求的。我只是想知道,是在学习如何编写自己的驱动程序,而不是按照我应该去的方式称呼它们,去做我写的事情吗?

我知道我可以编写全新的操作系统(至少在某种程度上),但我真正想做的是从标准 Windows 应用程序访问硬件的一些低级功能。那么,驱动程序是要走的路吗?

【问题讨论】:

    标签: windows hardware driver cpu


    【解决方案1】:

    简短回答:是的。

    长答案:管理对低级硬件功能的访问正是操作系统内核的工作,如果您只想访问单个功能,则无需从头开始启动您自己的操作系统。大多数现代操作系统,例如 WIndows、Linux 或 BSD,都允许您通过内核模块向内核添加代码。

    在编写内核模块(或设备驱动程序)时,您编写的代码将在操作系统内核中执行,因此将在 CPU 环 0 中运行。强大的力量伴随着巨大的责任,在这种情况下,这意味着您应该真正知道自己在做什么,因为不会有预先配置的操作系统界面来防止您做错事。因此,您应该研究您的硬件手册(例如,英特尔的 x86 软件开发人员手册、设备规格……)以及标准操作系统开发文献(您还可以在网上找到很多资料——@987654321 @、OSDeverOSRLinux Device Drivers)。

    【讨论】:

      【解决方案2】:

      如果您想玩硬件,请为 16 位实模式编写一些程序(甚至您自己转换到保护模式)。在那里你必须处理 ASM、BIOS 中断、段、视频内存和许多其他低级的东西。

      【讨论】:

        猜你喜欢
        • 2020-05-05
        • 2017-12-09
        • 1970-01-01
        • 2012-07-16
        • 2012-07-19
        • 2020-11-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多