ΠΠ°ΡΠΊ Π₯Π°ΡΠΌΡΡΠΎΡΠ½ (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 ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ:
- bash
- binutils
- bison
- bzip2
- Kairo
- cmake
- kjerneutiler
- curl
- diffutiler
- expat
- fil
- findutils
- flex
- fritekst
- glaner
- gcc (ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ amd64)
- git
- GMP
- gperf
- grep
- gzip
- harfbuzz
- heksyl
- jsoncpp
- mindre
- libarkiv
- libiconv
- libpng
- librhash
- libuv
- llvm
- m4
- gjΓΈre
- mako
- markeringssafe
- bord
- mpc
- mpfr
- nano
- forbannelser
- nettkatt
- ninja
- openssh
- openssl
- patch
- perl
- pixman
- python
- pyyaml
- readline
- ripgrep
- rust
- tΓΈrste
- tjære
- vim
- wget
- xz
- zlib
- zstd
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠ° Π² ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, Π½ΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΠΏΠ»Π°Π½ΠΈΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠΊΠ° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ, ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΡΠ°ΡΠΎΠ²ΡΡ ΠΏΠΎΡΡΠΎΠ², ΡΠ°ΡΠΊΠ»Π°Π΄ΠΎΠΊ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ, Π»ΠΎΠΊΠ°Π»Π΅ΠΉ ΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΠΎΠΊ, ΠΎΡΠ»ΠΈΡΠ½ΡΡ ΠΎΡ UTF-8.
Π£ΡΠ²Π΅ΡΠΆΠ΄Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠΈΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π· AI-ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΡΠΈΠ½Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΠΏΡΠ°Π²ΠΈΠ» autotools Π² CMake, Π·Π°ΠΌΠ΅Π½Π° ioctl-Π²ΡΠ·ΠΎΠ²ΠΎΠ² Π½Π° ΡΡΠ½ΠΊΡΠΈΡ tcgetwinsize ΠΏΡΠΈ ΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠ΅ΡΡΠΎΠ² ΠΈ ΠΏΠΎΠΈΡΠΊ ΠΎΡΠΈΠ±ΠΎΠΊ Π² ΠΊΠΎΠ΄Π΅.
Kilde: opennet.ru
