⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i386

📁 linux内核学习笔记 希望想看的人可以很快下载到
💻
字号:
any problems, send mails to sindybear@163.com


相关文件


最有用的几个控制寄存器。

TR寄存器,用来指向TSS段。intel的设计本意是所有的任务切换都是用任务门,也就是在IDT表中有相应的表项
然后,每一个进程有一个TSS向对应,当一个进程切换到另一个进程的时候,就更换响应的TSS,由于TSS包含
SS0--SS2,ESP0--ESP2,这些都是存储相应模式下的堆栈指针的(但是LINUX只使用了0和3级)。所以只有
SS0-ESP0有用。但是LINUX并不这样使用它,而是只有一个TSS,而TSS中的所有东西都没有用,只有SS0和ESP0
有用,当进程进行切换的时候,就将新进程的内核堆栈指针付给她。
它的使用参见进程切换.txt


SS:ESP	用来指向进程的堆栈。详细的使用解释参看进程切换.txt


IDTR	用来保存中断向量。硬件中断、系统调用、异常,都使用这个表,一共有256个表项。每一个
表项称作“门”,如,中断门,陷阱门(系统调用),调用门(系统调用)???
所有的INTxxx都是对她进行操作,比如系统调用,我们都使用INT80,其实也就是在IDT表中找到80项,
然后调用了一个通用的函数sys_call,按照参数选定所要执行的系统调用。
所以,归根结底所有的硬件中断、系统调用、异常都是用这个表来构建的。



GDTR	用来保存段信息。一共就有四个段,__USER_DS,__USER_CS,__KERNEL_CS,__KERNEL_DS

CR3	用来保存内存页目录表的地址。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -