自己动手编写操作系统
文章平均质量分 94
从零编写一个操作系统wind_os,实现物理/虚拟内存管理,进程/线程,系统调用,中断处理, fork/malloc,多核,文件系统,图形界面gui
csprimer
计算机科学基础系列课程:csprimer.net
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
使用Bootloader加载操作系统内核2:Bootloader启动流程
搞清楚了i386分段机制以后,我们来看bootloader是怎么启动的。下图就是32位CPU的物理地址空间范围,前面的1M是之前的8086的地址空间,从0到640K就是之前的8086可以使用的物理内存,从640到768是VGG显存空间,往这个区域写入字符就可以在显示器里显示,768-960是用来映射到外设,960-1M就是映射到BIOS ROM,BIOS程序是放在ROM里面,ROM跟RAM一样通过地址就可以访问,1M以上就是32位CPU的物理内存,最上面的一点是映射到32位CPU的外设。原创 2025-02-26 10:52:38 · 841 阅读 · 0 评论 -
使用Bootloader加载操作系统内核1:i386分段的机制
描述符表设置完成以后,我们就看段选择子,段选择子就是每个段在描述符表中的偏移,gdt表里第1个段的偏移是0,那么它的段选择子就是0,第二个段是代码段它的偏移是8个字节,所以它的段选择子是8,第三段是数据段它的偏移是16,所以它的段选择子是16,代码段的段选择子是放在CS寄存器里面的,数据段是放在DS寄存器里面的,下图就会设置相应段的段选择子,代码段是8,数据段是0x10就是16,原创 2025-02-19 11:20:35 · 701 阅读 · 0 评论
分享