Написание операционной системы на C++ [закрыто]
-
23-09-2019 - |
Вопрос
каков способ создать мою собственную операционную систему с использованием c ++?Я создал загрузчик (используя nasm, qemu), но у меня нет знаний, как добавить ядро в этот загрузчик.
Нет правильного решения
Другие советы
Вот такой тонна информации который вам в конечном итоге понадобится, страшный FAQ по программированию на ОС.
Будьте осторожны, C ++ довольно тяжеловесен для ядра операционной системы.
- Существуют такие службы, как exceptions, которые вам придется поддерживать с помощью библиотеки времени выполнения.
- Это не будет похоже на C ++, пока вы не добавите кучу.
- Ядра очень чувствительны к тому, где размещаются объекты;модель с одной кучей, обычно используемая в C ++, на самом деле не подходит.
- Связывание API-интерфейсов со структурами данных - плохая идея.У BeOS были проблемы с этим.Вам нужно скрыть размер ваших внутренних структур от пользователей, а это означает переход через обручи (Pimpl, частный конструктор, виртуальные функции), когда API являются функциями-членами.
Похоже, вы уже продвинулись дальше, чем большинство, так что продолжайте задавать вопросы, и, возможно, вы окажетесь в каком-нибудь приятном месте!:vD
Также добавить, Эта книга автор: Таненбаум, где он объясняет детали реализации minix.
Вы можете рассмотреть возможность рассмотрения МИНИКС это небольшая операционная система для систем x86.Первоначально он был разработан как учебный проект и превратился в нечто, призванное быть полезным в реальном мире.
Я не знаком с деталями, но, насколько мне известно, БеОС был написан на C ++.Исходные тексты должны быть свободно доступны, так же как и документация.
вы можете взглянуть на исходный код minix 3.это очень простая операционная система, созданная с целью понимания того, как работает операционная система.
вы также можете изучить всю книгу Таненбаума об операционной системе.все они очень полные, и я помню, что к одной книге прилагается полный исходный текст minix с комментариями
Пригодная для использования операционная система может быть разработана поверх L4, даже одним студентом в течение одного семестра наряду с другими курсами (но при этом все проблемы с драйверами уже решены).Я нахожу, что это отличное приключение, и микроядро L4 тоже в некотором роде продвинутое.