《30天自制操作系统》
宇宙379
C/C++,VC++
展开
-
《30天自制操作系统》第0天
1.天下无难事,只怕有心人。 兴趣遍地都是,专注与持之以恒才是最重要的。 2.所谓开发操作系统,就是想办法制作一张"含有操作系统(代码),能够自动启动的磁盘。" (电脑开机后,将磁盘上OS代码读取到内存某个位置,再将PC指向这个位置,开始OS指令执行). ---所有运行程序都在内存中(少部分代码在磁盘交换区)。 3.第一个操作系统是用0101二进制指令写出来的,在第一个操作系统基础上开原创 2013-12-21 18:18:10 · 1876 阅读 · 0 评论 -
《30天自制操作系统》第1天
1.下载一个二进制编辑器(网上很多下载,google一下即可,也叫十六进制编辑器),他能直接对二进制数进行编辑。如果你对(某种处理器的)机器码非常熟悉的话,理论上可以用二进制编辑器完成(此处理器上的)任何软件的制作,小至一个计算器,大至一个编译器,操作系统(因为所有软件本质上都是CPU的机器指令和一些数据组成)。但是不同类型CPU的机器码是不一样的。当然,实际上用一个二进制编辑器编写一个windo原创 2013-12-21 18:18:54 · 4635 阅读 · 2 评论 -
《30天自制操作系统》第4天
1. C语言与画面显示的练习 汇编与C语言结合时能自由使用的寄存区只有EAX,ECX,EDX3个,其他寄存区用于记忆非常重要的值,只能读不能写。 Intel系列CPU:8086->80186->286->386->486 ->Pentium->PentiumPro->Pentium2->Pentium3->Pentium4->..... 286是16位,386以后是32位。 2. cha原创 2014-01-06 20:28:26 · 1402 阅读 · 0 评论 -
《30天自制操作系统》第6天
1.PIC 可编程中断控制器 PIC 连接8个中断信号,监视输入管脚的8个中断信号。主PIC:IRQ0-IRQ7(IRQ2连接到从PIC:IRQ8-IRQ15)。 中断发生后,CPU命令PIC发送2个字节的数据,格式是:0xcd 0xXX,CPU收到2个字节后把数据当做指令来执行。0xCd 就是INT的机器码,cd 10 就是INT 0x10,于是执行了中断程序。 2.每次访问内存时,将原创 2014-01-06 20:29:53 · 1531 阅读 · 4 评论 -
《30天自制操作系统》第5天
1. 结构体、文字显示与GDT/IDT初始化 结构体 strucar {}test; 传参代替多个参数的传参。 以前我们调用BIOS绘图,现在在32位模式下不能调用了,需要自己自力更生。 显示器上显示的一切都是绘制的,包括鼠标形状等。 2. 查询方式效率低,中断效率高,鼠标键盘均是中断实现。 3. 只认识机器指令0101,汇编器,编译器将高低级语言翻译为机器码,OS抽象, 内存区!原创 2014-01-06 20:29:03 · 972 阅读 · 0 评论 -
《30天自制操作系统》第3天
1. 进入32位模式并导入C语言 制作真正的IPL(启动程序加载器)-用他来装载程序 BIOS 0x13号函数(INT 0x13)读写磁盘。将硬盘内容装入内存。 JC error ;jump if carry,如果有进位标志则跳转到error。 2. 软盘就像一棵树的截面,他有上下两面,向上的面用磁头0读写,下面用磁头1读写。 树有很多年轮,软盘也类似,软件年轮之间的部分叫柱面(cyli原创 2013-12-23 20:49:22 · 1841 阅读 · 1 评论 -
《30天自制操作系统》第2天
1.汇编语言学习与Makefile入门 ORG 0x7C00 ;指明程序的装载地址 (将程序装到内存哪个起始地址上) INT 0x10 ;调用显卡BIOS JMP entry ;跳到某个地址 MOV ax, 0 ;AX=0 所有的汇编指令都汇编为对应的机器指令,比如: ADD CX,0x1234 ;编译为: 81 C1 34 1原创 2013-12-23 20:47:43 · 1331 阅读 · 0 评论