今天的目标:写个“显卡驱动”,实际上就是实现一个printf
函数。在平时的开发中,我们可以使用标准库给我们提供的printf
进行打印输出,不得不说,这个函数应该是最简洁有力的调试工具。但是我们现在要开发操作系统,完全从零开始,这就意味着,我们必须自己实现一个printf
函数,方便我们查看各种信息和状态。
在上一篇文章中我们已经抽取出了一个cprintf
函数用于打印输出,但这还是太简陋了,今天我们给它加点功能,以满足我们的需求。
要实现的功能有两点:
大约 8 分钟
今天的目标:写个“显卡驱动”,实际上就是实现一个printf
函数。在平时的开发中,我们可以使用标准库给我们提供的printf
进行打印输出,不得不说,这个函数应该是最简洁有力的调试工具。但是我们现在要开发操作系统,完全从零开始,这就意味着,我们必须自己实现一个printf
函数,方便我们查看各种信息和状态。
在上一篇文章中我们已经抽取出了一个cprintf
函数用于打印输出,但这还是太简陋了,今天我们给它加点功能,以满足我们的需求。
要实现的功能有两点:
今天的目标:规范化开发流程。
在上一篇文章中,出于简洁的考虑只使用了一个.c
文件来做说明。后续的开发中代码会越来越多,一个文件肯定是不够的,今天我们将代码做一下简单的拆分,以便更好的扩展。
先把之前的源文件kernel.c
贴出来:
这还得从一只蝙蝠说起。
讲道理这篇文章的题目很不合理。作为一个计算机人,第一篇文章起码应该是0x00
吧?这是对计算机最起码的尊重。原本打算在这篇文章之前写一篇关于汇编和硬件基础知识的介绍(以后补上)。虽然汇编和硬件很简单,但是一上来就讲这些简单的知识难免会让人觉得枯燥,因而影响学习的积极性是得不偿失的。索性先写个操作系统找找感觉,以此建立学习的兴趣,未尝不是一件好事。
搞计算机这一行,万事离不了个Hello World
。现在开始就带领大家实现一个操作系统版的Hello World
。
今天开始,我们来学习操作系统的开发。
你需要一点汇编语言的知识,老李为此专门写了一个系列文章,算是要用到的基础知识。按逻辑上来讲,本文是接着汇编语言系列的最后一篇文章来写的,那篇文章已经实现了一个操作系统的bootloader
,本文只是对其做了规范化
。