Bootloader函数调用

时间:2010-11-09 05:56:59

标签: operating-system

我现在对我的项目感到有点困惑。我做了一些谷歌搜索,但无法找到一个能够正确解释我需要知道的答案的答案。我之前发布了一个不同的问题,对不起,但我现在感到很困惑。

对于这个反复无常的问题而言,对不起,但通过各种渠道阅读,我越来越困惑,我现在需要一条具体的道路。 (太接近截止日期)

我有一个简单的引导程序(现在就打印欢迎使用OS)。遵循一个非常简单的教程。

我有一个shell代码,我可以创建一个可执行文件/二进制文件(无论什么是必需的)。

我想从我的bootloader的ASM代码中调用该shell。我不想在它们之间包含一个内核。一个小小的研究告诉我,如果我的代码足够基本或其他东西,就不可能使用内核作为媒介。 (我的shell非常基础。假设它现在列出了目录。)现在我有两个问题。

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

2)只是从我的ASM调用exe / binary会起作用吗?就像我的bootloader引导一条打印的消息,说欢迎使用OS。如果我从那个ASM代码调用我的shell,它会直接启动到shell或者我还需要更多东西吗?我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

你的引导程序可以运行它想要的任何东西。通常,它用于启动操作系统,但没有理由不能只启动你的shell。

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

使用操作系统有很多好的理由。命名一:它提供了所有应用程序所需的通用服务,因此他们不必自己编写。像磁盘,USB,键盘,视频和文件系统驱动程序一样。

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