小编mmk*_*mmk的帖子

为什么内核代码不能使用Red Zone

强烈建议在创建64位内核(对于x86_64平台)时,指示编译器不要使用用户空间ABI所执行的128字节红区.(对于GCC,编译器标志是-mno-red-zone).

如果启用了内核,则内核不会是中断安全的.

但那是为什么呢?

x86-64 abi red-zone

18
推荐指数
3
解决办法
2874
查看次数

任务切换为64位

在x86中,您可以使用TSS在正在运行的进程之间切换任务,但是,建议仅使用一个TSS(如您所愿)并执行软件任务切换,尤其是当您要将内核移植到其他硬件时没有TSS.

在x86-64(64位)中,没有TSS(例如它在x86中没有做任何事情),所以,如果没有它,有人会怎么做任务切换(以前,你会使用至少一个)?

x86-64 tss

9
推荐指数
2
解决办法
1120
查看次数

将x86驱动程序代码放在环1和2而不是0中是否有优势?

单片内核的驱动程序可以在环0,1或2中(微内核它们将在环3中 - 用户环).

将驱动程序代码放入内核0或"略少"特权环1和2中是否有任何优点/缺点?

环1和环2仍然可以访问超级用户页面,但是他们无法运行一些特殊的特权指令(如果有的话,它们会引发一般保护错误 - 就像环3一样)

x86 drivers

6
推荐指数
1
解决办法
197
查看次数

标签 统计

x86-64 ×2

abi ×1

drivers ×1

red-zone ×1

tss ×1

x86 ×1