10 2025 档案
摘要:从零开始制作 MyOS(四)—— 跳转到 C 语言编写的小型内核 目标 在引导加载器准备好后,用 C 语言编写一个小型内核并实现从引导加载器跳转到内核执行。 代码 引导程序文件 org 0x7C00 bits 16 start: ; 初始化段寄存器 xor ax, ax mov ds, ax mov
阅读全文
摘要:从零开始制作 MyOS(三)—— 切换保护模式 目标 今天的目标是从实模式切换到保护模式 保护模式切换流程 设置GDT (lgdt) 启用A20地址线 设置CR0.PE标志 远跳转刷新流水线 初始化保护模式段寄存器 关键组件解析 GDT 设置 gdt_start:定义全局描述符表 空描述符(必须存
阅读全文
摘要:从零开始制作 MyOS(二) 目标 一个简单的,能打印出字符串的 boot 已经做完了,那么接下来做一个加载多个磁盘扇区的功能。 原因 BIOS 在找到一个可引导设备后,加载该引导设备的第一个扇区,也就是扇区号为 0 的扇区,这个扇区只有 512 字节,那么这点空间在扣除引导设备签名和初始化一些寄存
阅读全文
摘要:从零开始制作 MyOS - 最简单的操作系统内核 开发环境 操作系统:ubuntu22 (windows10 + VMware15pro + ubunut22 + qemu) 编译器:gcc-multilib 汇编器:nasm 模拟器: QEMU 版本控制: git 安装依赖 ubuntu22 中:
阅读全文

浙公网安备 33010602011771号