Марк Хармстоун (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 програм:
- бити
- бінутіли
- бізон
- bzip2
- cairo
- cmake
- coreutils
- витися
- diffutils
- емігрант
- файл
- findutils
- flex
- вільний тип
- гаук
- gcc (тільки для amd64)
- мерзотник
- ГМП
- gperf
- GREP
- gzip
- harfbuzz
- гексил
- jsoncpp
- менше
- бібліотека
- лібіконв
- libpng
- librhash
- libuv
- llvm
- m4
- зробити
- мако
- markupsafe
- їдальня гора
- MPC
- mpfr
- нано
- ncurses
- netcat
- ніндзя
- OpenSSH
- OpenSSL
- ділянку
- Perl
- pixman
- пітон
- pyyaml
- читальна лінія
- рипгреп
- іржа
- sed
- дьоготь
- натиск
- Wget
- xz
- zlib
- zstd
На цьому етапі розробки підтримується лише робота у консольному режимі, але у майбутньому планують реалізувати і графічний інтерфейс. Також поки відсутня підтримка розрахованого на багато користувачів оточення, механізмів забезпечення безпеки, часових поясів, розкладок клавіатури, локалей і кодувань, відмінних від UTF-8.
Стверджується, що проект не містить значущого коду, згенерованого через AI-інструменти, які використовувалися тільки для виконання рутинної роботи, такий як переклад правил autotools у CMake, заміна ioctl-дзвінків на функцію tcgetwinsize під час портування програм, написання тестів та пошук помилок у коді.
Джерело: opennet.ru
