我现在对我的项目有点困惑。我用谷歌搜索了一下,但找不到合适的答案来解释我需要知道的东西。我之前发布了一个不同的问题,很抱歉,但我现在更困惑了。
很抱歉重复的问题,但通过各种来源阅读,我越来越困惑,我现在需要一个具体的路径来遵循。(离截止日期太近)
我有一个简单的引导程序(现在只是打印欢迎使用操作系统)。遵循一个非常简单的教程。
我有一个shell代码,我可以生成一个可执行文件/二进制文件(无论需要什么)。
我想从我的引导加载程序的ASM代码中调用该shell。我不想在两者之间包含内核。一些研究告诉我,如果我的代码足够基础或其他东西,可以不使用内核作为媒介。(我的shell非常非常基础。假设它现在列出了目录。)现在我有两个问题。
1)我是否需要编写一些键盘设备驱动程序才能使其工作?(我希望不是)如果答案是肯定的,并且存在解决方法,请随时详细说明。
2)从我的ASM调用exe /binary就可以了吗?就像我的引导加载程序引导到一条打印的消息“Welcome to OS”。如果我从ASM代码调用我shell,它将直接引导到shell,或者我需要更多的东西?我错过了什么吗?
发布于 2010-11-10 23:11:07
您的引导加载程序可以运行它想要运行的任何东西。通常,它是用来启动操作系统的,但它没有理由不能启动您的shell。
但是,我不知道您的shell是否能胜任这项任务。它对输入有什么作用?它将对输出做什么?您提到了目录列表。您的shell知道如何读取硬盘上的文件系统吗?它知道如何访问硬盘吗?
使用操作系统有很多很好的理由。举个例子:它提供了所有应用程序都需要的公共服务,因此它们不必自己编写。如磁盘、USB、键盘、视频和文件系统驱动程序。
当然,BIOS可能会为您提供对其中一些组件的最低限度工作访问权限。键盘I/O可能需要轮询I/O端口。同样用于将字符打印到文本显示。我不记得您是如何访问磁盘的,但它可能并没有太大的不同。这些问题可能已经在引导加载程序中得到了解决。你可以通过检查你的引导加载程序代码来拼凑一个基本的OS库。
https://stackoverflow.com/questions/4130897
复制相似问题