【HN】Smol Machines:サブ秒で起動可能な汎用仮想マシンです。

2026/04/18 2:18

【HN】Smol Machines:サブ秒で起動可能な汎用仮想マシンです。

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

要約

Japanese Translation:

smolvm
の主な利点は、秒未満の冷起動(cold start)で完全に隔離された Linux 仮想マシンを起動できる点であり、従来のクラウド VM やコンテナに典型的な遅い起動時間を解消します。ホストカーネルを共有するコンテナや、Colima などのデーモンツールとは異なり、
smolvm
はハードウェアベースの分離(macOS/Linux では libkrun を介して)を使用して、ワークロードごとにインスタンスを作成し、優れたセキュリティと隔離性を提供します。本ツールの対象とする 2 つの使い分けは、ネットワークをデフォルトでオフとした強化された環境で不信任コードを実行するための**一時 VM(ephemeral VMs)と、状態のあるシステム全体を携行可能なアーティファクト(
.smolmachine
ファイルまたは実行可能ファイル)にパッケージ化する
永続的な開発マシン(persistent development machines)**です。これらのアーティファクトにより、再起動後もインストールされたパッケージや秘密鍵が保持され、手動での再インストールなしで継続使用が可能です。

本ツールは軽量技術を利用します:macOS では Hypervisor.framework が、Linux では KVM が採用され、どちらも libkrun によるカスタムカーネルと連携します。環境は

Smolfile
(TOML 形式)により宣言され、ここで画像、ネットワークルール、ボリューム、SSH エージェント設定が定義されます。ホストの SSH エージェントを
--ssh-agent
フラグを使用して VM 内に転送することで、ゲストに秘密鍵を暴露させずに安全なアクセスを実現します。デフォルト設定では vCPU 4、RAM 8 GiB を割り当て、メモリ使用量については弾力的に対応します。アーキテクチャは外部依存関係を排除することを設計しており、あらゆる対応プラットフォーム間で単一ファイルを転送するだけで 200ms 未満での展開が可能になっています。

本文

隔離をデフォルトとした Ship and Run ソフトウェア

本 CLI ツールでは、以下のようなことが可能です。

  • カスタム Linux バルチャの管理と実行
    ローカル環境においてサブ秒単位の起動時間を実現し、クロスプラットフォーム(macOS、Linux)、および弾力的なメモリ使用量を特徴としています。
  • ステートフルなバルチャを単一のファイル(
    .smolmachine
    )にパッケージ化

    任意の対応するプラットフォームで再hydration (再構成)して実行できます。

インストール

# macOS および Linux 向けインストール
curl -sSL https://smolmachines.com/install.sh | bash

コーディングエージェントの場合——インストールおよびコマンドの一覧を確認するには:

curl -sSL https://smolmachines.com/install.sh | bash && smolvm --help

または、GitHub Releases からダウンロードすることも可能です。

クイックスタート

一時的な VM(終了時にクリーンアップされる)でコマンドを実行する場合:

smolvm machine run --net --image alpine -- sh -c "echo 'Hello world from a microVM' && uname -a"

インタラクティブシェルの場合:

smolvm machine run --net -it --image alpine -- /bin/sh

VM 内部からの操作例:

apk add sl && sl && exit

このツールを活用する場面

信頼できないコードのサンドボックス化

ハードウェア隔離された VM 内で非信頼のプログラムを実行します。ホストファイルシステム、ネットワーク、および認証情報はハイパーバイザー境界によって分離されます。

  • デフォルトではネットワークはオフ — 非信頼のコードが「ホームに電話する」ことができません:

    smolvm machine run --image alpine -- ping -c 1 1.1.1.1
    # エラー——ネットワークへのアクセスがありません
    
  • エGRESS(外部通信)を制限 — 特定のホストのみを許可できます:

    smolvm machine run --net --image alpine --allow-host registry.npmjs.org -- wget -q -O /dev/null https://registry.npmjs.org
    # 成功——許可されたホスト
    
    smolvm machine run --net --image alpine --allow-host registry.npmjs.org -- wget -q -O /dev/null https://google.com
    # エラー——許可リストに含まれていません
    

ポータブル実行可能ファイルへのパッケージ化

任意のワークロードを自己完結型の実行可能ファイルに変換します。すべての依存関係は事前にバインド済みであり、インストールステップやランタイムでのダウンロードも不要です。起動時間は<200ms です。

smolvm pack create --image python:3.12-alpine -o ./python312
./python312 run -- python3 --version
# Python 3.12.x — 隔離済み、pyenv/venv/conda 不要

デvelopment 向け永続型 VM の作成

作成、停止、再起動が可能です。インストールされたパッケージは再起動後も維持されます。

smolvm machine create --net myvm
smolvm machine start --name myvm
smolvm machine exec --name myvm -- apk add sl
smolvm machine exec --name myvm -it -- /bin/sh
# 内部で sl, ls, uname -a を確認できます。'exit' と入力して脱出してください
smolvm machine stop --name myvm

Git および SSH の使用を、キーを公開せずに実行

