如果我在 ubuntu10.04 linux 内核中安装一个运行的模块
while(1);
部分地init_module
,整个系统停止。
while(1);
但是,如果我在部分运行的 Windows 7 中加载一个 sys 文件DriverEntry
,系统会变慢但仍然可以工作。
有人可以解释一下为什么两个系统不同以及内核内部发生了什么吗?...
我认为在第一种情况下(无限循环init_module
),系统没有理由停止。因为即使我while(1);
进入init_module
,它也在insmod
用户应用程序的上下文中运行。因此必须通过硬件中断信号来调度流程无限循环。
这只是我的看法,如果我错了,我想知道细节......