Mark Harmstone, autore del progetto WinBtrfs, ha pubblicato il rilascio del sistema operativo Moxnox 1.0, sviluppato dal 2022 come hobby. Moxnox si presenta come un sistema operativo progettato con riferimento a Windows NT, garantendo compatibilità con gli standard POSIX, sfruttando il file system Btrfs e raggiungendo il livello di auto-assemblaggio (self-hosting). Il progetto conta circa 130.000 righe di codice in C++ e viene distribuito sotto licenze GPL (nucleo e programmi di base), LGPL (librerie) e MIT (moduli). È disponibile una build per le architetture x86-64-v3 e ARMv8.1 (può funzionare sulla scheda Raspberry Pi 5).
Le chiamate di sistema e le interfacce a basso livello nel nucleo sono realizzate ispirandosi a Windows NT, ma la struttura del nucleo e i componenti accessori differiscono da Windows NT. È possibile eseguire componenti dell'ambiente GNU e programmi scritti per sistemi simili a Unix. Viene utilizzato il formato dei file eseguibili PE, le librerie hanno estensione dll e i programmi — exe.
Dispositivi hardware supportati:
- Dispositivi a blocchi: NVMe, SATA, SDHCI (schede SD), virtio-block e unità USB.
- Schede di rete: virtio-net, RTL8168, RTL8125.
- Dispositivi di input: virtio-input, USB HID, tastiere e mouse con interfaccia PS/2.
- Grafica: virtio-gpu, GOP framebuffer, VBE, console VGA.
- Console: virtio-console, porta seriale x86, PL011 ARM.
- USB: XHCI.
Attualmente in Moxnox sono implementate 642 funzioni su circa 1200 descritte negli standard POSIX 2024, ma questo è sufficiente per eseguire progetti come gcc, bash, mesa, openssh, openssl, perl, python e rust. La libreria di sistema è costituita da funzioni di gnulib, funzioni matematiche e crittografiche da musl, funzioni per l'elaborazione delle espressioni regolari da tre e funzioni simili a printf da mingw. È supportato l'auto-assemblaggio, che consente di compilare Moxnox da un ambiente basato su Moxnox. Il supporto per l'esecuzione di programmi Windows non è ancora attivo, ma in futuro si prevede di utilizzare l'implementazione dell'API Win32 da Wine per eseguirli.

Tra i programmi portati su Moxnox ci sono:
- bash
- binutils
- bison
- bzip2
- cairo
- cmake
- coreutils
- curl
- diffutils
- expat
- file
- findutils
- flex
- freetype
- gawk
- gcc (solo per 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
In questa fase dello sviluppo, è supportata solo l'esecuzione in modalità console, ma in futuro è prevista l'implementazione di un'interfaccia grafica. Inoltre, attualmente non è supportato un ambiente multiutente, meccanismi di sicurezza, fusi orari, layout di tastiera, locali e codifiche diverse da UTF-8.
Si afferma che il progetto non contenga codice significativo generato tramite strumenti AI, che sono stati utilizzati solo per svolgere lavori di routine, come la traduzione delle regole autotools in CMake, la sostituzione delle chiamate ioctl con la funzione tcgetwinsize durante il porting dei programmi, la scrittura di test e la ricerca di errori nel codice.
Fonte: opennet.ru
