Moxnox 1.0:NT ライクで POSIX 互換の OS が Btrfs に搭載されたもの

2026/10/28 8:53

Moxnox 1.0:NT ライクで POSIX 互換の OS が Btrfs に搭載されたもの

RSS: https://news.ycombinator.com/rss

要約▶

日本語翻訳:

Moxnox v1.0 は、Windows NT アーキテクチャの堅牢性と POSIX 互換性の間に架け橋となることを目的として設計された愛好家向けオペレーティングシステムです。本プロジェクトは実質的なコードについては人間によって記述され(機械的作業には AI が補助された)、主に人間の手で書かれています。amd64 および ARMv8.1 アーキテクチャ(例:Raspberry Pi 5)で動作し、x86-64-v3 でコンパイルすることで ARM 上での AVX512 または LSE 原子操作を可能にします。システムは btrfs ファイルシステム上で自己ホストされており、これは戦術的強化を受けていない点です;具体的には、ユーザースペースのヒープアロケーターにおけるパフォーマンスボトルネックと、負荷が高い場合における固定された 64KB の TCP ウィンドウサイズという課題があります。インストールにはパーティションの作成(32 GB を推奨)、mkfs.btrfs によるフォーマット、リリースアーカイブタールの抽出、EFI ブートエントリーの設定が必要です。本プロジェクトは NVMe、SATA、SDHCI、virtio-block、複数のネットワークカード(virtio-net、RTL8168/RTL8125)、および複数のグラフィックス/入力オプションを含む広範なデバイスドライバーをサポートしています。ライセンスについては、カーネルは GPL、ファーストパーティ DLL は LGPL、モジュールは MIT です。現在、~49 の主要パッケージのポートをサポートしており(amd64 限定で bash、gcc、python、rust、vim、git などを含む)ますが、POSIX 2024 関数のうち ~1,200 件のうち 642 件のみをサポートしています。また、GUI、複数のユーザー/グループ、セキュリティ機能、および完全な Win32 サポート(特定の kernelbase 関数のみ実装され、バイナリは PE フォーマットで互換性が限定的)がありません。具体的な制限事項には、APC を通じた不完全な信号処理、1 つだけのローカル/キーボードレイアウト、および btrfs コードがまだ負荷の高いワークロード用に最適化されていないという事実が含まれます。

テキストを翻訳する

(必要に応じて;そうでない場合は元のものを繰り返す):

サマリー:

Moxnox v1.0 is a hobbyist operating system designed as a bridge between the robustness of Windows NT architecture and POSIX compatibility, written primarily by humans without AI assistance for substantive code (though AI aided mechanical tasks). It runs on amd64 and ARMv8.1 architectures (e.g., Raspberry Pi 5), compiling with x86-64-v3 to enable AVX512 or LSE atomics on ARM. The system self-hosts on the btrfs filesystem, which has not been battle-hardened; specifically, users face performance bottlenecks in the userspace heap allocator and a fixed 64KB TCP window size under heavy loads. Installation requires creating a partition (32 GB suggested), formatting with mkfs.btrfs, extracting release tarballs, and setting up an EFI boot entry. It supports extensive device drivers including NVMe, SATA, SDHCI, virtio-block, various network cards (virtio-net, RTL8168/RTL8125), and multiple graphics/input options. The project is licensed under GPL for the kernel, LGPL for first-party DLLs, and MIT for modules. It currently ports ~49 major packages (including bash, gcc on amd64 only, python, rust, vim, and git). While it supports 642 of ~1,200 POSIX 2024 functions, it lacks a GUI, multiple users/groups, security features, and full Win32 support (only specific kernelbase functions are implemented; binaries are PE format with limited compatibility). Specific limitations include incomplete signal handling (via APCs), only one locale/keyboard layout, and the fact that its btrfs code is not yet optimized for heavy workloads.

本文

Moxnox v1.0: Windows NT 系設計思想と POSIX 互換の趣味 OS

