NixOctet
  • Home

NixOctet Blog

Featured

KDE Plasma環境に完全に調和する。PythonとQt6で開発したLinux向けISO書き込みツール「IsoKast」を公開しました

kayo Application 2026年06月19日 参照数: 8

開発の背景とLinuxにおけるストレージ操作のジレンマ

Linuxデスクトップ環境を日常的に利用している皆様、とりわけKDE Plasma環境を愛用している皆様にとって、システムツールの選択は常に悩ましい問題ではないでしょうか。USBメモリを初期化して新しいファイルシステムを構築したり、新しいOSを試すためにインストール用ISOメディアを作成したりする作業は、Linuxユーザーであれば誰もが定期的に行うタスクです。

これまで、多くのユーザーはターミナルを開いて dd コマンドや mkfs コマンドを直接入力してきました。確かにコマンドラインは強力ですが、デバイス名を一つ間違えるだけでシステム全体を破壊してしまう危険性を常に孕んでおり、実行時に毎回神経をすり減らす作業でもあります。

一方で、安全のために既存のGUIツールを使おうとすると、今度は別の不満が生まれます。機能が多すぎて操作が複雑であったり、Web技術をベースにしたElectron製で動作が重かったりします。何より、普段美しくカスタマイズしているKDEデスクトップのテーマから、そのツールだけが不自然に浮いてしまうという視覚的な違和感は、多くのLinux愛好家が感じてきたことでしょう。

IsoKastとは何か:直感的な操作とKDE環境への完全な調和

IsoKast


このような長年の課題を解決し、日常的なストレージ操作をより安全で、直感的で、そして美しい体験に変えるために開発したのが、新しいネイティブアプリケーション 「IsoKast」 です。

IsoKastは、USBドライブの多機能フォーマッターとISOイメージの書き込みツールを一つに統合したソフトウェアです。開発言語にはPython(バージョン3.11以上)を採用し、ユーザーインターフェースの構築にはPyQt6を用いています。バージョン1.0.4として、MITライセンスのもとGitHubで公開しました。

本ツールの最大のコンセプトであり、最もこだわった部分は、KDE環境への完全な調和です。IsoKastは独自の奇抜なデザインを持たず、システムのカラーパレットやBreezeテーマ、標準のアイコンセットを自動的に引き継ぎます。これにより、まるで最初からKDEに組み込まれていた公式システムツールであるかのような、自然で洗練された操作感を提供します。

ユーザー体験を損なわないスマートな挙動と主要機能


ユーザー体験を損なわないための工夫は、見た目だけにとどまりません。例えば、USBメモリをパソコンに接続したり取り外したりした際の挙動です。IsoKastは、pyudev というライブラリを利用してバックグラウンドでデバイスの状態を常に監視しています。そのため、USBを挿し込んだ瞬間にアプリケーションの画面がフリーズすることなく、対象ドライブのドロップダウンリストがリアルタイムで更新されます。手動で更新ボタンを探して押す手間はもう必要ありません。

実用性の面でも、プロフェッショナルな要求に応える機能を備えています。

  • 用途に合わせて選べる9種類のファイルシステム WindowsやMacとのデータ受け渡しに必須となるFAT32、exFAT、NTFSはもちろんのこと、Linuxネイティブの安定した標準フォーマットであるext4、さらにはスナップショット機能などで注目されるBtrfsやXFS、フラッシュメモリに最適化されたF2FSなど、合計9種類の幅広いファイルシステムを簡単なメニューから選択してフォーマットできます。

  • 容量不足を未然に防ぐ安全なISO書き込み設計 OSのイメージファイルを書き込む際にも安全面を深く考慮しました。選択したISOファイルのサイズと、対象となるUSBドライブの物理的な容量をプログラムが事前に比較します。これにより、数十分かけて書き込みを行った後に容量不足で失敗するという悲劇や、誤ったドライブを選択してしまうリスクを大幅に軽減しています。

  • 技術的工夫:特権昇格パスワードの要求を1回に抑えるアーキテクチャ
    LinuxでのGUIシステムツール開発において、root権限の扱いは非常に難しい問題です。通常、マウント解除、パーティションテーブルの作成、フォーマット処理といったコマンドを順番に実行すると、その都度パスワードを求められてしまい、ユーザーの作業を著しく阻害します。

IsoKastでは、これら一連のコマンドをバックグラウンドで単一のBashスクリプトとして動的に生成し、一括で実行する独自のアーキテクチャを採用しました。これにより、pkexec によるパスワード入力画面の表示を最初の1回のみに抑え、非常にスムーズな作業フローを実現しました。さらに、重い処理中も非同期のワーカースレッドを使用しているため、進捗を示すプログレスバーが滑らかに動き続けます。

導入方法とNixOS環境へのネイティブなサポート


