Библиотеки C для операционной системы - PullRequest
0 голосов
/ 13 октября 2019

Мне нужна серьезная помощь. Я пытаюсь, я имею в виду, что я действительно пытаюсь создать DOS-подобную ОС. Я прочитал несколько статей, прочитал несколько книг (я даже заплатил пожизненную подписку на O'Reilly Media), но безрезультатно, я не нашел ничего полезного. Я хочу научиться делать библиотеки операционной системы, что поднимает вопрос, который является; являются ли библиотеки, которые вы кодируете для программы, одинаковыми, если вы компилируете ее для операционной системы? Я знаю, что создавать операционные системы очень сложно, и очень немногие программисты, пытающиеся сделать так, никогда не производят функционированиеименно поэтому он описан как " великая вершина программирования. " . Но, тем не менее, я собираюсь попытаться сделать один (просто для удовольствия, и, возможно, выучить несколько указателей в пути). Все, что мне нужно сделать, это в основном научиться создавать библиотеки, C (который я уже знаю и люблю), сборку (которую я вроде как использую вместе с C) и компилятор (я использую набор инструментов GNU). Единственное, что у меня проблемы с , это кодирование библиотек. Я сейчас как 1009 * вау , кто знал, что библиотеки кодирования такие сложные, как указывать мне на книгу или что-то в этом роде. ! Но нет. Я не прошу книгу прямо здесь , все, что я прошу, это несколько советов о том, как это сделать, например:

  • Как вы начинаете делатьнекоторые базовые библиотеки ввода / вывода

  • Это то же самое, что создание обычной библиотеки C

и, наконец,

  • Это будет сложно? (JK я уже знаю, что это будет чрезвычайно трудно, поэтому я так много готовился)

В заключение, главный вопрос, может кто-нибудь пожалуйстапомогите мне или дайте несколько советов или советов о том, как я могу сделать это, или есть встроенная библиотека, которая, скорее всего, ускорит процесс?

1 Ответ

2 голосов
/ 13 октября 2019

Являются ли библиотеки, которые вы кодируете для программы, одинаковыми, если вы компилируете ее для операционной системы?

Абсолютно нет. Библиотека C пользовательского пространства на самом низком уровне делает системные вызовы операционной системы для взаимодействия с оборудованием через драйверы устройств;это драйвер устройства и взаимодействие с оборудованием, которое вы будете писать.

Исходя из моего опыта создания встроенных систем, вы начинаете с платы разработки с устаревшим портом RS-232. Это самое простое устройство, для которого можно написать драйвер - вы записываете байты в адрес ввода-вывода, отображенный в памяти, ждете немного, а потом пишете еще. Это где ваш первый вывод отладки идет тоже.

Возможно, вы наткнетесь на выводы ввода-вывода и пробуете их с помощью логического анализатора или DSO на пути к этому - следовательно, поэтому вам нужна плата разработки, где сигналы доступны.

Ни одна из стандартных C-библиотек не будет доступна для вас - поэтому вам понадобятся эквиваленты некоторых вещей, которые она предоставляет, - но в пространстве ядра - включая определения типов, управление памятью и встроенные функции, ожидаемые компилятором- особенно те, что для барьеров памяти. В любом случае C-библиотека не предоставляет каких-либо структур данных или алгоритмов, но вы определенно захотите написать их на ранних этапах.

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