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

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

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

移动后的内存布局如下

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


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

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

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

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

相关推荐
运维佬3 分钟前
CentOS 9 配置网卡
linux·centos
轩轩曲觞阁20 分钟前
Linux网络——网络初识
linux·网络
2401_8401922722 分钟前
python基础大杂烩
linux·开发语言·python
weixin_438197381 小时前
K8S创建云主机配置docker仓库
linux·云原生·容器·eureka·kubernetes
舞动CPU7 小时前
linux c/c++最高效的计时方法
linux·运维·服务器
秦jh_9 小时前
【Linux】多线程(概念,控制)
linux·运维·前端
keep__go10 小时前
Linux 批量配置互信
linux·运维·服务器·数据库·shell
矛取矛求10 小时前
Linux中给普通账户一次性提权
linux·运维·服务器
Fanstay98510 小时前
在Linux中使用Nginx和Docker进行项目部署
linux·nginx·docker
大熊程序猿10 小时前
ubuntu 安装kafka-eagle
linux·ubuntu·kafka