如何在没有硬件抽象层的情况下直接访问 x64 硬件
How to access x64 hardware directly without Hardware Abstraction Layers?
我有一个奇怪的问题,但我对这个话题很感兴趣。
是否有可能直接访问当前基于 x64 的计算机的硬件,而无需使用某种 HAL(硬件抽象层)或其他操作系统的吊坠(udev、upower 等)?我不是在谈论开发某个设备驱动程序,而是在谈论使用 C 或汇编程序或类似的东西进行简单的"Hello World"编程。
我知道这样一个事实,即诸如多个CPU内核和多线程之类的东西使得这种编程在最常见的情况下毫无意义。但是,我有兴趣知道这是否可能,如果是,您如何做到这一点?
我的重点是基于Linux的操作系统。据我所知,自 98/ME 以来,在基于 Microsoft 的操作系统上是不可能的
非常感谢您提前付出的努力和最诚挚的问候,二.
不,您将无法用任何语言执行此操作。原因很简单 - 在任何现代架构中,用户程序都以所谓的保护模式运行。这意味着(除其他外)您无法访问真实内存 - 相反,CPU 与操作系统一起将程序正在使用的内存地址转换为其他内容。
为了与硬件通信,您确实需要访问该硬件使用的内存区域 - 这在保护模式下是完全不可能的。
相关文章:
- 在没有太多条件句的情况下,我如何避免被零除
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 在未初始化映射的情况下,将值插入到映射的映射中
- 是默认情况下分配给char数组常量的值
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 如何在不产生任何垃圾的情况下获得C中的像素
- 在已经使用Git的情况下减少编译时间
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 如何在没有信号的情况下从C++执行QML插槽
- 如何在不知道向量大小的情况下输入向量内部的向量?
- 为什么在某些情况下不写入此文件?
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 为什么需要复制构造函数,在哪些情况下它们非常有用
- 在C++中如何在没有pow的情况下进行基础计算
- 任何地方都可以测试arduino在没有硬件的情况下能做什么
- 如何在没有硬件抽象层的情况下直接访问 x64 硬件
- 在没有兼容硬件的情况下运行OpenCL
- 在没有硬件的情况下测试此功能的简单/创造性方法