Mark Harmstone, autor projektu WinBtrfs, opublikował wersję systemu operacyjnego Moxnox 1.0, rozwijanego od 2022 roku jako hobby. Moxnox prezentuje się jako system operacyjny stworzony z myślą o Windows NT, zapewniający zgodność z normami POSIX, wykorzystujący system plików Btrfs i osiągający poziom samodzielnego hostingu (self-hosting). Projekt liczy około 130 tysięcy linii kodu w języku C++ i jest dystrybuowany na licencjach GPL (jądro i podstawowe programy), LGPL (biblioteki) i MIT (moduły). Wsparcie dla architektur x86-64-v3 i ARMv8.1 (może działać na płycie Raspberry Pi 5).
Wywołania systemowe i niskopoziomowe interfejsy w jądrze są zrealizowane na wzór Windows NT, jednak struktura jądra i towarzyszące komponenty różnią się od Windows NT. Umożliwia uruchomienie komponentów środowiska GNU oraz programów stworzonych dla systemów Unix-podobnych. Format plików wykonywalnych to PE, biblioteki mają rozszerzenie dll, a programy — exe.
Obsługiwane urządzenia sprzętowe:
- Urządzenia blokowe: NVMe, SATA, SDHCI (karty SD), virtio-block i napędy USB.
- Karty sieciowe: virtio-net, RTL8168, RTL8125.
- Urządzenia wejściowe: virtio-input, USB HID, klawiatury i myszy z interfejsem PS/2.
- Grafika: virtio-gpu, GOP framebuffer, VBE, konsola VGA.
- Konsola: virtio-console, port szeregowy x86, PL011 ARM.
- USB: XHCI.
Obecnie w Moxnox zaimplementowano 642 funkcje z około 1200 opisanych w standardzie POSIX 2024, co wystarcza do działania takich projektów jak gcc, bash, mesa, openssh, openssl, perl, python i rust. Biblioteka systemowa składa się z funkcji gnulib, funkcji matematycznych i kryptograficznych z musl, funkcji do obsługi wyrażeń regularnych z tre oraz funkcji typu printf z mingw. Wsparcie dla samodzielnego hostingu umożliwia skompilowanie Moxnox z środowiska opartego na Moxnox. Uruchamianie programów Windows na razie nie jest wspierane, ale w przyszłości planowane jest wykorzystanie implementacji API Win32 z Wine.

Wśród przeniesionych programów dla Moxnox są:
- bash
- binutils
- bison
- bzip2
- cairo
- cmake
- coreutils
- curl
- diffutils
- expat
- plik
- findutils
- flex
- freetype
- gawk
- gcc (tylko dla amd64)
- sshpass
- 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
- . Wersje ICU są nieistotne.
- xz
- zlib
- zstd
Na obecnym etapie rozwoju obsługiwany jest jedynie tryb konsolowy, ale w przyszłości planowane jest wprowadzenie interfejsu graficznego. Na razie brak jest również wsparcia dla wieloosobowego środowiska, mechanizmów zabezpieczeń, stref czasowych, układów klawiatury, lokalizacji i kodowań innych niż UTF-8.
Twierdzi się, że projekt nie zawiera znaczącego kodu wygenerowanego przez narzędzia AI, które były używane jedynie do wykonywania rutynowych zadań, takich jak konwersja reguł autotools na CMake, zastępowanie wywołań ioctl funkcją tcgetwinsize podczas portowania programów, pisanie testów i wyszukiwanie błędów w kodzie.
Źródło: opennet.ru
