Марк Хармстоун (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 программ:
- darbe
- binutils'ler
- bizon
- bzip2
- Kahire
- yapmak
- Coreutils
- kıvırmak
- diffutils
- expat
- dosya
- Findutils
- esnek
- serbest tip
- ahmak
- gcc (только для amd64)
- git
- gmp
- gperf
- grep
- gzip
- harfbuzz
- heksil
- jsoncpp
- az
- libarcı
- libiconv
- libpng
- librhash
- libuv
- llvm
- m4
- yapmak
- mako
- işaretleme güvenliği
- düz tepe
- mpc
- mpfr
- nano
- ncurses'in
- netcat'in
- ninja
- openssh
- openssl
- yama
- perl
- Pixman
- piton
- piyaml
- taleb
- ripgrep
- pas
- susuzluk
- katran
- gayret
- wget
- xz
- zlib
- zstd
На данном этапе разработки поддерживается только работа в консольном режиме, но в будущем планируют реализовать и графический интерфейс. Также пока отсутствует поддержка многопользовательского окружения, механизмов обеспечения безопасности, часовых поясов, раскладок клавиатуры, локалей и кодировок, отличных от UTF-8.
Утверждается, что проект не содержит значимого кода, сгенерированного через AI-инструменты, которые использовались только для выполнения рутинной работы, такой как перевод правил autotools в CMake, замена ioctl-вызовов на функцию tcgetwinsize при портировании программ, написание тестов и поиск ошибок в коде.
Kaynak: opennet.ru
