Потому что я могу.
Хорошее время - это мое стремление к этому проекту + Я изучаю много классных низкоуровневых вещей вместе с этим!
Ядро Cavos - это монолитный x86_64, написанный в относительно простой C с несколькими битами сборки Intel здесь и там. Он использует загрузчик Limine и использует файловую систему FAT32 для загрузки вместе с ext2 для корневого разделения. Я стараюсь держать структуру кода в чистоте и довольно простой для понимания, избегая при этом слишком большой абстракции. Следовательно, качество кода и ясность иногда приоритеты в результате повышения производительности.
Пользовательская площадь - моя основная цель в то время, когда ядро было довольно стабильным. Я пытаюсь сделать эту ОС как можно ближе к Linux, добавляя свои собственные вещи сверху. Это видно с помощью системных вызовов, которые точно такие же, как у Linux. Это не случайно, я хочу, чтобы Cavos был настолько бинарным совместимым с ним, насколько это возможно!
Нет! Ядро Cavos не делится исходным кодом или заголовками с Linux. Исходный код Linux вытягивается во время сборки пользователя, но только потому, что некоторые сторонние (портовые) программы зависят от его заголовков. Даже тогда фактический код не разделяется.
Важно упомянуть об этих целях, которые никогда не могут быть удовлетворены, потребуются очень много времени, чтобы быть завершенным (мы разговариваем через годы) или никогда не могут быть сделаны вообще. Кроме того, этот список не будет включать каждую функцию, реализованную или запланированную и может быть изменена в любое время ...
systemcall Все в этом можно найти на install.md. Пойдите туда, чтобы получить дополнительную информацию о правильной построении ОС, уборке неиспользованных двоичных файлов и других вещей.
В субботу 2 марта 2024 года. Благодаря многим обходным путям «плохие» решения и властное менталитет «Just Works» я соединил чисто X86 (32-битное) ядро, которое могло бы использовать приложения для пользователей. Все еще держась за старый код (сзади, когда я едва понимал простые концепции, такие как, скажем, Paging), устаревшие библиотеки и много других вещей. Иногда это работало, но я не был удовлетворен.
5:00 вечера; В тот день я решил начать длительный процесс миграции всего в архитектуру x86_64 и сгладить множество проблем с надежностью, которые создали фактические кошмары для отладки. Я в основном достиг определенной точки, чтобы понять, что решения быстрого и дити приводят только к полностью избегаемым ошибкам, которые были чрезвычайно трудно точно определить после добавления огромных количеств абстракций.
Этот проект лицензирован в соответствии с GPL V3 (GNU General Public Public License v3.0). Для получения дополнительной информации перейдите в файл лицензии.