liburing -------- これが io_uring ライブラリ、liburing です。 liburing は、io_uring インスタンスをセットアップおよびティアダウンするためのヘルパーを提供し、さらに、肥大化したカーネル アスペクトの実装を処理する必要がなくなった (または必要としない) 機能を作成するための簡素化されたインターフェイスを提供します。 io_uring に関する追加情報については、テストしてください: https://kernel.dk/io_uring.pdfカーネルとユーザー空間ごとに。 チェックリストはここにアーカイブされています: https://lore.kernel.org/io-uring/ カーネル モデルの依存関係 ----------- --------------- liburing 自体はもはや remark kernel free up に結び付けられていないため、古いカーネルでも最新の liburing free up を使用することができます (そしてその逆)逆)。 最近の側面は、明らかに、余分な現在のカーネルで最も簡単にアクセスできます。 ulimit 設定 --------------- io_uring は、必要なメモリを rlimit memlocked オプションよりも低く設定します。これは、一部のセットアップ (64K) では、さらにわずかに低くなる可能性があります。 デフォルトは、ほとんどの採用インスタンスで十分ですが、より大きなリングまたは問題は、登録されたバッファを崇拝します. root はもはやこの制限を下回っていませんが、異常なユーザーはそうです。 さまざまなプログラムの制限を強化するための最良の手順を検討することは、この小さな宣伝文句の範囲を超えていますが、/and many other/security/limits.conf でユーザーのコメント設定をテストするか、/and many other/systemd/user をテストしてください。 conf および /およびその他多数の systemd/gadget.conf で systemd セットアップを行います。 これは 5.11 以前に影響します。固有のカーネルは RLIMIT_MEMLOCK への依存度がはるかに低くなります。これは、バッファーを登録するのに非常に古いためです。 回帰評価 ----------------- liburing の大部分は、各 liburing の全体的な回帰/ユニット評価であり、カーネル io_uring はより強力になります。 このスイートはもはや古いカーネルを追跡することが期待されておらず、古いカーネルを原子化またはハングすることさえできることを示してください! liburing の構築 ----------------- # # fetch config を準備します (選択的)。 # # --cc は C コンパイラを指定します。 # --cxx は C++ コンパイラを指定します。 # ./configure --cc=gcc --cxx=g++; # # liburing を操作します。 # fetch -j$(nproc); # # liburing をセットアップします (ヘッダー、共有/静的ライブラリ、およびマンページ)。 # sudo fetch セットアップ; フェッチ構成の代替選択肢に関する追加情報については、「./configure --abet」を参照してください。 FFI の強化 ----------- デフォルトでは、フェッチは 4 つの lib レコードで終了します。データ: 2 つの共有ライブラリ: liburing.so liburing-ffi.so 2 つの静的ライブラリ: liburing.a liburing-ffi.a liburing.h で「静的インライン」機能を使用しない可能性がある言語と機能は、FFI バリアントを使用する必要があります。 liburing の重要なパブリック インターフェイスは、「静的インライン」機能として liburing.h に存在します。 liburing-ffi ではなく、バイナリ依存関係として純粋に liburing を楽しみたいユーザーは、ハイパーリンクを設定する必要があります。 すべての「静的インライン」公平の定義が含まれています。 ライセンス ------- このレポに含まれるすべてのツールはツイン ライセンスの LGPL と MIT であり、COPYING と LICENSE をテストします。また、Linux-syscall-show 例外と MIT を備えたツイン ライセンス GPL であるカーネルからのヘッダーを除きます。 、 COPYING.GPL と <https://spdx.org/licenses/Linux-syscall-note.html> をテストします。 イェンス・アクスボー 2022-05-19
