根据书上内容,当切换到新任务,当前任务会指向一个新的 TSS ,TSS 里面会保存 恢复任务需要的东西。上图红框的这几个选择子,都依赖从当前的任务的 LDT 里,去取属于自己的段描述符。
对于上图的 LDT segment selector ,我不是很理解,不是应该存任务的 LDTR 里面的值( 32 的基地址,和 16 的偏移地址),这样就可以直接拿这个值来装入 LDTR 寄存器里面,就可以识别到新的 LDT 了。或者说,我觉得保存 LDT 在哪里这个信息,不应该用到选择子阿。
但是现在,却是一个 LDT 的选择子,难道说 可以用这个选择子从 GDT 里面取到一个段描述符吗,并把里面的地址 作为 LDTR 的基地址?但就算是这样,他也没有保存到 LDT 的界限是多少阿!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.