3

カーネル モードでユーザー プロセスのページからデータをコピーする方法を考えていました。mm_struct とプロセスのすべての vm_area_structs にアクセスできます。vm_ops でアクセス方法を見ましたが、それがどのように機能するかはわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

2

linux/mm.h で宣言されている access_process_vm メソッドを介して実行できます (現時点では思い出せないと思います)。これはプロセス メモリにアクセスする安全な方法であり、必要なのはプロセスの task_struct、書き込み/読み取り対象のデータのバッファー、サイズ、プロセスの vm 空間内のアドレス、および読み取り/書き込みかどうかです。 . これが安全である理由は、これを処理するための適切なロックがすべて用意されており、get_user_pages が失敗した場合にユーザー空間ページを取得するバックアップ メソッドがあるためです。戻り値は、vm スペースから読み取られたバイト数です。

于 2011-06-29T07:16:55.017 に答える