ウルフIP:動的メモリ確保を行わない軽量TCP/IPスタック

2026/03/13 0:39

ウルフIP:動的メモリ確保を行わない軽量TCP/IPスタック

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

要約

Japanese Translation:

(欠落した詳細を組み込む):**

WolfIPは、リソース制限のある組込みデバイス向けに設計されたコンパクトで静的メモリのみを使用するTCP/IPスタックで、BSD風のノンブロッキングソケットAPIを提供します。動的メモリ割り当てを行わずに実行できるよう設計されており、ソケットとバッファに固定制限を持つ「エンドポイントのみ」モードをサポートするため、高い決定性があり、制約のあるシステムへの埋め込みが容易です。スタックは、イーサネットからTCP/UDP/IPまでのすべての標準ネットワーク層を実装し、IPv4フォワーディング、IPsec ESP、およびHTTP/HTTPS用のwolfSSLベースのTLSレイヤーなどのオプション機能も含みます。また、DHCPやDNSといった一般的なクライアントプロトコルと、HTTP/HTTPSといったサーバ機能を提供します。

POSIXシムは

libwolfip.so
を構築し、これを
LD_PRELOAD
してホストツールのソケット呼び出しをリダイレクトできます。TAPデバイス(
wtcp0
)を作成するため、
nc
ping
のようなユーティリティがスタックを透過的に利用できるようになります。FreeRTOS ポートはリアルタイムオペレーティングシステムへの適合性を示しており、バックグラウンドタスクで
wolfIP_poll()
を繰り返し呼び出し、ミューテックス保護されたラッパーでソケット操作のスレッドセーフを維持します。

将来的な計画としては、さらに多くのプロトコルや動的メモリサポートの追加が示唆されていますが、現在の焦点は静的割り当てと最小フットプリントにあります。組込み開発者向けにWolfIPはOSネットワーク層なしで完全なネットワーキング機能を提供し、リソース使用量を削減し統合を簡素化しますが、そのGPLv3ライセンスは商用展開の意思決定に影響する可能性があります。

本文

概要とプロジェクト目標

wolfIP は、動的メモリ割り当てを行わず、リソースが限られた組込みシステム向けに設計された TCP/IP スタックです。

  • エンドポイントモードのみをサポートします ― ネットワーク接続は確立できますが、インタフェース間のトラフィックルーティングは行いません。
  • デバイスには単一のネットワークインタフェースしか割り当てられません。

サポートされる機能

  • BSD 風・非ブロッキングソケット API(カスタムコールバック付き)
  • 動的メモリ割り当てなし
  • 同時に使用できるソケット数は固定
  • パケット処理用バッファは静的メモリに事前確保

プロトコルと RFC

プロトコル機能RFC
データリンクEthernet IIフレームカプセル化IEEE 802.3
データリンクARPアドレス解決、リクエスト/リプライ826
ネットワークIPv4データグラム配信、TTL 管理791
ネットワークIPv4 Forwarding複数インタフェース経由のルーティング(任意)1812
ネットワークICMPエコーリクエスト/リプライ、TTL 超過792
ネットワークIPsecESP トランスポートモード4303
トランスポートUDPユニキャストデータグラム、チェックサム768
トランスポートTCPコネクション管理、信頼性配信793, 9293
トランスポートTCP最大セグメントサイズ交渉793
トランスポートTCPタイムスタンプ、RTT 測定、PAWS、ウィンドウスケーリング7323
トランスポートTCPRTO 計算6298, 5681
トランスポートTCPSACK2018, 2883, 6675
トランスポートTCP減速開始・輻輳回避5681
トランスポートTCPファストリトランスミット、重複 ACK 三連発検知5681
アプリケーションDHCPクライアントのみ(DORA)2131
アプリケーションDNSA・PTR レコードクエリ(クライアント)1035
アプリケーションHTTP/HTTPSwolfSSL TLS 対応サーバ9110

LD_PRELOAD
を用いた機能テスト

POSIX シムは

libwolfip.so
をビルドし、ホストツールの前に挿入して
socket(2)
などを wolfIP スタックへリダイレクトします。TAP デバイス(
wtcp0
)経由で動作します。

sudo LD_PRELOAD=$PWD/libwolfip.so nc 10.10.10.2 80

