Operating system 引导加载程序函数调用

Operating system 引导加载程序函数调用,operating-system,Operating System,我现在对我的项目有点困惑。我在谷歌上搜索了一下,但找不到一个能正确解释我需要知道的答案。我之前发布了一个不同的问题,很抱歉,但我现在更困惑了 很抱歉,努比什重复了这个问题,但通过阅读各种来源,我越来越困惑,我现在需要一条具体的道路。(离截止日期太近) 我有一个简单的引导加载程序(现在就欢迎使用操作系统)。遵循一个非常简单的教程 我有一个shell代码,可以生成可执行文件/二进制文件(无论需要什么) 我想从我的引导加载程序的ASM代码中调用这个shell。我不想在两者之间包含内核。一点研究告诉我,

我现在对我的项目有点困惑。我在谷歌上搜索了一下,但找不到一个能正确解释我需要知道的答案。我之前发布了一个不同的问题,很抱歉,但我现在更困惑了

很抱歉,努比什重复了这个问题,但通过阅读各种来源,我越来越困惑,我现在需要一条具体的道路。(离截止日期太近)

我有一个简单的引导加载程序(现在就欢迎使用操作系统)。遵循一个非常简单的教程

我有一个shell代码,可以生成可执行文件/二进制文件(无论需要什么)

我想从我的引导加载程序的ASM代码中调用这个shell。我不想在两者之间包含内核。一点研究告诉我,如果我的代码足够基本或是其他什么的话,不使用内核作为媒介是可能的。(我的shell非常基本。假设它现在列出目录。)现在我有两个问题

1) 我需要编写一些键盘设备驱动程序才能工作吗?(我希望不是,)如果答案是肯定的,并且存在解决办法,请随时详细说明


2) 从我的ASM中调用exe/二进制文件就行了吗?就像我的引导程序引导到一条打印的消息中,说欢迎使用OS。如果我从ASM代码中调用shell,它将直接引导到shell中,或者我需要更多的东西吗?我遗漏了什么吗?

您的引导加载程序可以运行它想要的任何东西。通常,它用于启动一个操作系统,但是没有理由不能直接启动shell

然而,我不知道你的外壳是否能胜任这项任务。它对输入有什么作用?它对输出有什么作用?您提到列出目录。您的shell是否知道如何读取硬盘上的文件系统?它知道如何访问硬盘吗

使用操作系统有很多很好的理由。举个例子:它提供了所有应用程序都需要的公共服务,因此它们不必自己编写。例如磁盘、USB、键盘、视频和文件系统驱动程序

诚然,BIOS可以为您提供对其中一些组件的最低限度的工作访问。键盘I/O可能需要轮询I/O端口。同样,用于将字符打印到文本显示。我不记得您是如何访问磁盘的,但它可能没有太大的不同。大概这些问题已经在引导加载程序中解决了。您可能可以通过检查引导加载程序代码来构建一个基本的OS库