ホスト側の SSH エージェントを VM に転送します。秘密鍵はゲスト環境に決して進入せず、ハイパーバイザーがこれを強制します。ホストで SSH エージェントが動作している必要があります(

ssh-add -l
で確認可能)。

smolvm machine run --ssh-agent --net --image alpine -- sh -c "apk add -q openssh-client && ssh-add -l"
# ホストのキー一覧を表示しますが、VM 内部からは抽出できません

smolvm machine exec --name myvm -- git clone git@github.com:org/private-repo.git

Smolfile を用いた環境宣言

簡易な TOML ファイルで再構成可能な VM 設定を宣言できます。

image = "python:3.12-alpine"
net = true

[network]
allow_hosts = ["api.stripe.com", "db.example.com"]

[dev]
init = ["pip install -r requirements.txt"]
volumes = ["./src:/app"]

[auth]
ssh_agent = true

使用方法:

smolvm machine create myvm -s Smolfile
smolvm machine start --name myvm

その他の例: Python · Node.js · Doom

動作原理

各ワークロードは実質的なハードウェア隔離を受けており、Hypervisor.framework(macOS)または KVM(Linux)上で独自のカーネルを起動します。libkrun VMM とカスタムカーネル(libkrunfw)を組み合わせて単一の

.smolmachine
ファイルにパック化すると、ホストアーキテクチャが一致するあらゆる場所においてゼロ依存関係で動作します。

デフォルト設定:

  • 4 コアのプロセッサ(vCPU)、8 GiB のメモリ。
  • メモリは virtio balloon を介して弾力的です——ホストはゲストが実際に使用する分のみコミットし、余分なメモリは自動的に回収されます。
  • vCPU スレッドはアイドル状態のときハイパーバイザーでスリープするため、過剰プロビジョニングのコストはほぼゼロです。

--cpus
および
--mem
を用いて設定をオーバーライドすることも可能です。

比較

機能smolvmコンテナColimaQEMUFirecrackerKata
隔離性ワークロードごとにVM名前空間(共有カーネル)名前空間(1 VM)別の VM別の VMコンテナごとのVM
起動時間<200ms〜100ms〜数秒〜15-30s<125ms〜500ms
アーキテクチャライブラリ(libkrun)デモンデモン(VM 内)プロセスプロセスランタイムスタック
ワークロードごとのVMはいいいえいいえ(共有)はいはいはい
macOS ネイティブ対応はいDocker VM を経由はい(krunkit)いいえいいえいいえ
埋め込み可能なSDKはいいいえいいえいいえいいえいいえ
ポータブルアサート
.smolmachine
イメージ(デモンが必要)いいえいいえいいえいいえ

プラットフォームサポート