IsoKastの導入は非常に簡単です。Python環境と、バックグラウンドで処理を行うための一般的なシステムツール(parted や各種 mkfs コマンド群)がインストールされていれば、UbuntuやArch Linux、Fedoraなどの主要なLinuxディストリビューションですぐに実行可能です。

Bash

git clone https://github.com/forestnote/IsoKast.git
cd IsoKast
python IsoKast.py

 

また、システム環境を汚さずに隔離された状態でテストを行いたい開発者のために、依存パッケージやQt6のWayland環境変数を完璧に設定した shell.nix ファイルも同梱しています。これにより、再現性の高いクリーンな環境で即座にアプリケーションを試すことができます。

おわりに


コマンドラインの強力さと、ネイティブGUIの親しみやすさを両立させたIsoKastが、皆様のLinuxデスクトップでの作業をよりスマートで快適なものにすることを願っています。ぜひ一度お手元の環境で動作を試し、その使い心地を体感してみてください。

もし気に入っていただけましたら、GitHubのスターを押していただけると、今後の機能追加や改善に向けた大きな開発のモチベーションになります。皆様からのフィードバックをお待ちしております。

https://github.com/forestnote/IsoKast

 
Featured

MMUを捨てよ、コンパイラを信じよ:Rustが切り拓く次世代SASOS『PangeaOS』の全貌

kayo PangeaOS 2026年06月20日 参照数: 1

私はこれまで、Python、C、C++と様々な言語の深淵を覗き、世界規模のプロジェクトでコードを書き続けてきました。そして現在、私がエンジニアとしての全精力を注ぎ込んでいるライフワークとも呼べるビッグプロジェクトがあります。それが、RustプログラミングによるOSのフルスクラッチ開発です。

本日、その集大成であり、既存のOSアーキテクチャの常識に対する挑戦状でもある「PangeaOS」の全貌を皆さんに公開します。PangeaOSは、Rustの言語仕様を極限まで活用し、完全にゼロから構築された極めて実験的なベアメタルオペレーティングシステムです。

レガシーなハードウェア抽象化を排除し、Rustのゼロコスト抽象化、厳格な所有権ルール、そしてコンパイル時のメモリ安全性を武器に、桁違いの速度と数学的なセキュリティを両立する新世界へご案内しましょう。

既存アーキテクチャへのアンチテーゼ:なぜ我々は遅く、脆いOSを使い続けるのか?

Linux、Windows、BSDといった現在主流のオペレーティングシステムは、その基盤を「ハードウェアレベルのアイソレーション(分離)」に依存しています。具体的には、MMU(メモリ管理ユニット)を駆使してプロセスごとに独立した仮想アドレス空間を割り当てています。

確かにこの手法はプロセス間のメモリ干渉を防ぎます。しかし、その代償として深刻なパフォーマンスのボトルネックを抱え込んでいるのです。

プロセス間でコンテキストスイッチが発生するたび、CPUはTLB(Translation Lookaside Buffer)をフラッシュし、ページテーブルを書き換えなければなりません。これは現代のプロセッサにとって、目を覆いたくなるほどの膨大な計算オーバーヘッドです。さらに、これらのカーネルの大部分はCやC++で記述されており、バッファオーバーフロー、Use-After-Free、ヌルポインタデリファレンスといったメモリ安全性の脆弱性を構造的に抱え続けています。

私はこの現状に満足できませんでした。ハードウェアの進化にソフトウェアのアーキテクチャが追いついていないのです。

PangeaOSを支える4つのパラダイムシフト

この旧態依然としたモデルを根本から破壊し、再構築するために、PangeaOSは以下の4つの強固な柱(パラダイム)を採用しています。

1. SASOS (Single Address Space OS):プロセス空間という幻想の廃止
PangeaOSにおいて、従来の「隔離されたプロセス空間」という概念は完全に撤廃されています。カーネル、デバイスドライバ、そしてすべてのユーザーアプリケーションは、最高特権レベルである「Ring 0」で動作し、単一の巨大な統合仮想アドレス空間を共有します。

すべてのタスクが同じメモリ空間に存在するため、複雑で遅いハードウェアのコンテキストスイッチは不要になります。もはやプロセス間通信(IPC)のためにカーネルへトラップ(割り込み)する必要はありません。PangeaOSのIPCは、単なる標準的な関数呼び出しと同じ速度で実行されます。TLBフラッシュの呪縛から解放され、CPUキャッシュの利用効率が最大化されることで、かつてないパフォーマンスを発揮します。

2. 言語ベースのアイソレーション:コンパイラによる数学的証明
「すべてがRing 0の同一アドレス空間で動くなら、悪意のあるアプリがカーネルを破壊するのではないか?」

鋭いエンジニアなら誰もが抱くこのセキュリティ上の懸念に対するPangeaOSの回答が、「言語ベースのアイソレーション」です。我々はハードウェア(MMU)による強制的な分離を捨て、Rustコンパイラによるソフトウェア的な分離を採用しました。

