Linuxカーネルでよく使われる関数
ネイティブにLinuxカーネル関数は数多くあり、一般的なカーネル関数は次のとおりです。
- カーネル内でメモリを割り当てるための関数。
- カーネルで確保したメモリを解放します。
- copy_to_user(): カーネル空間からユーザー空間へデータをコピーします。
- copy_from_user(): ユーザー空間からカーネル空間にデータをコピーする。
- alloc_chrdev_region():動的にキャラクタデバイス番号を割り当てるために使用されます。
- register_chrdev():キャラクタデバイスの登録を行う。
- unregister_chrdev():キャラクタデバイスの登録解除を行う。
- 割り込み要求
- free_irq():割り込みの解放に使用します。
- リクエストしたIOリソースを返すrequest_region()
- release_region():IOリソースを解放します。
- カーネル内でデバッグ情報を出力するprintk()。
- spin_lock():スピンロックを取得する。
- スピンロックを解除します。
- schedule(): 現在のプロセスをスケジューリング可能な状態にします。
- wake_up_process() : 指定したプロセスを起動します。
ごく一部のカーネル関数だけが紹介されているが、実際にはLinuxカーネルには開発者が利用できるさらに多くの関数がある。具体的な関数の使用は、開発者のニーズと目標によって異なる。