gpt4 book ai didi

在为内核编码时可以使用 stdio 吗?

转载 作者:太空狗 更新时间:2023-10-29 15:06:24 27 4
gpt4 key购买 nike

我需要构建一个操作系统,一个非常小且基本的操作系统,实际上功能最少,用 C 语言编码。

可能是一个 CUI 操作系统,它执行一些内存管理并且至少有一个文本编辑器和一个计算器,它只是一个关于如何编写对您的硬件具有完全和直接控制的代码的实验。

我仍然需要一个接口(interface),它需要像 printf(&args)、scanf(&args) 这样的输入/输出函数。现在我的基本问题是我应该使用现有的 header 还是从头开始实际编码,为什么这样?

非常感谢你们的帮助。

最佳答案

首先,您不能链接来自 libc 的任何内容...您将不得不从头开始编写所有代码。

现在我自己在微内核上工作,我不会使用实际的 stdio libc 附带的 header 因为它们会被大量额外的信息弄得乱七八糟,这些信息要么与您的操作系统无关,要么会由于缺少定义等而导致编译器错误。不过,我做的是保留该功能这些标准函数的签名相同......所以最后你会有一个名为stdio.h的文件适用于您的操作系统,但它将是一个非常精简的头文件,具有满足您需求的基本最低要求,并且仅具有您需要的标准 I/O 功能,以及正确的标准签名。

请记住后端,即在您的 stdio.c 中文件,您必须将这些函数指向自定义控制台驱动程序或其他类型的显示器字符驱动器。或者,您可以将它们用作其他一些内核级显示打印例程的包装器。您还需要确保即使您可以使用 #include <stdio.h>在您的其他操作系统代码模块中使用指令来访问这些打印功能,您不链接 libc .这可以使用 gcc -ffreestanding 来完成.

关于在为内核编码时可以使用 stdio 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6386852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com