Комментарии 10
Поздравляю с работой. Очень неплохо. Тоже как-то пробовал через chatgpt ос на расте делать (не Codex, а именно диалог с thinking 5.5). Делал сначала под arm64, потом добавил risc-v, затем удалил arm и только risc. В конце концов перестал делать не дойдя до результата как у вас. Спасибо что напомнили своей статьей об этом!

Благодарю за комментарий! Я тоже сначала рассматривал RISC-V, но в качестве первой архитектуры в итоге выбрал AArch64 - в перспективе хочу попробовать запустить genrt на Raspberry Pi 4 или похожей плате.
По скриншоту видно, что вы уже успели пройти довольно далеко. Надеюсь, вы ещё вернётесь к проекту. Если репозиторий публичный, было бы интересно посмотреть и сравнить подходы, особенно раннюю загрузку на RISC-V.
Дело хорошее. Но... Начинал свою трудовую деятельность с академического института и некоторые основы подхода сохранились в подкорке до сих пор.
Так вот, создание чего-то нового начинается с исследования а что сейчас вообще есть в этой области. И тут нельзя ограничиваться только чем-то наиболее распространённым - надо смотреть шире. Елси вы хорошо знаете линукс и начнете писать свою ОС - получите тот же линукс (еще один). Ну пусть это будет Wind River Linux или RTLinux. Но не более того.
Попробуйте раскинуть сети шире. Посмотреть другие ОС. Которые совсем другие. Например AS/400 про которую один из ее создателей Френк Солтис писал
Менее года назад я был в Буэнос-Айресе на встрече с группой пользователей этой системы. По окончании встречи молодой репортер газеты «La Nacion» спросил меня: «Сформулируйте, пожалуйста, коротко причины того, почему в AS/400 столь много новшеств?». И я ответил: «Потому что никто из ее создателей не заканчивал MIT.» Заинтригованный моим ответом, репортер попросил разъяснений. Я сказал, что не собирался критиковать MIT, а лишь имел в виду то, что разработчики AS/400 имели совершенно иной опыт, нежели выпускники MIT. Так как всегда было трудно заставить кого-либо переехать с восточного побережья в 70-тысячный миннесотский городок, в лаборатории IBM в Рочестере практически не оказалось выпускников университетов, расположенных на востоке США. И создатели AS/400 — представители «школ» Среднего Запада — не были так сильно привязаны к проектным решениям, используемым другими компаниями.
Или обратите внимание на QNX. Или производную от нее BlackBerry OS10 которая в терминале на uname -a откликалась как QNX 8.0.0.0 Имел счастье быть владельцем BlackBerry Z30 на BBOS 10.3.3 - это просто праздник какой-то... Ни андроид, ни айОС рядом не лежали...
В общем, рассмотрите разные подходы и принципы построения ОС, может какие-то идеи западут в голову - в мире придумано очень много всякого интересного.
Лично мне очень понравилась микроядерная реализация в кьюниксе и объектность (принцип "все есть объект") в АСке наряду с изолированностью заданий, группами активации как подмножеством задания и одноуровневой моделью памяти с практически нулевыми издержками на переключение контекста между заданиями.
Спасибо за развёрнутый комментарий. Согласен, что изучение только Linux и других Unix-подобных систем легко приводит к воспроизведению тех же абстракций.
Linux-подобная модель в genrt сейчас используется как понятная отправная точка, позволяющая пройти весь путь от boot-кода до userspace. Я не рассматриваю её как окончательную архитектуру системы и не ставлю целью написать ещё один Linux.
О QNX я много слышал, но до практического знакомства с ней пока не дошёл — в том числе из-за проприетарной лицензии. С AS/400 я пока вообще не знаком, поэтому обязательно посмотрю материалы о ней и постараюсь разобраться в её подходах. Спасибо за предложенные направления — возьму их на заметку.
С QNX я знаком только поверхностно как бывший обладатель телефона Blackberry Z30.
А вот АС-ка - мой хлеб насущный последние 9 лет :-) Пишу под нее. В камменте ссылка на книжку Солтиса "Основы AS/400". Там очень много технических подробностей как оно устроено внутри.
Понятно, что все это не воспроизвести, но вдруг какие-то идеи возникнут...
С ней даже можно попробовать познакомиться вживую :-) Есть публичный бесплатный сервер PUB400 Достаточно зарегистрироваться и получить логин-пароль. А дальше можно подключаться к серверу телнетом (минимальный вариант) или взять официальный (бесплатный же) пакет IBM i Access Client Solutions в составе которого есть эмулятор терминала IBM5250.
Но там с кондачка может не сразу получиться :-) Специфическая (хотя и очень стройная, логичная и понятная) система команд, вместо файлов объекты разных типов, вместо папок - библиотеки, БЛ интегрирована в систему, компиляторы языков интегрированы в систему. В общем, очень мощная и интересная штука.
Как изменилось время и как сильно изменились инструменты для написания ОС !
Я помню, как более 15 лет назад я лазил гдб-шным отладчиком в дамп и пытался понять, почему мое ядро написанное на ассемблере перманентно перезагружается
А теперь ии сама пишет где надо на чем надо и сама же отлаживает все
О времена, о нравы
Да, я и сам был очень удивлён. Ещё около трёх лет назад мне довелось участвовать в разработке небольшой ОС для 32-битной x86 и отлаживать её на реальном железе — без отладчика, с одним самописным printf, в корректности которого я и сам не всегда был уверен. Сейчас, конечно, совсем другое качество жизни :)

От boot-кода до shell: несколько месяцев разработки ОС на Rust с ИИ-агентами