Выпуск 9front 10931, ответвления от операционной системы Plan 9

Представлен выпуск операционной системы 9front 10931, опубликованный под кодовым именем “THIS TIME DEFINITELY”. Проект 9front с 2011 года развивает независимый от компании Bell Labs форк распределённой операционной системы Plan 9. Готовые установочные сборки сформированы для архитектур i386, x86_64 и плат Raspberry Pi 1-4. Код распространяется под лицензией MIT. Доступна приуроченная к релизу музыкальная композиция.

Основная идея Plan 9 связана со стиранием различий между локальными и удалёнными ресурсами. Система представляет собой распределённую среду, базирующуюся на трёх базовых принципах: все ресурсы можно рассматривать как иерархический набор файлов; нет различия в доступе к локальным и внешним ресурсам; каждый процесс имеет собственное изменчивое пространство имён. Для создания единой распределённой иерархии файлов-ресурсов используется протокол 9P.

Форк 9front примечателен реализаций дополнительных механизмов защиты, расширением поддержки оборудования, улучшением работы в беспроводных сетях, добавлением новых файловых систем, реализацией звуковой подсистемы и кодировщиков/декодировщиков звуковых форматов, поддержкой USB, созданием web-браузера Mothra, заменой загрузчика и системы инициализации, применением шифрования данных на диске, поддержкой Unicode, наличием эмулятора режима реальных адресов, поддержкой архитектуры AMD64 и 64-разрядного адресного пространства.

Значительные изменения:

  • В инсталляторе включена новая файловая система gefs, созданная специально для Plan 9, поддерживающая снапшоты и оптимизированная для быстрого перебора файлов в очень больших каталогах. ФС спроектирована для сохранения целостности в случае сбоев, таких как экстренное отключение питания, и имеет средства для самодиагностики, не допускающие скрытого повреждения данных и возвращения некорректных данных. При этом gefs полностью совместима с традиционной файловой системой 9p, возможности которой воссозданы с использование режима copy-on-write и структуры Bε-tree.
  • В утилиты ip и ipconfig добавлена поддержка динамического выделения IP-адресов через DHCPv6 и обработки истечения времени действия префиксов для IPv6.
  • Устранена уязвимость CVE-2024-8158, вызванная ошибкой в механизме аутентификации, реализованном в библиотеке lib9p. Уязвимость позволяет пользователю, имеющему учётную запись в системе, выдать себя за любого другого пользователя при работе с файловой системой. Причиной уязвимости является отсутствие должного сопоставления имени пользователя, передаваемого в 9p-сообщениях Tauth и Tattach, с UID-идентификатором клиента, выдаваемом после прохождением пользователем аутентификации. Проблема проявляется во всех версиях 9front (ошибка допущена в коде Plan 9 ещё до создания форка), но затрагивает только конфигурации с файловой системой hjfs (в системах с ФС cwfs и gefs уязвимость не проявляется).
Release. Ссылка here.