gpt4 book ai didi

c++ - 如何在没有硬件抽象层的情况下直接访问 x64 硬件?

转载 作者:太空狗 更新时间:2023-10-29 12:12:50 26 4
gpt4 key购买 nike

我有一个奇怪的问题,但我对这个话题很感兴趣。

是否有可能直接访问当前基于 x64 的计算机的硬件,而无需使用某种 HAL(硬件抽象层)或其他操作系统(udev、upower 等)的附属物?我不是在谈论开发某个设备驱动程序,而是在谈论使用 C 或汇编程序或类似的东西进行简单的“Hello World”编程。

我知道这样一个事实,比如多 cpu 内核和多线程等使得这种编程对于大多数常见情况来说毫无意义。不过,我很想知道这是否可行,如果可行,您是怎么做到的?

我的重点是基于 Linux 的操作系统。据我所知,自 98/ME 以来,这在基于 Microsoft 的操作系统上是不可能的

非常感谢您提前做出的努力并致以最诚挚的问候,B.

最佳答案

不,您无法使用任何语言执行此操作。原因很简单——在任何现代架构中,用户程序都在所谓的保护模式下运行。这意味着(除其他外)您无法访问实际内存 - 相反,CPU 和操作系统一起将您的程序正在使用的内存地址转换为其他内容。

为了与硬件通信,您确实需要访问此硬件使用的内存区域 - 而这在保护模式下是完全不可能的。

关于c++ - 如何在没有硬件抽象层的情况下直接访问 x64 硬件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36064039/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com