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

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

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

移动后的内存布局如下

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


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

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

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

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

相关推荐
csdn_aspnet22 分钟前
Windows、Linux 系统 nodejs 和 npm 版本更新及错误修复
linux·windows·npm·node.js
潘潘潘潘潘潘潘潘潘潘潘潘38 分钟前
【MySQL】从零开始学习MySQL:基础与安装指南
linux·运维·服务器·数据库·学习·mysql
数字化顾问1 小时前
【Linux】【实战向】Linux 进程替换避坑指南:从理解 bash 阻塞等待,到亲手实现能执行 ls/cd 的 Shell
linux
努力努力再努力wz1 小时前
【c++进阶系列】:map和set的模拟实现(附模拟实现的源码)
java·linux·运维·开发语言·c++
Cloud Traveler2 小时前
8.FC平台模块梳理
java·linux·开发语言
哦你看看2 小时前
linux故障排查
linux·运维·服务器
半桔2 小时前
【Linux手册】共享内存:零拷贝实现共享的优势与实操指南
linux·运维·服务器
Evan_ZGYF丶2 小时前
【RK3576】【Android14】如何在Android14下单独编译kernel-6.1?
linux·驱动开发·android14·rk3576
superior tigre3 小时前
1.linux环境配置+ssh远程连接vscode调试(问题:无法联网,无法共享粘贴板,不满足运行vscode服务器的先决条件)
linux·服务器·vscode
杰锅就是爱情7 小时前
OpenObserve Ubuntu部署
linux·运维·ubuntu