我需要构建一个操作系统,一个非常小的基本操作系统,实际上功能最少,用C编码.
可能是一个CUI操作系统,它做一些内存管理,至少有一个文本编辑器和一个计算器,它只是一个关于如何制作一个完全和直接控制你的硬件的代码的实验.
我仍然需要一个接口,需要输入/输出功能,如printf(&args),scanf(&args).现在我的基本问题是我应该使用现有的标题还是实际从头开始编码,为什么会这样?
我非常感谢你们的帮助和帮助.
首先,你不能链接到任何东西libc
......你将不得不从头开始编写所有代码。
现在,我自己已经开发了一个微内核,我不会使用stdio
附带的实际标头libc
,因为它们会混乱很多额外的信息,这些信息要么与您的操作系统无关,要么由于缺少而导致编译器错误我要做的就是保持这些标准函数的函数签名相同......所以最终你会有一个stdio.h
为你的操作系统调用的文件,但它将是一个非常精简的头文件,其中包含基本的满足您需求的最低要求,并且仅具有您需要的标准 I/O 功能以及正确的标准签名。
请记住,在后端,即在您的stdio.c
文件中,您必须将这些函数指向自定义控制台驱动程序或用于显示的其他类型的字符驱动器。或者,您也可以将它们用作其他一些内核级显示打印例程的包装器。您还需要确保即使您可能#include <stdio.h>
在其他操作系统代码模块中使用指令来访问这些打印功能,您也不会链接到libc
. 这可以使用 来完成gcc -ffreestanding
。