chyyuu / ucore_os_plus

232 stars 132 forks source link

Fix amd64 i386 idt_init bug #33

Closed LuChengTHU closed 6 years ago

LuChengTHU commented 6 years ago

在i386的实现中,若中段描述符全部设置为trap,则默认在中断处理时可以响应中断,这样会有问题。比如当中断响应时现场还没保存完,或者中断快退出时现场还没恢复完就时钟中断了,那么当再回到这个进程的时候就不对了。 在amd64的实现中,把syscall的中断描述符设置为trap可以提升操作系统的效率。

猜测这两个bug都是历史遗留很久的bug,第一个bug可能会导致ucore+的i386运行时出现意想不到的错误。