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

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

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

移动后的内存布局如下

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


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

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

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

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

相关推荐
Du_chong_huan17 小时前
《Linux 是怎样工作的》第 2 章:用户模式实现的功能
linux·运维·服务器
学电子她就能回来吗17 小时前
【无标题】
linux·运维·服务器
有毒的教程18 小时前
Ubuntu 安装完成后网络配置教程
linux·网络·ubuntu
刚入门的大一新生18 小时前
Linux-Linux的基础指令3
linux·运维·服务器
草莓熊Lotso18 小时前
MySQL 复合查询核心指南:多表、子查询与实战技巧
linux·运维·服务器·数据库·人工智能·mysql
kaoa00018 小时前
Linux入门攻坚——71、puppet-1
linux·运维·puppet
马猴烧酒.18 小时前
【面试八股|操作系统】操作系统常见面试题详解笔记
java·linux·服务器·网络·数据结构·算法·eclipse
了一梨18 小时前
[T113] 交叉编译 libmpv
linux·笔记·学习
哈__18 小时前
Linux 部署 RocketMQ 实操:从内网到公网的完整落地心得
linux·服务器·rocketmq
倔强的石头10618 小时前
【Linux指南】基础IO系列(二):C 语言标准库 IO 接口实战 —— 从 fopen 到 feof 全解析
linux·c语言·单片机