メモリ割り付けしてユーザスペースからカーネルスレッド

StackOverflow https://stackoverflow.com/questions/1623008

  •  06-07-2019
  •  | 
  •  

質問

私の質問は、お渡しについてのデータをカーネルのユーザ空間のプログラム。を実装したいのは、システムコール"get_dataサイズ、char*バフ、char**meta_buf)".この呼び出しバフが割り当てられるユーザ空間のプログラムの長さが渡されたサイズ引数です。しかし、meta_bufは可変長のバッファを割り当てられるのユーザ空間のプログラムのvmのページを記を含んでいます。ユーザ空間のプログラムは無料です。

(皆さんに配置データをユーザ空間としてのユーザ空間のプログラムを知らないサイズのmeta_buff.また、ユーザ空間のプログラムな配置により、定量メモリ-コシステムコールを再読みのメタデータです。meta_dataが返される単一のシステムコール)

  1. どんなメモリを割り当てのためのユーザ空間のプログラムからカーネルスレッドかどうかんで頂ければする情報を取得することができ私はその他のシステムコールと同様の運用-配置にカーネルおよび解放のユーザスペース)
  2. このインターフェイスはあると良いのですか?
役に立ちましたか?

解決

しようとしないでくださいメモリを割り当てのために使うことから、カーネルは巨大な違反のカーネルの抽出を積層す.代わりに、考え、他のオプション:

  • て使うことがいかにスペースする結果になっております。使うことが割り当て、グラブのメモリを含んでいます。
  • て使うことが受けページを所有するドライバに直接アドレス空間です。
  • 設定上限のデータ量が必要です。うに配置する。

難しいと言うことなく知ること なぜ すべての原子.実際にメモリ割り付けしてる必要が割り込み可能か(ただくに成功し、この後にカーネルを傷つけます。実際、 他の 書くのに使うメモリ 必要 する割り込み可能としている可能性のページに誤りが必要IO.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top