Луна Ос
Moon OS-это модульная микропронсель, нацеленная на архитектуру X86_64 и ARMV6, стремясь быть похожим на POSIX в будущем.

Скриншоты:
Bootsplash:
Verbose boot:
Паника ядра: 
Функции
- Поддержка нескольких архитектур:
- x86_64 ПК с поддержкой ACPI
- 4 уровня пейджинг
- Stacktrace/Symbol Backtrace
- зонированный приятель и распределитель плиты.
- Системные вызовы через
syscall (без поддержки системных вызовов на основе int )
- Nintendo 3DS (ARMV6)
- Драйвер I2C
- Бутром Ivt
- Рендеринг струн на дисплей
Общие функции (обе архитектуры поддерживают это):
- Ubsan
- Расширенные аргументы загрузки (тихо/словес)
- Эльфийский погрузчик
- Примитивный планировщик (будет улучшен сверхурочно, сейчас мое внимание уделяется тому, чтобы все запустить и запустить (IPC, серверы, LIBC и т. Д.))
Будущие функции:
- Нить
- Касан
- ACPI
- SMBIOS
- Многозадачность
- Многие драйверы оборудования, включая, помимо прочего:
- Сетевые карты
- Драйверы хранения
- Графические графические процессоры
- И гораздо больше
- LIBC для пользователя
В ближайшем будущем список Todo
- Лучше использовать APIC (в настоящее время он используется только для таймера)
- Подсистема виртуальной памяти
- Новый менеджер физической памяти? (Неуверенный.)
В настоящее время это работает:
- Планировщик
- МПК
- Портировка MLIBC
- Initrd
- В библиотеке декомпрессии ядра для распадки инициации
- Нативная (сборка Machine) программа для создания и добавления файлов (для поддержания достойной модульности) в initrd.
- Загрузите и отображайте изображение из initrd (TGA, BMP)
- Новые дополнения, чтобы сделать порт ARMV6 намного более полезным (драйвер SD Card, GPU, VBLANK)
Прохождение каталога:
- LIBS/ - Утилиты, не строго связанные с ядром (планировщик, менеджер памяти и т. Д.), Но требуется для его функционирования.
- ядро/ - исходный код ядра
- загрузка/ - все, что нужно луне, чтобы загрузить
- Сервис/-Специальные серверы микрокнеля + libc
- userspace/-файлы загрузчика, конфигурации, модули и т. Д. Многие файлы автоматически добавляются во время сборки.
Установка
Здание: (при условии, что вы используете дистрибуцию на основе Debian)
Мое путешествие: (вдохновение для новичков)
Я всегда хотел сделать ОС, поэтому однажды я решил построить ее. Оказывается, это большая работа, и тогда это полностью ошеломило меня до такой степени, что я делал долгие перерывы (в течение нескольких месяцев), потому что информация была настолько скудной, и то, что там устарело.
Я написал около 4 «ядра» во время учебного опыта по развитию ОС, и каждый раз, когда я начинал все заканчивая, потому что я был слишком перегружен- никто не проходил мимо GDT:/ (черт возьми, некоторые, где просто загрузчики, которые называли запись ядра и зациклены)
Если вы новичок, стремясь понять, что делает этот код и как вы можете написать свое собственное ядро с актуальной информацией, пожалуйста, присоединяйтесь к серверу Discord Osdev (связанный в вики Osdev внизу) и не сдавайтесь, когда он сначала станет трудно.
Я начал разрабатывать ядра около 8 месяцев назад во время написания (с многочисленными перерывами между ними), и у меня все еще есть много вещей, которые нужно учиться, однако моя try harder оказалось полезным, чтобы помочь мне преодолеть борьбу и написать ядро, за что мне не нужно было красть или копировать код из учебных пособий или других проектов из-за отсутствия знаний.
Я надеюсь, что это вдохновило вас на использование этого мышления, когда все кажется слишком сложным для управления.
Удачи ~ v01d (Тим).
Особая благодарность
- Спасибо, как сайты, такие как Lowlevel.eu или Wiki Osdev, а также несколько крутых и действительно полезных разработчиков ОС на GitHub и Discord.
Закончивое прикосновение (ресурсы, которые я использую)
- https://www.cs.cmu.edu/~ralf/files.html
- https://ethv.net/workshops/osdev/notes/notes-3.html
- https://osdev.wiki (Barebones, но современный Osdev Wiki)
- https://wiki.osdev.org