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

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

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

移动后的内存布局如下

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


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

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

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

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

相关推荐
ONE_SIX_MIX3 分钟前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞053 分钟前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*4 分钟前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
June`4 分钟前
muduo项目排查错误+测试
linux·c++·github·muduo网络库
消失的旧时光-194320 分钟前
Linux 编辑器入门:nano 与 vim 的区别与选择指南
linux·运维·服务器
晓131330 分钟前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言
唐装鼠39 分钟前
Linux 下 malloc 内存分配机制详解
linux·malloc
予枫的编程笔记40 分钟前
【Linux入门篇】Linux运维必学:Vim核心操作详解,告别编辑器依赖
linux·人工智能·linux运维·vim操作教程·程序员工具·编辑器技巧·新手学vim
17(无规则自律)1 小时前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件
中二病码农不会遇见C++学姐1 小时前
Linux下的.run文件
linux