【发布时间】:2021-03-03 16:13:53
【问题描述】:
我想知道我们可以将系统调用代码和驱动程序代码复制到我们的汇编程序中并使用这些代码来操作硬件吗?说清除硬盘?
我们可以从内核模式复制代码并使用它来做任何我们想做的事情吗?如:我们是否可以将任何在内核中运行的代码复制到用户模式,并与内核完全相同?
有什么东西可以阻止我们这样做吗?
【问题讨论】:
-
期待任何评论。有很多关于内核的问题。
-
由于内存保护,这是不可能的。 CPU 允许内核直接访问硬件,而您的程序则不允许。它必须要求内核为它做这件事。
-
是的 - 当你的用户进程线程/s得到执行时,程序集/二进制/机器/无论如何,已经太晚了 - 操作系统已经设置了内存管理硬件来阻止你的进程行为很糟糕。特权指令将不会被执行,并且尝试这样做只会对操作系统内存管理器内核软件产生硬件中断。
-
一般要注意的一点:组装并不是一件神奇的事情。它不会让你做任何你在 C 中做不到的事情。
标签: assembly linux-kernel operating-system