【发布时间】:2020-02-10 01:14:36
【问题描述】:
我需要一些认真的帮助。我正在尝试,我的意思是真的想创建一个类似 DOS 的操作系统。我阅读了多篇文章,阅读了多本书(我什至为 O'Reilly Media 支付了终身订阅费),但无济于事,我发现没有任何用处。我想学习如何制作操作系统库,这就提出了一个问题: 如果您为操作系统编译程序,那么您为程序编写的库是否相同? 我知道操作系统的制作非常具有挑战性,而且极少数确实尝试制作的程序员从未产生过这就是为什么它被描述为“the great pinnacle of programming.”的原因。但是,我仍然会尝试制作一个(只是为了好玩,也许会在途中学习一些指针)。我需要做的基本上就是学习如何制作库、C(我已经知道并喜欢)、程序集(我有点知道如何与 C 一起使用)和编译器(我使用 GNU 工具链)。 我唯一遇到的问题是对库进行编码。我现在就像 哇,谁知道编码库如此之难,就像给我指一本书一样或者其他的东西!但不是。 我不是在这里要一本书,我要的只是一些关于如何做到这一点的建议:
如何开始制作一些基本的 I/O 库
和做普通C库一样吗
最后,
- 会很难吗? (JK 我已经知道这将是非常困难,这就是我准备这么多的原因)
总之,主要问题是,谁能帮助我或提供一些关于如何完成这项工作的提示或建议,或者是否有一个预构建的库最有可能加快这个过程?
【问题讨论】:
-
不要尝试。这很无聊也很困难。我试过一次,我怀疑我会完成我的。如果没有底层知识,I/O 是非常困难的,并且首先要淘汰一大堆其他东西,比如中断处理程序。与此相比,C 库是小菜一碟。甚至一个标准的 C 库也是。
-
编写一些基本的 I/O 库需要首先了解信息是如何存储在磁盘上的。然后我相信通常有一些方法可以通过BIOS芯片访问信息。所以这将取决于平台(?),我建议使用像 QEMU 这样的模拟器进行开发
-
我会看看这个,因为它有一些很好的信息,我认为涵盖了你会感兴趣的 github.com/cfenollosa/os-tutorial
-
@AlecC BIOS 是一个令人讨厌的、过时的 x86 可憎之物。 ARM SoC 中没有等价物。我不认为 UEFI 提供了 BIOS 兼容模式或任何 IO 服务供操作系统使用。任何操作系统都将枚举硬件并直接与设备交互。这显然不是微不足道的。
-
FreeDOS是一个与 DOS 兼容的开源操作系统,部分使用C编写。它可能包含一些C库来查看
标签: c operating-system libraries osdev