快速CPU环模式保护问题

时间:2010-05-19 20:45:44

标签: windows hardware driver cpu

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

但是,如果我是对的,司机可以在振铃模式0下运行。我实际上对驱动程序不太了解,但这就是我要求的。我只是想知道,正在学习如何编写自己的驱动程序而不是按照我应该去的方式调用它们来做我写的内容?

我知道我可以编写全新的操作系统(至少在某些方面),但我真正想做的是从标准的Windows应用程序中获取一些硬件的低级功能。那么,司机要走的路吗?

2 个答案:

答案 0 :(得分:1)

简答:是的。

答案很长:管理对低级硬件功能的访问权限完全取决于操作系统内核的工作,如果您只想访问单个功能,则无需从头开始运行您自己的操作系统。大多数现代操作系统,如WIndows,Linux或BSD,允许您通过内核模块向内核添加代码。

编写内核模块(或设备驱动程序)时,编写将在OS内核中执行的代码,因此将在CPU环0中运行。强大的功能带来了很大的责任,在这种情况下意味着你真的应该知道你在做什么,因为没有预先配置的操作系统界面来阻止你做错事。因此,您应该研究硬件手册(例如,英特尔的x86软件开发人员手册,设备规格......)以及标准操作系统开发文献(您也可以在网上找到大量文档 - {{ 3}},OSDevOSDeverOSR)。

答案 1 :(得分:1)

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