Moxnox は、Windows NT 様似のアーキテクチャを持ちながら POSIX 互換を実現した趣味のオペレーティングシステムです。 btrfs ファイルシステムを基盤とし、自己ホスト化(自身をビルド環境として利用)に対応しています。

システムの特徴

  • 設計思想: システムコールの選択やアーキテクチャは Windows NT をモデルとしています。
  • 互換性: 再コンパイルされたソフトウェアであれば Unix アプリも動作し、完全な GNU ベースシステムを搭載しています。
  • 自己ホスト化: 十分に成熟しており、Moxnox 上で Moxnox 自身をビルドすることが可能です。
  • ファイルシステム: Linux で愛されている btrfs を採用しています。

バージョン情報とプラットフォーム

  • ソースコード規模: C++ で約 13 万行。
  • 対応アーキテクチャ:
    amd64
    および
    aarch64
    。
  • ファイルシステム注意: btrfs コードは基本動作には問題ありませんが、実戦でしわ寄せされた状態(battle-hardened)ではないため、使い捨てのファイルシステムとしてマウントする以外はご遠慮ください。

起動方法

x86_64 (AMD64) アーキテクチャ

QEMU でテストするには、以下のファイルをダウンロードしてください。

  • moxnox-amd64-1.0.img.gz
  • moxnox-kernel-amd64-1.0.efi

まずイメージファイルを圧縮解除します:

gunzip moxnox-amd64-1.0.img.gz

その後、以下のコマンドを実行します(メモリ不足で動作しない場合は

-m 2048
など大きく設定してください):

qemu-system-x86_64 -M q35 -enable-kvm -cpu host -m 1024 \
  -smp cores=4,threads=1 \
  -kernel moxnox-kernel-amd64-1.0.efi \
  -append "root=/dev/sda" \
  -device ich9-ahci,id=ahci -drive id=disk,file=moxnox-amd64-1.0.img,if=none \
  -device ide-hd,drive=disk,bus=ahci.0 \
  -nic user,model=virtio-net-pci \
  -device qemu-xhci \
  -device usb-kbd,id=kbd \
  -device usb-tablet,id=tablet \
  -serial stdio

ARM (AArch64) アーキテクチャ

ARM 環境での起動コマンドは以下の通りです:

qemu-system-aarch64 -M virt -cpu cortex-a76 -m 1024 \
  -smp cores=4,threads=1 \
  -kernel moxnox-kernel-aarch64-1.0.efi \
  -append "root=/dev/sda" \
  -device ich9-ahci,id=ahci -drive id=disk,file=moxnox-aarch64-1.0.img,if=none \
  -device ide-hd,drive=disk,bus=ahci.0 \
  -nic user,model=virtio-net-pci \
  -drive if=pflash,unit=0,file=/usr/share/qemu/edk2-aarch64-code.fd,readonly=on \
  -device qemu-xhci \
  -device usb-kbd,id=kbd \
  -device usb-tablet,id=tablet \
  -serial stdio

インストール方法

パーティション作成には

gparted
などのツールを使用してください。32 GB 程度あれば十分です。 以下のパス
/dev/nvme0n1p99
は例ですので、実環境に合わせて変更してください。 ※古いバージョンの
btrfs-progs
ではサポートされていない設定があるため、最新版をご用意ください。

ルートドライブの準備

# mkfs.btrfs /dev/nvme0n1p99
# mkdir /mnt/moxnox
# mount /dev/nvme0n1p99 /mnt/moxnox
# cd /mnt/moxnox
# wget https://github.com/maharmstone/moxnox/releases/download/v1.0/moxnox-amd64-1.0.tar.gz
# tar -xvzf moxnox-amd64-1.0.tar.gz
# rm moxnox-amd64-1.0.tar.gz
# cd
# umount /mnt/moxnox

カーネルのコピー

EFI ファイルをマウントしてダウンロードします:

