(Translated by https://www.hiragana.jp/)
vDSO - Wikipedia コンテンツにスキップ

vDSO

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

  vDSO (virtual dynamic shared object) は、注意深ちゅういぶか選択せんたくされた kernel space ルーチンぐんを、user space じょうのアプリケーションにエクスポートするための、カーネルメカニズムである。これにより、アプリケーションは、それらカーネル空間くうかんルーチンを、システムコール インタフェースを使用しようして、それらのおなじカーネル空間くうかんルーチンをとき固有こゆうの、user mode から カーネルモード への コンテキストスイッチ によるパフォーマンス低下ていかなしに、プロセスないせる。[1][2]

vDSO は、リンクロード標準ひょうじゅんのメカニズムを使用しようする。すなわち、標準ひょうじゅんExecutable and Linkable Format (ELF) 形式けいしきである。[3][4] vDSO は、いくつかのカーネル機能きのう公開こうかいする、ユーザ空間くうかんてられたメモリ領域りょういきである。vDSO iは dynamically allocated、offers improved safety through アドレス空間くうかん配置はいちのランダム使つかって安全あんぜんせい向上こうじょうされ、4つ以上いじょうのシステムコールをサポートする。glibc のようないくつかの 標準ひょうじゅんCライブラリ は vDSO リンクを提供ていきょうするため、カーネルが vDSO をサポートしていない場合ばあいは、従来じゅうらいからの システムコール作成さくせいされる。[5] vDSO は単純たんじゅんなカーネルルーチンしオーバヘッドを削減さくげんするのに役立やくだち、IA-32 のようなあるしゅコンピュータ・アーキテクチャ では、最適さいてきなシステムコールメソッドを選択せんたくする方法ほうほうとしても機能きのうする。[6] ほうよりもすぐれているてんは、エクスポートされたルーチンが、適切てきせつDWARF (Debug With Attributed Record Format) デバッグ情報じょうほう提供ていきょう出来できることである。実装じっそう一般いっぱんてきに、vDSO をつけるための、ダイナミックリンカちゅうのフックをしめしている。

vDSO は vsyscall 機能きのうを、その制限せいげん克服こくふくして提供ていきょうするために開発かいはつされた。すなわち、4つのシステムコールしか使つかえない statically allocated 少量しょうりょうのメモリ、かくプロセスでどういちアドレスの アプリケーションバイナリインタフェース (ABI) によるセキュリティの妥協だきょうである。このセキュリティ問題もんだいen:emulating a virtual system callによって緩和かんわされたが、エミュレーションにより遅延ちえん増加ぞうかする。[5]

参照さんしょう

[編集へんしゅう]
  1. ^ Enrico Perla; Massimiliano Oldani (16 December 2016) (ドイツ). Kernel Hacking: Exploits verstehen, schreiben und abwehren: Schwachstellen in Kernel-Architekturen erkennen und Gegenmaßnahmen ergreifen. Franzis Verlag. pp. 466–. ISBN 978-3-645-20503-0. https://books.google.com/books?id=9cZ2DwAAQBAJ&pg=PA466 
  2. ^ vDSO - overview of the virtual ELF dynamic shared object”. Canonical. 2016ねん3がつ4にち時点じてんオリジナルよりアーカイブ。2015ねん12がつ10日とおか閲覧えつらん
  3. ^ Creating a vDSO: the Colonel's Other Chicken”. Linuxjournal.com. 2015ねん2がつ16にち閲覧えつらん
  4. ^ On vsyscalls and the vDSO”. Lwn.net. 2015ねん2がつ16にち閲覧えつらん
  5. ^ a b Community answer to question "What are vDSO and vsyscall?"”. 2016ねん11月19にち閲覧えつらん
  6. ^ Anatomy of a system call, part 2”. Lwn.net. 2018ねん11月19にち閲覧えつらん