《自己写最简单的操作系统》由会员分享,可在线阅读,更多相关《自己写最简单的操作系统(4页珍藏版)》请在金锄头文库上搜索。
1、参看自己动手写操作系统 30 天自制操作系统需要的软件1. 虚拟机 VM/VirtualBox/bochs2. 映像编辑工具:FloppyWriter,EasyBoot,UltraISO3. 汇编工具:yasm/nasm/masm基本思路:所谓开发操作系统,就是想办法制作一张“含有操作系统的能够自动启动的存储介质” 。步骤:1. 编写 boot.asm 汇编源文件2. 通过汇编器得到 boot.bin 二进制文件3. 通过映像读写工具将二进制文件写入存储介质。/Boot.asmorg 07c00hmov ax,csmov ds,axmov es,axcall DispStrjmp $DispS
2、tr:mov ax,BootMessagemov bp,axmov cx,16mov ax,01301hmov bx,000chmov dl,0int 10hretBootMessage:db Hello world!times 510-($-$) db 0dw 0xaa55真正开发操作系统前面说过,所谓开发操作系统,就是想办法制作一张“含有操作系统的能够自动启动的存储介质” 。 【 至少也是适用于某一介质的映像文件】并且所有开发工作都是基于另一台已有的计算机。编写只显示 hello world!的操作系统就不再讲了。接下来写真正的 IPL(启动程序装载器)首先来说一说安装系统和运行系统的区别
3、。我们是开发操作系统,即没有任何已有的可启动设备,我们现在要写的 IPL 就是装载真正的操作系统的,虽然它现在存在于软盘中,如何自定义安装路径是以后的问题了注意我们的 IPL 和 os 是处在同一映像文件之中的。启动的时候,bios 读取软盘(操作系统安装介质)的第 0 扇区到内存并执行,然后通过这一段程序装载真正的 os。完成 IPL 之后,我们就可以转用 C 语言开发 os 了从实模式到保护模式。保存 bios 的一系列信息到 BOOT_INFO一些前期准备调色板字体鼠标指针GDT中断(IDT)PICFIFO 缓存区按键编码激活鼠标控制鼠标解读/显示鼠标动作内存管理叠加处理窗口PIT 和定时器多任务分析1. 安装设置 bios 启动顺序,启动安装介质安装系统2. 运行已安装系统bios 启动到系统分区IPL 把 Kenel 装入内存执行 init 进程3. 功能键盘和命令行鼠标和 GUI、多任务文件系统Api开发所谓开发操作系统,就是想办法制作一张“含有操作系统的能够自动启动的存储介质” 。工具1. 一台已安装 os 的计算机2. CPU 指令参考手册3. BIOS 中断参考手册4. GNU 等系统开发工具步骤(略去系统安装程序,即直接从介质中运行操作系统)1. 编写 IPL2. 用 C 写系统核心组件3. 编译所有代码4. 打包成映像文件5. 写入映像文件到启动介质