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

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

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

移动后的内存布局如下

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


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

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

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

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

相关推荐
等等,要下雨1 小时前
linux安装ollama
linux·运维·服务器
Starry_hello world5 小时前
Linux 的准备工作
linux·笔记·有问必答
_考不上研究生不改名6 小时前
【完美解决】VSCode连接HPC节点,已配置密钥却还是提示需要输入密码
linux·服务器·vscode·远程连接·hpc·超算集群
_长银7 小时前
Vim搜索和替换
linux·编辑器·vim
爱的叹息8 小时前
Spring Boot 自定义配置类(包含字符串、数字、布尔、小数、集合、映射、嵌套对象)实现步骤及示例
java·linux·spring boot
嵌入式-老费8 小时前
Linux上位机开发实践(一个硬件算法加速的示例)
linux·运维·服务器
前进的程序员9 小时前
Linux C 与 C 语言的区别及开发差异
linux·运维·c语言
CZIDC9 小时前
华为昇腾服务器上查看固件、驱动和CANN版本的常用方法
linux·运维·服务器
良许Linux10 小时前
C++在嵌入式中表现如何?
linux
林政硕(Cohen0415)11 小时前
Linux驱动开发进阶(七)- DRM驱动程序设计
linux·驱动开发·drm