linux0.11 源码阅读 head.s setup.s bootsect.s加载位置

从github上下载linux0.11源码
linux0.11源码

将0x10000处的代码往下复制到0开始的地址处。

移动后的内存布局如下

setup中存在gdt和idt的相关数据。此时需要用gdtr和idtr寄存器指向对应的数据。


实模式下,访问内存方式。最多访问1M内存。

分页模式下,计算物理地址。

开启分页后,将页目录项,页表项都设置好后,开始执行main函数,此时的内存布局如下:

上面这张图,我们要牢记在心,操作系统说白了就是在内存中放置各种的数据结构,来实现"管理"的功能。

相关推荐
深圳市九鼎创展科技17 分钟前
MT8883 vs RK3588 开发板全面对比:选型与场景落地指南
大数据·linux·人工智能·嵌入式硬件·ubuntu
RisunJan1 小时前
Linux命令-ngrep(方便的数据包匹配和显示工具)
linux·运维·服务器
.千余1 小时前
【Linux】基本指令3
linux·服务器·开发语言·学习
热爱Liunx的丘丘人2 小时前
Ansible-doc及常用模块
linux·运维·服务器·ansible
SPC的存折2 小时前
D在 Alpine 容器中手动搭建 Discuz 全攻略(包含镜像一键部署脚本,可直接用)
linux·数据库·mysql·缓存
feng_you_ying_li4 小时前
linux之运行状态(2),内核链表与进程状态
linux
图图玩ai4 小时前
SSH 命令管理工具怎么选?从命令收藏到批量执行一次讲清
linux·nginx·docker·ai·程序员·ssh·可视化·gmssh·批量命令执行
似水এ᭄往昔5 小时前
【Linux】--基础IO
linux·服务器
StarryX5 小时前
Mac 用 UTM 装 Debian 实操教程(二)
linux
陆伟峰(云固件作者)6 小时前
Linux Mint 22.3:给初学者的第一份 Linux 说明书
linux·运维·服务器