有了上面的知识,就来分析ReactOS里引导任务是怎么样设置全局描述符表。其工作过程如下图所示:

由于CPU初始化运行后,就当作为一个任务在运行。这里主要设置这个任务的运行保存环境,以便CPU可以交给其它任务运行,否则切换到其它任务运行后,就再也回不到这个内核任务运行了。这里先取得引导任务KiBootTss,然后设置全局描述符里的内核任务描述符,也就是KGDT_TSS这个,原先缺省都是0值,肯定是不能适合任务运行的。TssEntry就是指向KGDT_TSS描述符的指针,最后设置相关属性和这个任务所在内存的地址(KiBootTss地址),以便CPU后面可以找到TSS所在位置,以及相关的特权比较(DPL)。后面还需要设置TSS的字段,才可以正常工作的。

通过这段代码的初始化,就设置引导任务在全局描述符里的数据了。

转载于:https://www.cnblogs.com/ajuanabc/archive/2008/12/21/2463894.html

reactos操作系统实现(12)相关推荐

  1. Linux操作系统:12则经典运用技巧

    Linux操作系统:12则经典应用技巧 1.处理特殊的文件名 假设Linux系统中有一个文件名叫"-ee",如果我们想对它进行操作,例如要删除它,按照一般的删除方法在命令行中输入r ...

  2. 中国移动:部分 5G 手机可能有网连不上;iOS 13 出现严重漏洞;ReactOS 0.4.12发布 | 极客头条​...

    快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「CSDN 极客头条」,是从 CSDN 网站延伸至官方微信公众号的特别栏目,专注于一天业界事报道.风里雨里,我们将每天为朋友们,播报最新鲜有 ...

  3. reactos操作系统实现 2

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 对于开发 ...

  4. reactos操作系统实现(2)

    对于开发一个操作系统是一个漫长的过程,并不像一个Hello world程序那么快捷,那么明了.因此对开发OS的基本知识,基本技能也需要比较高深一些,特别对一些名词和概念,更需要深入地了解.由于操作系统 ...

  5. 深入理解操作系统(12)第四章:处理器体系结构(4)Y86-64的流水线实现(包括:PIPE-处理器/预测下一个PC/分支预测/流水线冒险/暂停,转发避免冒险/PPE硬件结构及实现/CPI)

    深入理解操作系统(12)第四章:处理器体系结构(4)Y86-64的流水线实现(包括:PIPE-处理器/预测下一个PC/分支预测/流水线冒险/暂停,转发避免冒险/PPE硬件结构及实现/CPI) 1. Y ...

  6. reactos操作系统实现 1

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! reac ...

  7. reactos操作系统实现(6)

    硬盘引导的流程与相应源码文件名称: 引导序号 引导过程 引导执行代码位数 目标文件名称 1. 主引导代码(Master Boot Record (MBR) code),主要寻找活动分区,然后读入引导扇 ...

  8. reactos操作系统实现(47)

    当光盘变成记录数据以后,就开始使用光盘来分发操作系统了.毕竟光盘有着储存数据量大,成本便宜的优势.下面就来分析Reactos是怎么样通过光盘的格式来引导操作系统的. 现今的计算机BIOS,会在开机时根 ...

  9. reactos操作系统实现 3

    有人说,reactos不是实时操作系统,不能做嵌入式系统,难道真的不能做嵌入式系统吗?其实不是这样的,嵌入式系统本来就包括有两类系统,一种是要求实时性强,一种是要求实时性弱的.这两种都是嵌入式系统.因 ...

最新文章

  1. 推荐个所见即所得的编辑器
  2. 利用FreeNas创建iSCSI块级存储
  3. vue 全局排序_搞定VUE [ 一 ]
  4. VS2008下直接安装使用Boost库1.46.1版本号
  5. PostgreSQL非交互式键入密码
  6. [SCOI2010]生成字符串
  7. ABAP--如何创建动态结构的报表
  8. mynt product model: D1000-IR-120标定相机和IMU外参
  9. Oracle入门(十四.8)之迭代控制:基本循环Loop
  10. android 书架菜单,Android入门3--做一个书架
  11. VS2010报错 error:LINK1123:转换到COF期间失败,文件无限或损坏
  12. c++面向对象高级编程 学习十五 组合继承关系下的构造和析构
  13. Java类类getClassLoader()方法及示例
  14. Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解...
  15. Vrep脚本的执行顺序
  16. mysql 声明时间变量_MySQL如何声明一个datetime变量?
  17. Spring注解驱动开发-----容器day01
  18. sql2008服务器运行哪个,SQL SERVER 2008R2 暂用服务器内存直到服务器死机。
  19. 解锁三星bl锁有几种方法_三星Note5解锁教程_三星Note5 CROM解BL锁的方法
  20. 安装win10 找不到固态硬盘

热门文章

  1. matlab shading 的用法说明
  2. oracle重做日志详解,oracle数据文件、控制文件、重做日志文件详解
  3. python“~”符号的用法
  4. 分数计算器java报告_20182307 2019-2020-1 《数据结构与面向对象程序设计》实验四报告...
  5. KWS_关键词命名+识别率和误识别率
  6. seata的部署与微服务集成(包含多集群异地容灾配置)
  7. hdu 5755 Gambler Bo【gauss】
  8. 技术分享 | MySQL 突如其来的主从复制延迟
  9. 过程试图写入的管道不存在
  10. php获取index.php,index.php · 阿彪/PHP去抖音水印解析-非接口(获取抖音无水印URL地址) - Gitee.com...