linux0.11 head.s

本文介绍了一个简单的操作系统启动过程中的内存布局与关键设置步骤,包括IDT和GDT表的位置安排、A20地址线检查、浮点运算协处理器检测、主函数调用方式以及页表设置等内容。

head.s

功能概述:

  • 1) 将256个idt表设置到0x5000之后地址处
  • 2) 将256个gdt表设置到0x5000之后地址处
  • 3) 检查A20地址线是否开启
  • 4) 检查是否有浮点运算协处理器,没有则使用软件模拟
  • 5) 将main函数地址压入堆栈,ret后跳转到main函数执行
  • 6) 设置页目录和页表,随后在CR3中填写页目录地址,CR0中使能页寻址

head.s之后的内存布局:

main.c
gdt (2kb)
idt (2kb)
head.s中ISR等部分代码
软盘缓冲区 (1kb)
pg3 (4kb)
pg2 (4kb)
pg1 (4kb)
pg0 (4kb)
页目录表 (4kb)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值