# mount /boot/efi
# cd /boot/efi
# wget https://github.com/maharmstone/moxnox/releases/download/v1.0/moxnox-kernel-amd64-1.0.efi

ブートエントリーのインストール

EFI バイアスでブートエントリーを登録します:

# efibootmgr -c -d /dev/nvme0n1 -p 1 -L "Moxnox" \
  -l '\moxnox-kernel-amd64-1.0.efi' \
  -u 'root=/dev/nvme0n1p99'

注意点:

efibootmgr
は起動順序を自動的に変更してしまいがちですが、望ましくないためご注意ください。Linux と Moxnox ではブロックデバイスの名前がほぼ一致します。 この EFI ファイルは多言語対応ファイル(polyglot)であり、Linux のブートプロトコルにも準拠しているため、非 EFI GRUB でも動作する可能性があります(未検証)。


ハードウェアサポート

amd64 向け

  • コンパイル目標:
    x86-64-v3
    。2015 年頃以降の製品に対応しています。
  • AVX512: 自動的に検出・有効化を行います。
  • QEMU 設定: 古すぎるデフォルト設定ではなく、
    q35
    マシンタイプ
    を指定してください(microvm も動作)。

aarch64 向け

  • 要件: LSE アトミクスを使用するため、ARMv8.1 が必須です。Raspberry Pi 5 は対応、それ以前は非対応。
  • ブートロадマップ: ACPI のみサポートし、Device Tree は対応しません。Raspberry Pi 5 の場合は rpi5-uefi も必要です。
  • QEMU 設定:
    raspi5
    マシンタイプはありませんが、
    virt
    または
    sbsa-ref
    で動作します。

デバイスサポート一覧

カテゴリ対応デバイス
ブロックデバイスNVMe, SATA, SDHCI (SD カード), virtio-block, USB ストレージ
ネットワークカードvirtio-net, RTL8168, RTL8125
入力デバイスUSB HID, PS/2 キーボード/マウス, virtio-input
グラフィックスvirtio-gpu, GOP フレームバッファ, VBE, VGA テキストコンソール
シリアルポートvirtio-console, x86 シリアルポート, PL011 ARM シリアルポート
USBXHCI

ビルド方法

最も簡単な方法は、クロスコンパイラが用意された Docker コンテナを使用することです。

# amd64 向け
$ git clone https://github.com/maharmstone/moxnox-ci-amd64
# または aarch64 向け
$ git clone https://github.com/maharmstone/moxnox-ci-aarch64

コンテナ内でソースを取得:

$ git clone https://github.com/maharmstone/moxnox
$ cd moxnox

サブモジュールの更新

  • 最小限:
    $ git submodule update --init --depth 1 ports/acpica/repo ports/freetype/repo ports/gnu-efi/repo ports/harfbuzz/repo ports/libpng/repo ports/mingw-w64/repo ports/zlib/repo ports/musl/repo ports/tre/repo
    
  • すべて: (時間がかかります)
    $ git submodule update --init --recursive
    

ビルド実行

**必ず Ninja ジェネレーターを指定してください。**C++ モジュールを使用しているため、

Unix Makefiles
は動作しません。

# x86_64 向け
$ mkdir build
$ cd build
$ cmake -DCMAKE_TOOLCHAIN_FILE=amd64.cmake -GNinja ..

# aarch64 向け
$ cmake -DCMAKE_TOOLCHAIN_FILE=clang-aarch64-native.cmake -GNinja ..

Moxnox 上で直接ビルドする場合は、ツールチェーンファイルを指定する必要はありません(

cmake -GNinja ..
)。

注記: gcc、llvm、rust は明示的に要求されていない限りコンパイルされません。

hexyl
と
ripgrep
は Rust に依存するため特別に必要です。 Moxnox 上でビルド中の CMake から
rust-libc
の警告が出た場合は、Rust のサブモジュールをチェックアウトしていないことを確認してください。


