ucore os 前初始化
BIOS 初始化完成说起
连接的时候指定了 -Ttext 0x7c00 也指定了 -e start
所以booasm.S 中的start 就呗钦定为程序入口了。
开始就是 屏蔽中断 初始化段寄存器 使能A20
加载段描述符表
使用 ljmp 使用 选择子是0x8 跳转到protcseg (应该也加载到cs 寄存器中了)
初始化段寄存器寄存器
将0x10(kernel data segment seletor) 显示的(movw ) 加载到所有的寄存器中去
初始化 %ebp=0(无意义的值)
%esp=start (? start 的地址是0x7c00) 也就是栈的地址是 0--0x7c00
调用 bootmain
bootmain 读取elf 格式的 kernel,然后调用kernel的 entry 前初始化完成
ucore os 前初始化的更多相关文章
- lab_1 清华大学ucore bootload启动ucore os(预备基础知识+实验过程)
实验1 :bootload启动ucore os 1.0实验内容: lab1中包含一个bootloader和一个OS.这个bootloader可以切换到X86保护模式,能够读磁盘并加载ELF执行文件格式 ...
- effective c++:尽量替换define,确保对象使用前初始化
#define ASPECT_RATIO 1.653 名为ASPECT_RATIO的值在预编译阶段被替换成1.653,如果在这个常量上出现编译错误,我们可能会困惑1.653的值是什么意思,于是将因为跟 ...
- 使用WCF扩展在方法调用前初始化环境
使用WCF扩展在方法调用前初始化环境 OperationInvoker 介绍 OperationInvoker 是 WCF 运行时模型中在调用最终用户代码前的最后一个扩展点,OperationInvo ...
- (五)bootloader 启动 ucore os
Lab1 : bootloader 启动 ucore os 一.内容提要 x86启动顺序 C函数调用 gcc内联汇编(inline assembly) x86-32下的中断处理 小结 二.x86启动顺 ...
- ucore os 初始化
从bootloader 交出控制权开始 bootloader 最后调用 ((void(*))(void) ()ELF->e_entry& 0xffffff)() ; lab2 虽然e_e ...
- 进入OS前的两步之PendSV(任务切换)
先了解下如何使用PendSV异常.(为何要使用PendSV而不是其他的异常,请参考<cortex-M3权威指南>) 1,如何设定PendSV优先级? NVIC_SYSPRI14 EQU 0 ...
- 真实世界:使用WCF扩展在方法调用前初始化环境
OperationInvoker 介绍 OperationInvoker 是 WCF 运行时模型中在调用最终用户代码前的最后一个扩展点,OperationInvoker 负责最终调用 Service ...
- effective c++(04)之对象使用前初始化
对于内置类型以外的初始化责任落在构造函数身上.如下: class PhoneNumber{}; class ABEntry{ public: ABEntry( const string& na ...
- 进入OS前的两步之System tick
OK,继续向操作系统迈进.由简入繁,先实现两个小功能.第一个是system tick,第二个是任务切换(PendSV).一个是操作系统的心跳,一个是操作系统的并发处理的具体实现. System tic ...
随机推荐
- LUOGUP3498 [POI2010]KOR-Beads (哈希)
传送门 解题思路 这是一道上周的考试题...当时考的时候看了一眼,"呀,这不是调和级数,nlogn么!!!" ,然后一写就写了个n^2的....结果边界还弄错40分滚蛋了..正解就 ...
- 19-10-28-A
竟然?竟然?竟然? 我已经用了半个键盘的编号了$\text{T_T}$ $\mathbb{AFO}$感稍强 h1是不是有点大? ZJ+TJ: T1 以为是什么数据结垢,但是是个链表. 所以可以使用 v ...
- VS2010-如何建立并运行多个含有main函数的文件
一.先说两个概念,解决方案与工程 在VS2010中,工程都是在解决方案管理之下的.一个解决方案可以管理多个工程,可以把解决方案理解为多个有关系或者没有关系的工程的集合. 每个应用程序都作为一个工程来处 ...
- System.Web.Mvc.HttpUnauthorizedResult.cs
ylbtech-System.Web.Mvc.HttpUnauthorizedResult.cs 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neut ...
- webservice技术--服务器端
1.webservice实现单点登录具体逻辑为 ①软通web端作为客户端,请求wi社区后台,进行登录请求 ②wi社区后台验证t,核实无误后,走登录逻辑,直接进入欢迎页 ③如果有错误,封装错误xml,返 ...
- 纯 CSS 实现实心三角形和空心三角形
一.实心三角形 1.代码 .div-angles{ width:; height:; border-style: solid; border-width:30px; border-color: tra ...
- socket工作原理深入分析
socket原理分析 本篇文章摘自https://www.cnblogs.com/zengzy/p/5107516.html,总结的很好,所以摘过来总结整理一下,如果朋友们还想更加深入的研究网络,推荐 ...
- java基础之Integer包装类
Integer类概述: Integer 类在对象中包装了一个基本类型 int 的值 该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他 ...
- IQueryable与IEnumerable使用区别
IQueryable会将查询语法转化为SQL查询语句,去数据库查询:IEnumerable则查询整张表,加载到内存中,再进行筛选. 所以,当查询的数据量较大的时候,则使用IQueryable.反之,数 ...
- Odoo加载机制指导流程
Odoo的启动通过openerp-server脚本完成,它是系统的入口. 然后加载配置文件openerp-server.conf 或者 openerp_serverrc: openerp-server ...