随笔分类 - 自制操作系统
摘要:一般机器都会有一个计时器的设备,在一定时间内不断发送中断信号,我们接收这个中断信号搞一个timer++这就是计时器了 把class06改07 naskfunc.asm ; naskfunc ; TAB=4 [FORMAT "WCOFF"] ; 制作目标文件的模式 [INSTRSET "i486p"]
阅读全文
摘要:内存管理就是内存管理,我不会像书一样解释。我直接教你怎么实现 还是把class05改class06或者复制一份 内存管理第一件事情就是要划出一篇区域,规定这个地方是内存区域 double *ptd = (double * ) memman_alloc (memman,30 * sizeof(doub
阅读全文
摘要:接上一课class04,这是他的运行结果 收到了键盘的中断,现在想的当然是怎么把输入的文字显示到屏幕上,做成一个最简单的IO 这是class04的目录结构,现在我们把他换成class05 我们现在要读取键盘的数据,然后显示在屏幕上面 interrupt.c #include "include/hea
阅读全文
摘要:把class03改成class04 IDT,GDT,PIC 我来介绍什么是IDT和GDT,PIC,怎么实现键盘中断 GDT全局描述表在16位CPU用不到,到了32位CPU要用。 16位CPU实模式用基地址x16+偏移地址去寻找内存地址,到了32位也用基地址x16+偏移地址找地址但是,32位CPU有保
阅读全文
摘要:先看看效果: 要解决两个问题,第一个如何显示字符串,printf?我之前已经说了所有的头文件都要自己写,printf是stdio里的可是我们没有stdio 我们要通过画像素点的方式显示字符串,有点像我的世界的红石系统,用红石点亮一个方块,第二个问题是如何调用类似sprintf的 功能 显示字符串 把
阅读全文
摘要:前言: 0x03我们提到: 把12(红色)用循环写入显存,每个像素点怎么显示都要看对应的显存地址,比如0xa0000到0xaffff就是每一个像素点的显存 你问为什么12就是红色,这些东西在主板出厂的时候就是规定好的,就是有点调用主板api的味道,这是我的猜测,具体为什么还要你们来查 你会发现12是
阅读全文
摘要:haribote用在1.44软盘上面的,建立这种环境比较困难,但是我们可以用grub进行引导,我在想整个os最大1.44x10^20Byte我以后要写多点该怎么办呢 先不管了,我下面直接教软盘上面的系统怎么在实体机上面运行 1.打开开发环境(见目录0x00)里面的install文件夹 2.先用SDF
阅读全文
摘要:首先配置环境见目录0x00,创建class01文件夹 直接看目录结构 │ main.c(可以调用asm的函数,可以使用最原始的c语言,你要明白基本所有头文件都要用汇编自己造)│ Makefile(make脚本)├─asm│ asmhead.asm(别管)│ ipl10.asm(别管)│ naskfu
阅读全文
摘要:这是最后的效果图,可以在实体机上面运行。 功能: 运行app,app调用自己写的api实现输出字符串 终端输入输出界面 计时器 支持鼠标,键盘 问题: 实体机鼠标有问题 介绍: 系统完全参考haribote,算是精简版或者二开的haribote,去除了GUI界面,终端界面完全自己开发,这是一点一点调
阅读全文
摘要:所需工具: 1.vscode 2.编译工具(来自haribote后续改用nasm+gcc) 环境: windows10 64位 使用方法: 直接下载,这个目录就是开发环境
阅读全文