摘要:声明: 此系列文章尚未完成,请勿转载,谢谢合作梗概这一节新增的文件有:stdarg.h 用来处理可变参数ctype.h 判断变量一些属性。比如一个字符是不是大写,是不是数字string.h string.c 常用的关于字符串的操作vsprintf.h vsprintf.c 该节的主要文件用来实现格式化输出改变的文件有:test.c 主要用来测试 printk函数正文大家上程序设计课程写的第一个程序...
阅读全文
摘要:这篇文章分为两部分,前部分是写简单的vga驱动程序,后部分进行测试。但是kernel测试不同于普通的应用程序,首先要让kernel跑起来然后才能观测结果,所以后半部分又可分为两个部分 —— 制作引导盘和运行kernel。所以简单点儿,就分为三个部分吧:1: 编写vga驱动程序2: 制作引导盘 (此部分非常重要,写简单的kernel难点不在于程序的编写,而在于工具的使用)3:...
阅读全文
摘要:上一节已经搭建好了OS开发环境,现在我们来写个简单的引导代码吧先讲一下操作系统的引导过程:PC加电自检后,会把引导设备的0磁头,0磁道,1扇区的内容加载到内存 0x7c00 处,然后就跳转到该处执行引导代码。我只是简单地说了下,详情请自行Google。[代码]boot.S采用的是AT&T格式的汇编语法,执行的工作就是先设置好相关段寄存器的值,再调用10h中断显示字符串为了把它加载到bochs,我们...
阅读全文
摘要:声明:请看到此文章的朋友不要转载,因为写作才刚刚开始,有很多不成熟甚至错误的地方。等所有文章完成之后,我会细心整理。相信很多人曾经都有过一种冲动,那就是像linus一样自己写个操作系统。这个系列的文章就是关于这个话题的,但是我并不奢望能开发出一个像当代linux一样的OS,实际上几乎不可能,即使是linus也做不到。linux能发展到现在靠的是互联网上的无数黑客,及各大公司的支持。我的目标只是个m...
阅读全文