Mark Harmstone, auteur du projet WinBtrfs, a publié la version 1.0 du système d'exploitation Moxnox, développé depuis 2022 en tant que hobby. Moxnox est présenté comme un système d'exploitation conçu en tenant compte de Windows NT, assurant une compatibilité avec les standards POSIX, utilisant le système de fichiers Btrfs et atteignant un niveau d'auto-hébergement. Le projet compte environ 130 000 lignes de code en C++ et est distribué sous les licences GPL (noyau et programmes de base), LGPL (bibliothèques) et MIT (modules). Une version est disponible pour les architectures x86-64-v3 et ARMv8.1 (peut fonctionner sur une carte Raspberry Pi 5).
Les appels système et les interfaces de bas niveau dans le noyau sont réalisés à l'image de Windows NT, mais la structure du noyau et les composants associés diffèrent de Windows NT. Il est possible d'exécuter des composants de l'environnement GNU et des programmes écrits pour des systèmes de type Unix. Le format des fichiers exécutables est PE, les bibliothèques portent l'extension dll, et les programmes sont au format exe.
Périphériques matériels supportés :
- Dispositifs de bloc : NVMe, SATA, SDHCI (cartes SD), virtio-block et clés USB.
- Cartes réseau : virtio-net, RTL8168, RTL8125.
- Périphériques d'entrée : virtio-input, USB HID, claviers et souris avec interface PS/2.
- Graphique : virtio-gpu, tampon cadre GOP, VBE, console VGA.
- Console : virtio-console, port série x86, PL011 ARM.
- USB : XHCI.
Actuellement, Moxnox implémente 642 fonctions sur environ 1200 décrites dans la norme POSIX 2024, mais cela suffit pour faire fonctionner des projets tels que gcc, bash, mesa, openssh, openssl, perl, python et rust. La bibliothèque système est formée des fonctions de gnulib, des fonctions mathématiques et cryptographiques de musl, des fonctions de traitement des expressions régulières de tre et des fonctions de type printf de mingw. L'auto-hébergement est supporté, permettant de compiler Moxnox depuis un environnement basé sur Moxnox. L'exécution de programmes Windows n'est pas encore supportée, mais dans le futur, ils envisagent d'utiliser l'implémentation de l'API Win32 à partir de Wine.

Parmi les programmes portés pour Moxnox :
- bash
- binutils
- bison
- bzip2
- cairo
- cmake
- coreutils
- curl
- diffutils
- expat
- fichier
- findutils
- flex
- freetype
- gawk
- gcc (uniquement pour 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
À ce stade du développement, seule une utilisation en mode console est prise en charge, mais une interface graphique est prévue pour l'avenir. De plus, le support d'un environnement multi-utilisateurs, des mécanismes de sécurité, des fuseaux horaires, des dispositions de clavier, des locales et des codages autres que UTF-8 est actuellement absent.
Il est déclaré que le projet ne contient pas de code significatif généré par des outils d'IA, qui n'ont été utilisés que pour effectuer des tâches routinières, telles que la traduction des règles autotools en CMake, le remplacement des appels ioctl par la fonction tcgetwinsize lors du portage de programmes, l'écriture de tests et la recherche d'erreurs dans le code.
Source : opennet.ru
