【发布时间】:2023-04-07 17:27:01
【问题描述】:
假设我使用汇编语言编写了一个原始引导加载程序。 计算机仍处于实模式。 现在我想用 C 语言编写一个原始内核和 shell。 问题:
1.我是否需要为这个新操作系统编写汇编语言的 C 语言编译器,或者我可以使用在不同操作系统上运行的 C 编译器吗?我想可能两者兼而有之!
2.如果我使用来自不同操作系统的 C 编译器,可以编译 printf() 等函数以针对 BIOS 的函数而不是操作系统的 API 来避免依赖关系?
3.如果我的引导加载程序将计算机切换到保护模式,内核是否需要实现与 BIOS 功能等效的功能?
4. 假设问题 3 为“是”:如果我使用来自不同操作系统的 C 编译器,需要什么使其针对新的操作系统内核函数?重写头文件?
(EDIT) PD:这些都是理论问题。我不需要有关实际实现的具体细节。我只想验证这些概念。不要觉得有义务回答所有问题!
【问题讨论】:
-
你为什么不提出这些单独的问题
-
这些都是理论问题。每个问题都与下一个问题相关。不要觉得有义务回答所有问题!
-
引人入胜的主题,但我认为单独的问题会很好地为您和社区服务。
-
有什么办法可以取消这个问题来拆分它?
标签: c compiler-construction operating-system kernel