プロセスが開く TCP ソケットは、ホストカーネルではなく wolfIP により処理されます。

TAP デバイス経由の Ping:

sudo LD_PRELOAD=$PWD/libwolfip.so ping -I wtcp0 -c5 10.10.10.1

-I wtcp0
はテストを挿入されたインタフェースに固定し、
-c5
が 5 回のエコーリクエストを送信します。応答が返ってくれば、tap デバイス経由での ICMP データグラムのエンドツーエンドサポートが確認できます。


FreeRTOS ポート

wolfIP は専用の FreeRTOS ラッパーポートを提供しています:

  • src/port/freeRTOS/bsd_socket.c
  • src/port/freeRTOS/bsd_socket.h

このポートは POSIX シムと同様のモデルに従います:

  1. バックグラウンドタスクが
    wolfIP_poll()
    をループします。
  2. ソケットラッパーはミューテックスでスタックアクセスを直列化します。
  3. ブロッキング操作はコールバック駆動のウェイクアップで待機(バッファリングではなく)します。

著作権とライセンス

wolfIP は GPLv3 の下で配布されています。詳細は LICENSE ファイルをご覧ください。
著作権 © 2025 wolfSSL Inc.

同じ日のほかのニュース

一覧に戻る →

2026/03/13 6:01

「実装したほうがよろしいでしょうか? いいえ。」

## Japanese Translation: **オリジナルの要約は既に明確で正確、簡潔です。修正は不要です。**

2026/03/12 22:42

マルス – サービステクノロジー型クリーンルーム (“Malus – Clean Room as a Service” を自然な日本語に訳したものです。)

## Japanese Translation: ## 要約 このテキストは、企業がオープンソースライブラリを「ロボット再構築版」に合法的に置き換え、帰属表示とコピーレフトの義務を排除できる商業サービスを推進しています。公的なドキュメントと型定義のみを使用してクリーンルーム環境でコードを書き直すことで、同社は各新しいコピーが自動化されたチームによって独立して作成され、元のソースから直接コピーされていないことを保証すると主張しています。サービスは、パッケージの解凍サイズに基づく透明なKB単位課金を提供し、基本料金やサブスクリプションはなく、Stripe処理最低限度が設定されています。支払いはUSD、EUR、BTC、または株式オプションで可能です。npm、PyPI、Cargo、Maven、Go、NuGet、RubyGems、Composer など複数のエコシステムをサポートしていますが、ダッシュボードには現在処理済みプロジェクトもアクティブ顧客もゼロと表示されています。 匿名企業クライアントからのケーススタディでは、AGPL の依存関係削除、$4 M のコンプライアンスコスト節約(サービス料 $50 K と比較)、そして $2.3 B の買収を促進した事例が挙げられています。同社の「MalusCorp Guarantee™」は、リベレートされたコードが元のライセンスに違反した場合、全額返金または国際水域への移転を保証します—これまで一度も発動されたことがありません。 将来的な計画としては、緊急 AGPL 問題に対するラッシュ価格設定、追加パッケージエコシステムへの拡大、および帰属表示要件を排除する独自の MalusCorp‑0 ライセンスの継続的な推進が含まれます。広く採用されれば、企業は制限的なオープンソースライセンスを回避でき、法的リスクとコストを低減し、依存関係管理に関する業界規範を変える可能性があります。

2026/03/13 2:13

**バブルソートされたアメンブレイク**

## Japanese Translation: > **概要:** > 「このアイデアで起きた、今や存在する。かっこいい!」というタイトルの新しいインディーゲームプロトタイプが、itch.ioで*自分で価格を決めてください*タグ付きでリリースされました。Godotエンジンで構築され、HTML5とWindowsで動作し、「AmenSorting (Windows)」(~93 MB) などのダウンロード可能ファイルが含まれています。現在、このゲームは3人のレビューアから5つ星評価を受けています。Music、Music Production、および No AI のタグが付いており、人工知能よりも音声ソートに焦点を当てた内容であることを示しています。ユーザーはログイン後にコメントを残すことができ、一部の人々は並べ替えられたサンプルを再生する機能やソースコードの有無について尋ねています。この無料リリースは音楽制作の趣味家を惹きつける可能性があり、関心が高まればさらなる開発につながるかもしれません。