Автор WinBtrfs опубликовал открытую ОС Moxnox 1.0 с ядром в стиле Windows NT

Марк Хармстоун (Mark Harmstone), автор проекта WinBtrfs, опубликовал выпуск операционной системы Moxnox 1.0, разрабатываемой с 2022 года в качестве хобби. Moxnox преподносится как созданная с оглядкой на Windows NT операционная система, обеспечивающая совместимость с POSIX-стандартами, использующая файловую систему Btrfs и достигшая уровня самосборки (self-hosting). Проект насчитывает около 130 тысяч строк кода на языке С++ и распространяется под лицензиями GPL (ядро и базовые программы), LGPL (библиотеки) и MIT (модули). Поддерживается сборка для архитектур x86-64-v3 и ARMv8.1 (может работать на плате Raspberry Pi 5).

Системные вызовы и низкоуровневые интерфейсы в ядре реализованы по образу Windows NT, но структура ядра и сопутствующие компоненты отличаются от Windows NT. Предоставляется возможность для запуска компонентов окружения GNU и программ, написанных для Unix-подобных систем. В качестве формата исполняемых файлов применяется PE, библиотеки имеют расширение dll, а программы — exe.

Поддерживаемые аппаратные устройства:

  • Блочные устройства: NVMe, SATA, SDHCI (SD-карты), virtio-block и USB-накопители.
  • Сетевые карты: virtio-net, RTL8168, RTL8125.
  • Устройства ввода: virtio-input, USB HID, клавиатуры и мыши с интерфейсом PS/2.
  • Графика: virtio-gpu, GOP framebuffer, VBE, VGA-консоль.
  • Консоль: virtio-console, последовательны порт x86, PL011 ARM.
  • USB: XHCI.

В настоящее время в Moxnox реализовано 642 функции из примерно 1200, описанных в стандарте POSIX 2024, но этого достаточно для работы, таких проектов, как gcc, bash, mesa, openssh, openssl, perl, python и rust. Системная библиотека сформирована из функций gnulib, математических и криптографических функций из musl, функций для работы с регулярными выражениями из tre и функций типа printf из mingw. Поддерживается самосборка, позволяющая скомпилировать Moxnox из окружения на базе Moxnox. Запуск Windows-программ пока не поддерживается, но в будущем для их запуска намерены задействовать реализацию API Win32 из Wine.

Среди портированных для Moxnox программ:

  • bash
  • binutils
  • bison
  • bzip2
  • cairo
  • cmake
  • coreutils
  • curl
  • diffutils
  • expat
  • file
  • findutils
  • flex
  • freetype
  • gawk
  • gcc (только для amd64)
  • git
  • gmp
  • gperf
  • grep
  • gzip
  • harfbuzz
  • hexyl
  • jsoncpp
  • less
  • libarchive
  • libiconv
  • libpng
  • librhash
  • libuv
  • llvm
  • m4
  • make
  • mako
  • markupsafe
  • mesa
  • mpc
  • mpfr
  • nano
  • ncurses
  • netcat
  • ninja
  • openssh
  • openssl
  • patch
  • perl
  • pixman
  • python
  • pyyaml
  • readline
  • ripgrep
  • rust
  • sed
  • tar
  • vim
  • wget
  • xz
  • zlib
  • zstd

На данном этапе разработки поддерживается только работа в консольном режиме, но в будущем планируют реализовать и графический интерфейс. Также пока отсутствует поддержка многопользовательского окружения, механизмов обеспечения безопасности, часовых поясов, раскладок клавиатуры, локалей и кодировок, отличных от UTF-8.

Утверждается, что проект не содержит значимого кода, сгенерированного через AI-инструменты, которые использовались только для выполнения рутинной работы, такой как перевод правил autotools в CMake, замена ioctl-вызовов на функцию tcgetwinsize при портировании программ, написание тестов и поиск ошибок в коде.

Источник: http://www.opennet.ru/opennews/art.shtml?num=66552