タグ

ブックマーク / wiki.bit-hive.com (2)

  • Loadable Kernel Moduleの作り方 - とみぞーノート

    LinuxのLoadable Kernel Moduleの作り方のHowTo。対象のカーネルバージョンは2.6。 1. SourceとMakefile カーネルにLoad/Unloadできるだけの小モジュールを作ってみる。何処か適当なディレクトリに以下のようにソースとMakefileを作る。ソースとMakefileの中身は以下を参照。.tar.gzにまとめたファイルはこちらから。 xxxxxx/ Makefile - Makefile small.c - モジュールのソース 1.1 Source モジュールのソースコードのサンプルを以下に示す。 最低限必要なのは、モジュールがLoadされた時に呼び出される初期化ルーチン(smallmod_init_module())とモジュールがUnloadされる時に呼び出される後処理用ルーチン(smallmod_init_module())。これらのルー

    takech
    takech 2011/02/06
    コンパイル時に使用したソースツリーのカーネルバージョンや一部のConfig(SMP,Preempt等)の情報がモジュールのvermagicに埋めこまれて、Loading時にチェックされるため。これがカーネルはvermagicが不一致だとLoadingを受けつけない
  • FrontPage - Linuxカーネルメモ

    Linux Kernel(2.6)の実装に関するメモ書き 書き殴っているので書き方/内容にムラあり。 3.6系に関する記述は【3.6】と記載。 カーネル プロセス プロセスのBlockとWakeup プロセスの優先度 コンテキストスイッチ プリエンプション スケジューラ RunQueue WaitQueue WorkQueue 例外処理 割り込み処理 ページフォルト ページフォルト - 個々のハンドラ ソフト割り込み システムコール 排他制御関連 モジュール 64bit環境での32bitプロセスの動作 メモリ管理 アドレス空間 アドレス空間の管理 カーネル空間のメモリマップ 64bitでのアドレス空間 HighMemory kmalloc,vmalloc 物理ページ管理 スラブアロケータ Rmap proc/meminfo 空きページの確保 kswapd Swap Swap - Swap領

  • 1