Comments 10
Спасибо за работу и статью !
1. SeL4 тоже использует термин "IPC" , но там "Process" это на самом деле "Thread", что создаёт путаницу. А у вас это действительно процесс ?
2. Обработка каких прерываний находится в ядре ?
3. весь опасный код вынесен в HAL. А можно подробнее ?
4. Почему GPL, а не AGPL ?
Спасибо за комментарий.
1. Про IPC и «process/thread». В OptimaOS процессная модель: у процесса есть PID, своё адресное пространство, свой набор capabilities, и endpoint привязан к owner PID. Потоки есть, конечно, но это уровень планировщика внутри процесса. Поэтому термин «process» у нас буквальный, без подмены на thread.
2. Какие прерывания сейчас в ядре. В ядре есть базовый interrupt path через IDT, таймерный путь для тиков и планировщика, page fault #14, IPI для SMP (Halt/Init/Call/Resched), плюс hardware-путь для xHCI/MSI(-X) в HAL-части. Дальше логика уходит в userspace через typed IPC.
3. Что значит «unsafe вынесен в HAL». Смысл простой: риск не размазан по коду ядра. Опасные места сидят в узкой аппаратной границе: MMIO/PCI/APIC/UEFI handoff и соседние low-level участки. Остальной kernel-core живёт под жёстким запретом unsafe по умолчанию, у unsafe-блоков есть инварианты и отдельные проверки. Это облегчает аудит, особенно когда трогаем hardware bring- up.
4. Почему GPLv3, а не AGPL. Для ядра главный сценарий — поставка бинарников в устройства. Тут GPLv3 закрывает нужные вещи: copyleft при дистрибуции, anti-tivoization, патентный грант. AGPL больше про сетевой сервис и удалённый доступ к коду, для kernel-слоя это не главный юридический рычаг. Поэтому выбран GPLv3 + двойная лицензия: сообщество получает открытый контур, коммерческий вендор может работать по отдельной лицензии без обязательства публиковать изменения.
Тоже пилю свою операционку. Codex офигенно следует плану, и квота за 200 позволяет 1-2 сессии держать круглосуточно в Ralph loop. В интересное время живём, товарищи. Но статьи всё-таки надо более человечными стараться делать.
Проблема которую решает ОС очень как-то непонятно описана. А то что понятно, вряд-ли можно решить добавлением ещё одной новой ОС, как в комиксе xkcd про 14 стандартов.
Итого ~600 строк unsafe на всё ядро.
Парапарапам, и тут тоже возник unsafe, хотя будет заявлено что всё на намоленном, безопасном расте.
А зачем нужна эта новая ОС? Для чего и для кого она? Ну то есть если ты даже devops, и пользователь linux, зачем нам эта ОС? В начале высер словесный про причину не понял, вы или на английском пишите сразу, или пишите литературным русским языком с описаниями терминов. Мы вам свое внимание подарили, свои минуты жизни, ради вашей статьи, которая нам не помогла. Зачем она нам, и для кого она? Или это праздник тщеславия, где вы молодец, который через нейронки запрограммировал какую-то там ОС, у которой даже контрибютеров не будет.
Все понятно, автор наделал в штаны и минусует каждого. Как много школьников стало на Хабре. Все такие хрупкие личности, что даже не могут вытерпеть критику, но зато смелости публиковать что-то и нам выкладывать, так это пожалуйста. Запомни Хабр это не помойка для буков и слов. Это сайто со статьями. Статьи пишут умные люди, которые хотят своими знаниями помочь другим людям прямо или косвенно.
OptimaOS: архитектура Rust-ядра, которое загружается на реальном железе