Rustの所有権モデル、借用チェッカー、そして強力な型システムは、コンパイルの時点でメモリ安全性とスレッド安全性を完璧に保証します。PangeaOSでは、自身が所有していないメモリにアクセスしようとするアプリケーションは、そもそもコンパイルを通ることすらできません。コードが実行される前に、コンパイラがシステムの安全性を「数学的に証明」するのです。これにより、ハードウェア分離のランタイムコストをゼロに抑えつつ、絶対的なセキュリティを実現しています。

3. UEFI セキュアブート境界:絶対的な信頼の起点
言語ベースのアイソレーションは、「実行されるバイナリが、Rustコンパイラが出力したそのままのものである」という前提に立っています。ディスク上でバイナリが改ざんされれば、コンパイラの保証は崩壊し、SASOSモデルは致命傷を負います。

絶対的な「Root of Trust(信頼の起点)」を確立するため、PangeaOSはレガシーBIOSのサポートを完全に切り捨て、純粋なUEFIブートプロセスのみを採用しました。UEFIファームウェアを活用し、セキュアブートとメジャードブートアーキテクチャの基盤を構築しています。実行前にハードウェアファームウェアによってブートローダとカーネルバイナリが暗号学的に検証されることで、オフラインでの改ざんやルートキットからSASOS環境の完全性を守る強固な境界を作り出しています。

4. Ring 0での動的メモリ管理:ベアメタルに命を吹き込む
標準ライブラリを持たないno_stdのベアメタル環境であっても、高度なシステムには複雑な動的データ構造が不可欠です。

PangeaOSのカーネルには、UEFIメモリマップを安全に解析し、ハードウェア予約領域を完全に回避する独自の物理フレームアロケータが実装されています。アドレス 0x444444440000 から始まる専用の仮想ヒープ領域をマッピングし、スレッドセーフな連結リストアロケータ(Linked List Allocator)を初期化します。この洗練されたメカニズムにより、カーネルはRustの組み込み alloc クレートを安全に利用でき、統合アドレス空間全体で Box、Vec、String といった動的コレクションを完全な所有権セマンティクスとともに活用できるのです。

妥協なき開発環境:NixOSとデュアルエンジンアーキテクチャ

世界最高峰のソフトウェアを作るためには、世界最高峰の環境が必要です。私は日頃からKDE環境のNixOSを愛用していますが、このプロジェクトにおいても環境の再現性には一切の妥協を許していません。

ベアメタルOSの開発には複雑なビルドパイプラインが要求されます。PangeaOSでは、「デュアルエンジン・ワークスペースアーキテクチャ」を採用し、ホストのビルド環境とターゲットのカーネル環境を美しく分離しています。

ルートディレクトリ(The Runner): NixOS(Linux)上で動くホスト側のランナーアプリケーションです。QEMUエミュレータを起動し、OVMF(UEFI)ファームウェアをロードしてカーネルのディスクイメージをマウントします。さらに、仮想マシンからのCOM1シリアル出力をローカルの serial.log にリダイレクトし、極めて信頼性の高いデバッグを実現しています。
kernel/ ディレクトリ(The OS Core): ここがPangeaOSの心臓部です。x86_64-unknown-none ターゲットに向けてクロスコンパイルされます。bootloader_api に依存してC互換のエントリポイントを定義し、UEFIブートローダからシステム状態とメモリマップを安全に受け取ります。
そして何より重要なのは、ツールチェーンのバージョン衝突を避け、絶対的な再現性を保証するために、開発環境の構築にNixパッケージマネージャを全面的に採用している点です。

プロジェクトのルートで以下のコマンドを叩くだけで、分離された正確なバージョンのRust Nightly、QEMU、OVMFが自動的に降臨します。

nix-shell

これこそが、私がNixOSを愛する理由であり、モダンなシステム開発におけるあるべき姿です。

結びと今後の展望

PangeaOSは単なる学習用OSではありません。既存の「常識」という名のボトルネックを打ち破り、ハードウェアの限界性能をソフトウェアの力(コンパイラの証明能力)で引き出すための壮大な実験場です。

MMUのオーバーヘッドに縛られ、C/C++のメモリバグに怯える時代は終わらせなければなりません。Rustという言語が持つポテンシャルは、我々が想像している以上に深く、そして強力です。

このプロジェクトは現在も猛烈なスピードで進行中です。低レイヤーの探求に飢えているエンジニア、コンパイラを信奉するハッカー、そして次世代のアーキテクチャに心躍るすべての人たちに、PangeaOSのコードを実際にクローンし、nix-shell から未知のRing 0へダイブしていただきたいと願っています。

我々と共に、OSの歴史の新しい1ページを開きましょう。

https://github.com/forestnote/pangeaos

© 2026 NixOctet
  • Home