![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
手写操作系统
文章平均质量分 83
想当开心果哦
这个作者很懒,什么都没留下…
展开
-
手写操作系统 - 操作系统内核突破512字节
boot.asmsetup.asmboot.osetup.oboot.odd0磁道0柱面1扇区BIOS例程0x7c00setup.odd0磁道0柱面2扇区boot。原创 2023-12-29 09:58:50 · 412 阅读 · 0 评论 -
手写操作系统 - 汇编实现进入保护模式
代码地址。原创 2023-12-29 09:58:08 · 429 阅读 · 0 评论 -
手写操作系统 - CPU段页门
CPU是如何找到数据并读写的?拿到数据段寄存器中的值 ds = 0x10解析段寄存器中的值,0x10->段选择子CPU读自己的gdtr寄存器取到数据段的描述符解析段描述符检查p位 有效位检查dpl位s位、type域type域 数据段取base、limit判断base + offset <= limit返回线性地址。原创 2023-12-29 09:57:24 · 982 阅读 · 3 评论 -
手写操作系统 --汇编执行流(二)
不同于x86有多种调用约定。还是其他编译器,都使用。x86架构(32位)原创 2023-12-29 09:56:47 · 889 阅读 · 0 评论 -
手写操作系统 --汇编执行流(一)
使用Java、C++写程序,基本单位是类的方法;使用C语言写程序,基本单位是函数;使用汇编写程序,基本单位就称为执行流(CPU执行引擎执行程序也称为执行流);原创 2023-12-29 09:55:54 · 453 阅读 · 0 评论 -
手写操作系统 -- 微内核
创建一个微内核项目,编写boot.asm使用命令生成boot.o文件。如何生成一个硬盘?使用命令生成。hd.img硬盘如何将内核写入硬盘?使用将内核程序(boot)写入硬盘(hd.img)当中。如何运行起来?利用bochs或qemu来运行。为什么要读到0x7c00位置?查看实时实时模式下内的存布局图可以发现0x7c00为BIOS例程的入口。为什么要调到处?BIOS例程的内存地址。原创 2023-12-29 09:54:54 · 512 阅读 · 1 评论