ライセンス構成

  • カーネル・ファーストパーティプログラム: GPL
  • ファーストパーティ DLL: LGPL
  • modules ディレクトリ: MIT
  • 各ポートサブモジュールの詳細については、それぞれのパッケージをご覧ください。

ポート済みソフトウェア (リスト)

現在対応している主要なソフトウェアツールです:

  • 開発ツール: bash, binutils, cmake, gcc (amd64), git, make, ninja, rust
  • システム utils: coreutils, findutils, grep, gzip, xz, tar, wget
  • 言語・スクリプト: python, perl, gawk, bison, flex, m4
  • ネットワーク: curl, openssh, netcat, libuv, openssl
  • データベース/JSON: jsoncpp, libarchive
  • グラフィックス/フォント: cairo, freetype, harfbuzz, mesa, pixman, zlib, zstd
  • その他: bzip2, diffutils, expat, file, flex, gperf, hexyl, less, libiconv, libpng, librhash, mako, markupsafe, mpc, mpfr, patch, ripgrep, sed, vim

よくある質問 (FAQ)

Q: 何がまだ不足していますか?

現在のバージョン 1.0 で特に不足している機能です:

  • GUI
  • タイムゾーン・多言語キーボードレイアウト・ローカライゼーション(非 UTF-8)
  • セキュリティ機能、複数ユーザー/グループサポート
  • パフォーマンス: ヒープアロケータの低速、TCP 速度、LRU システムの不備など。

Q: Windows NT への互換性はどの程度ですか?

システムコールや低レベルインターフェースは NT と一致しますが、構造は異なります(ReactOS のような完全再現ではありません)。

  • バイナリ形式: PE フォーマット (
    .exe
    ,
    .dll
    )。C++ エクセプションは SEH 経由。シグナルは APC で実装。
  • 呼出規約: RCX, RDX, R8, R9 を使用(Windows と一致)。型サイズも Windows に準拠 (
    sizeof(long)
    など)。
  • 制限: トークン、レジストリ、I/O 完了ポートは不足しています。仮想ファイルシステム (NtCreateFile の
    .
    ,
    ..
    ) は実装していません。

Q: POSIX への互換性はどの程度ですか?

POSIX 2024 の約 1,200 機能のうち 642 を実装しています(gnulib で補完)。

  • Windows 固有ライブラリ (
    ucrtbase
    など) と POSIX 機能 (
    mnposix
    ) が分散配置。
  • Linux 由来の機能(dentry キャッシュ、大型フォリオ、evdev)を採用。
  • 制限:
    AF_UNIX
    は半分完成(socketpair は動作)、
    mkfifo
    の I/O バッファリング不足など。

Q: sshd をどう起動しますか?

自動起動機能はありませんので、手動です。

  1. ホストキーを生成。
  2. /root/.ssh/authorized_keys
    に公開鍵を追加(パスワード認証はまだ不可)。
  3. 完全パスを使用して
    sshd
    を起動してください。

Q: Windows プログラムを動かすことは可能ですか?

現状では不可能です。Win32 DLL は意図的に実装していません。将来的には Wine の DLL を移植する検討がありますが、wine サーバーや

ntdll
自体は不要です。

Q: これはどれほど雑ですか?

コードの半分近くを AI が書いたわけではありません。AI はツールの翻訳やテスト作成に利用しています。

  • Claude: コミットレビューにおいて、メモリリークやデッドロックを指摘し、改善提案を行っています。

Q: なぜこれを作りましたか?

  • 純粋な楽しさと、「物事がどう機能するかを理解する」ためです。
  • NT カーネルの評価が不当に低く知られていないと感じたためです。
  • Windows が POSIX 互換を避けてしまう現状に対し、イベント fd や pidfd などの現代機能を備えた「望ましい Windows」の姿を追求しました。

同じ日のほかのニュース

一覧に戻る →

2026/10/28 1:06

ジェニー 4

