inb
Linuxでカーネルスペースにアクセスするために、およびinl
を使用inw
するユーザースペースの例は何ですか?
答え1
inb
、outb
友達はカーネル←ユーザー空間通信には使用されず、プラットフォーム固有のIOポートを読み書きするために使用されます。
これらの機能の一般的な用途は、途中で特定のカーネルデバイスドライバを作成するのではなく、シリアルポートまたはパラレルポート(および接続されたデバイス)と直接対話することです。
Xサーバーは、ビデオ(または入力デバイス)ハードウェアとの低レベル通信にも使用できます。
ユーザー空間でこれらの呼び出しを使用するには、次の2つのことを行う必要があります。
- 呼び出しプロセスにはCAP_SYS_RAWIOが必要です。能力(これは通常、rootとして実行する必要があることを意味します。)
- 呼び出しプロセスは、目的のポートを使用するための権限を要求する必要があります。
ioperm
またはiopl
システムコール。
Linux I/OポートプログラミングミニHOWTO*最後に簡単なサンプルプログラムを含む基本を案内します。
このポートを使用するプログラムは、このポートの背後にあるハードウェア(またはファームウェア)と直接通信します。カーネルはこれらの呼び出しを確認したり妨げたりしません。したがって、誤用すると重大な問題が発生する可能性があります。慎重に取り扱ってください。
*コンパイルするにはに#include <stdlib.h>
置き換える必要があります。<asm/io.h>
<sys/io.h>