ホストゲスト要件
macOS Apple Siliconarm64 LinuxmacOS 11+
macOS Intelx86_64 LinuxmacOS 11+(未確認)
Linux x86_64x86_64 LinuxKVM(
/dev/kvm
Linux aarch64aarch64 LinuxKVM(
/dev/kvm

既知の制限事項

  • ネットワーク:オプトイン制(
    machine create
    --net
    を指定)。TCP/UDP のみ対応、ICMP は非対応。
  • ボリュームマウント:ディレクトリのみ対応(単一ファイルは不可)。
  • macOS:バイナリには Hypervisor.framework エンタイトルメントによる署名が必要です。
  • SSH エージェント:ホスト上で SSH エージェントが動作している必要があります(
    SSH_AUTH_SOCK
    を設定する必要があります)。

開発者向け

docs/DEVELOPMENT.md
を参照してください。


Apache License 2.0
@binsquare による制作
Twitter · GitHub

同じ日のほかのニュース

一覧に戻る →

2026/04/18 0:04

クロード・デザイン

## Japanese Translation: Anthropic は今日、研究プレビュー段階で一般公開された新しい AI ツール「Claude Design」を発表しました。このツールは、進化した Claude Opus 4.7 vision モデルを基盤としており、テキストやドキュメントを瞬時に視覚デザインに変換する機能を備えています。以前では 20 つ以上のプロンプトが必要だった作業フローをわずか 2 ステップへと大幅に簡素化することで、プロトタイプ制作を容易にします。ユーザーはテキストで要件を記述するか、DOCX、PPTX、XLSX ファイルをアップロードし、Claude が最初の視覚版を作成して改善の余地を残します。オンボーディング時に既存のコードベースに直接統合され、チーム向けデザインシステムを自動的に構築するほか、デザインファイルを读取して共有標準を策定します。 本ツールにはカスタムスライダーやインラインコメントなど、精密な微調整制御に加え、組織範囲での共有機能、プライベートリンク、編集アクセス権、グループチャットといった新たなコラボレーション機能も提供されます。デザインは Canva への完全編集可能なファイルとしての直接エクスポートが可能で、あるいは PDF、PPTX、HTML、社内 URL へも代替的にエクスポートできます。バンドルは Claude Code のための直接実装用としても保存されます。これは、現実的なインタラクティブプロトタイプやワイヤーフレームからピッチデッキ、マーケティング素材、3D 要素など先端デザインに至るまでの用途をカバーします。 現在、claude.ai/design で利用可能です。本サービスは現在の研究プレビュー段階ですが、一日中急速に拡大しており、Pro、Max、Team、Enterprise サブスクリプションのすべてで利用可能になっています。特に、Enterprise ユーザーではデフォルトで機能がオフになっているものの、管理者が Organization 設定からこれを有効にすることで、アクセス管理を好みに合わせて行うことができます。この進歩により、コードを書かずに複雑な素材を作成することが可能となり、デザインサイクルが加速するとともに、ワイヤーフレームからプロダクションまでの移行プロセスにおいてクリエイティブワークフローと開発者ツールを統合することで、そのプロセスが合理化されます。

2026/04/18 6:38

FIL-C の簡略化モデル

## Japanese Translation: Fil-C は、既存の不安全な C/C++ コードベースをメモリ安全性を備えた実装に改修することを目的とした革命的ツールであり、手動による書き換えを必要としません。それは、簡略化されたモデルではソースコード、または生産環境版では LLVM IR を自動的に変換することで達成され、各関数内のポインターにメタデータレコード(`AllocationRecord*` 変数)を付与します。これらのレコードは、可視データ、境界アラインメント用の非公開バイト、および長さ情報を追跡し、参照解除やポインター算術といった標準的な操作を自動的に境界チェックを備えた操作へと書き換えることを可能にします。 このシステムは、標準ライブラリ呼び出しを Fil-C 版(例:`filc_malloc`)で置き換えにより配列を明示的に処理し、かつ廃棄された非公開メタデータオブジェクトの解放にはガバージコレータが担当するというハイブリッドアプローチによってメモリライフサイクルを管理します。これは `AllocationRecord` インスタンス自体が直接子配列を解放しないためです。スタック操作によるエラーを防ぎつつ安全性を保証するため、ローカルスコープからアドレスが流出する変数は自動的にヒープ割り当てに昇進されます。 未確認のレガシーコードベースに対する安全な橋渡しとしての位置づけを持つ Fil-C は、 unsafe ポインター交換を関数呼び出しを超えて防止するというユニークなポインター所有性の性質を持ち、積極的な最適化および並行型ガバージコレータを通じて典型的なメモリ安全性ペナルティを軽減します。最終的に、AddressSanitizer による強力なコンパイル時の安全性保証を提供すると同時に、産業界が既存の大規模コードベースを安全にし、Zig などにおける安全なコンパイル時評価を活用することを可能にします。

2026/04/18 3:17

『全ての 12 人の月面歩行者は、火薬のような匂いのする塵から「月じんかぜ」に苦しんだ(2018 年)』

## 日本語訳: 月面の塵は宇宙探査にとって二重の現実をもたらします:それはアストロノーツにとって即座に命を脅かす危険であると同時に、将来的な植民地にとっては貴重な資源でもあります。主な危険性は、その独自の物理的特性に由来します。やわらかい地球の塵とは異なり、月面の粒子は鋭く研摩性のあるケイ酸塩粒であり、太陽放射と大気による侵食の欠如のため静電的に帯電したままです。これらの小さな棘状の粒子(人間の髪の毛の約 50 倍小さいもの)は、地球重力の 1/6 の環境でも数ヶ月間浮遊し、表面より高く漂浮しながら装備に侵入し、さらに人間肺の奥深くまで到達します。史上 12 人の月面を歩いた宇宙飛行士すべて(其中包括アポロ 17 号のハリーソン・シミュット)によって記録されているように、露出は「月の枯草熱」と呼ばれる症状——喉の痛み、涙目、くしゃみ、鼻閉塞(時に数日続くものも含まれる)——および肺細胞や脳細胞に損傷をもたらす可能性のある長期的毒性を引き起こしました。また、この塵は宇宙船内部で独特な火薬のような燃えた臭いを放ちます。 これらのリスクを安全に研究するために、研究者らはドイツで粉砕された丸みを帯びた火山岩シミュラントを使用して、鋭く有毒な月面粒子への曝露なしに機器故障をモデル化しています。カリフォルニア大学の NASA アストロノート・キム・プリスクを含む 12 人の科学者による野心的なプログラムで、月面塵の毒性リスクが推定されています。生物学者のエリン・トランフィールドは、火山岩を粉砕することで鋭い縁を取り除き、より安全なシミュレーションが可能になると指摘しています。科学顧問のアイドアン・カウリーは有望な応用として、月面土壌を加熱して居住用のレンガを生産したり、レゴリットから酸素を抽出して有人ミッションを維持したりすることを挙げています。同時に、ESA アストロノート・アレクサンダー・ゲーストは減重力下での肺の健康を追跡するための「気道モニタリング」実験を行い、将来の持続可能な月面帰還を支えています。並行して、ESA はオランダのエウレカ研究所内で月面資源に関するワークショップを開催し、これらの機会への研究を推進するとともに、この独自の環境がもたらす重大な健康リスクを軽減することを目指しています。