## Japanese Translation: 提供された入力データは、二進データ、制御文字およびランダムなバイト列のみを含んでおり、これは破損したファイルまたは無効なエンコーディングである可能性が高く、可読な英語テキストではありません。そのため、このソースから IT ニュース、検証可能なレポート、業界動向、市場インサイト、企業活動、物語的文脈、または将来の予測を抽出することはできず、ファイルを修復するか、有効なテキストで置き換えるまでには至りません。

2026/10/28 1:51

Ghostty 1.4

## Japanese Translation: 以下の改良された要約は、完備性を保ちつつ明確さを維持するために、すべての主要なポイントを統合したものです。 **Improved Summary:** Ghostty 1.4.0 は、完全な Kitty グラフィックス互換性の実装により転換点となるリリースであり、スクロールバック圧縮を通じたメモリ使用量の大幅な最適化および macOS I/O パフォーマンスの向上を実現しています。このバージョンは、公式 CVE ナンバーリングは待機中ですが、ペースト保護バイパス、悪意のあるグラフィックスによるクラッシュ、tmux 制御エクスプロイト、そして不安全なハイパーリンクを含む重大なセキュリティ脆弱性を解消しています。戦略的な大きな転換点は、ネイティブの Windows GUI ロードマップを断念し、代わりに Windows への導入がクロスプラットフォームの `libghostty-vt` ライブラリに依存することにあります。このライブラリは macOS、Linux、Windows のサポートに加えられ、1.0 リリースを目指して更新されています。プロジェクトはまた、最初の 2 つの契約を通じて長期的な資金調達が完了しました。ただし、Ubuntu 24.04 ユーザーは厳格化された GTK 4.18 要件により即座の互換性の障壁に直面しており、旧バージョンの使用か Flatpak を通じて利用する必要があります。主要な新機能には、完全な Kitty クリップボードプロトコルサポート(画像/HTML)、プログラムステータス報告のための最初のターミナル仕様、`ghostty +ssh` を通じた強化された SSH 統合、および xterm/esctest 準拠の向上が含まれます。ビルドツールチェーンは Zig 0.17 に更新されました。macOS 27 (Golden Gate) のサポートが追加され、macOS 13 (Ventura) は 2025 年秋まで引き続きサポートされます。最後に、このリリースにはバスク語、ベラルーシ語、デンマーク語、セルビア語のローカライゼーションが含まれています。

2026/10/26 3:49

動くインク滴がニコン・スモール・ワールドコンテストで最高賞を受賞

## Japanese Translation: オレ・バイエルフルドットが、インクジェットプリンタが紙にインクを吐出する様子を捉えた着想豊かな顕微鏡写真により、第52回ニコル・スモールワールド競技大会の優勝者に選ばれました。これにより、顕微鏡が科学的発見と芸術的創造性の両面で強力なツールであることを証明しました。 Nikon Instruments のスポークスマンであるエリック・フレムは、同作が技術的な精密さと芸術性を巧みに融合させ、普通に見える物体にも新たな視点を明らかにしていることを称賛しました。 この成成は、1974年の創立以来の競技大会史上における重要なマイルストーンとなり、2011年に伝統的な写真撮影に並行してフォトビデオグラフィーを導入した「Small World in Motion」カテゴリーのような過去の革新を偲ばせます。上位10名の受賞者が発表され、オンライン上で功労者メンションを含む完全なリストが公開されています。 今後を見据えて、ニコンはこの勝利を祝うために、バイエルフルドットの特定の画像を2027年のフルカラーカレンダーの主たる芸術作品として採用する予定です。 このカレンダーには、直近の2026年競技大会の結果から選出された画像がまとめられています。 この認識は、ニコンのブランドアイデンティティを強化するだけでなく、写真界に新しいインスピレーションを提供し、標準的な実験室用途を超えた顕微鏡 objetiva の新奇かつ創造的な利用を探求することを促すものです。

Moxnox 1.0:NT ライクで POSIX 互換の OS が Btrfs に搭載されたもの | そっか~ニュース