gpt4 book ai didi

c - 如何在不深入设备驱动程序的情况下编写操作系统

转载 作者:行者123 更新时间:2023-11-30 21:17:58 24 4
gpt4 key购买 nike

我正在编写用于教育目的的操作系统,并且作为 future 可能的生产系统,我想从头开始它(我已经这样做了),我真的对使用硬件感到不安,编写简单的 VGA 文本模式驱动程序真的很困难恶梦。问题是使用硬件很难调试,而且大多数硬件都是闭源的,而且我正在单独工作(太多了,无法单独处理所有可用的硬件)我的操作系统在 x86 上运行,将来可能在 x86_64 架构上运行,所以我问如果有方法可以帮助避免直接使用硬件,例如 HAL 但与目标无关,提供与各种可用硬件进行通信的接口(interface)如果这样的东西可用它应该是用 C 或汇编语言(但不是 C++),因为我希望我的操作系统用纯 C 和汇编语言编写(以提高性能)

最佳答案

从评论来看,不仅仅是我的,我的第一 react 是“那还剩下什么?”。但事实并非如此。

除了设备驱动程序中的某种硬件抽象之外,还有其他领域,引用 Wikipedia article 中的一些项目。 :

  • 流程管理
  • 中断处理
  • 内存管理
  • 文件系统
  • 网络
  • 安全
  • 其他输入/输出
  • 用户界面

问题是这些需要与设备驱动程序密切交互。您需要一个合作伙伴来处理它们,或者尝试使用现有的东西。

例如如果您采用 NetBSD 发行版并保留其大部分设备驱动程序,保留引导系统并将内核削减到最低限度,我认为您最终仍会得到类似 UNIX 的东西。

同样有趣的是嵌入式世界中一些免费操作系统的类似削减,例如像FreeRTOS .

您还应该看看Plan 9这可以被视为与 UNIX 的适度背离。但请注意:

Other factors that contributed to low adoption of Plan 9 include the lack of commercial backup, the low number of end-user applications, and the lack of device drivers.

这是数十位世界级计算机科学家的努力。

关于c - 如何在不深入设备驱动程序的情况下编写操作系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32871349/

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