Вызов функции загрузчика - PullRequest
0 голосов
/ 09 ноября 2010

Я сейчас немного запутался из-за своего проекта.Я немного погуглил, но не смог найти ответ, который бы правильно объяснил, что мне нужно знать.Ранее я писал с другим вопросом, извините за это, но сейчас я только запутался.

Извините за повторяющийся вопрос, но читая различные источники, я все больше запутываюсь и мне нужен конкретный путьследовать сейчас.(Слишком близко к крайнему сроку)

У меня есть простой загрузчик (просто печатает Welcome to OS прямо сейчас).Последовал очень простой учебник.

У меня есть шелл-код, который я могу сделать исполняемым / бинарным (все, что требуется).

Я хочу вызвать эту оболочку из кода ASM моего загрузчика.Я не хочу включать ядро ​​между ними.Небольшое исследование говорит мне, что можно не использовать ядро ​​в качестве среды, если мой код достаточно прост или что-то в этом роде.(Моя оболочка очень простая. Допустим, она перечисляет каталоги прямо сейчас.) Теперь у меня есть два вопроса.

1) Нужно ли мне писать драйверы для клавиатуры, чтобы она работала?(Я надеюсь, что нет). Если ответ «да», и существует обходной путь, пожалуйста, не стесняйтесь уточнять.

2) Просто вызовет этот exe / бинарный файл из моего ASM?Как будто мой загрузчик загружается в распечатанное сообщение «Добро пожаловать в ОС».Если я вызову свою оболочку из этого кода ASM, она загрузится прямо в оболочку или мне нужно что-то еще?Я что-то упустил?

1 Ответ

0 голосов
/ 10 ноября 2010

Ваш загрузчик может запускать все, что захочет.Обычно он используется для запуска операционной системы, но нет никаких причин, по которым он не мог просто запустить вашу оболочку.

Однако я не знаю, соответствует ли ваша оболочка этой задаче.Что это делает для ввода?Что это будет делать для вывода?Вы упоминаете список каталогов.Ваша оболочка знает, как читать файловую систему на жестком диске?Он знает, как получить доступ к жесткому диску?

Существует много веских причин, по которым используются операционные системы.Одним словом: он предоставляет общие сервисы, которые нужны всем приложениям, поэтому им не нужно писать его самим.Как и драйверы дисков, USB, клавиатуры, видео и файловой системы.

Конечно, BIOS может предоставить вам минимально работающий доступ к некоторым из этих компонентов.Для ввода-вывода с клавиатуры, вероятно, требуется опрос порта ввода-вывода.Аналогично для печати символов для отображения текста.Я не помню, как вы получили доступ к диску, но он, вероятно, не слишком отличается.Предположительно это проблемы, которые были решены в загрузчике.Вероятно, вы могли бы взломать базовую библиотеку ОС, изучив код загрузчика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...