タグ

LinuxとGCCに関するnharukiのブックマーク (8)

  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • Linux super-duper admin tools: OProfile

  • 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())。これらのルー

    nharuki
    nharuki 2010/07/19
    LKM用のMakefileの書き方、LKM特有のマクロのサンプル
  • カーネルモジュールを作る

    ○ はじめに Linux® でのデバイスドライバは、カーネルに静的にリンクする形式と、動的にロードすることができるモジュール形式で作成することができます。 Webではカーネルモジュールの作成方法を説明します。 "C 言語によるプログラミングでは main() 関数から実行される" という約束事があるように、モジュールプログラミングにもこうしなければならないという約束事があります。 ここでは、簡単なモジュールを作ってみることでモジュールプログラミングに最低限必要な知識を説明します。 サンプルプログラム サンプルプログラムの説明 複数ファイルに分割して作成する printk の使い方 kmalloc / kfree によるメモリの確保 / 解放 module_init / module_exit マクロについて ○ サンプルプログラム カーネルへのロードおよびカーネルからのアンロードの

  • LD_PRELOADで他プロセスのバッファリング無効化 - murankの日記

    pipe や popen を使っていると、来なら出力済みのはずの他プロセスの出力がなかなか取得できないことがある。 最初はpopenやpipeのせいかと思っていろいろ調べたけど、どうも出力時のバッファリングの影響のようだ。 自分のプログラム中でバッファリングの方法を変更するのは setvbuf でできるわけだけど、 これを LD_PRELOAD と組み合わせると他プロセスのバッファリング方法を変更できそう。 というわけで、以下他プロセスに読み込ませる共有ライブラリのソース。 #include <stdio.h> namespace { struct NoBuffer { NoBuffer() { setvbuf(stdout, NULL, _IONBF, 0); } } instance; } おそらく大抵の Linux 環境で動くと思うけど、未保証ということで。 後はこれを適当なファイ

    LD_PRELOADで他プロセスのバッファリング無効化 - murankの日記
    nharuki
    nharuki 2010/06/28
    静的初期化を使ったpreloadライブラリ内でのグローバル関数呼び出し例
  • ひげぽん OSとか作っちゃうかMona- - 共有ライブラリお作法まとめ

    ACさんから教えていただいた Program Library HOWTO: http://www.linux.or.jp/JF/JFdocs/Program-Library-HOWTO/ 非常によくまとまっていて疑問が氷解しました。 重要そうなところを引用します。 静的ライブラリ .aは静的ライブラリ。arコマンドでオブジェクトファイルをまとめたもの。 静的ライブラリは -l オプションでリンクを行う 共有ライブラリ すべての共有ライブラリは「soname」という特別な名前をもつ。 ディレクトリ名libxxx.so.バージョン番号 バージョン番号はインターフェースが変わったときに変わる。 すべての共有ライブラリは「realname」という特別な名前を持つ。 soname.マイナー番号.リリース番号 「linker name」 sonameからバージョン番号を除いたもの ldconfig は

    ひげぽん OSとか作っちゃうかMona- - 共有ライブラリお作法まとめ
  • C++ dlopen mini HOWTO

    I don’t maintain the C++ dlopen mini HOWTO any more. I last updated it in 2006, so there are likely better ways to do what you want to achieve by now. You can find a copy at https://tldp.org/HOWTO/C++-dlopen .

    nharuki
    nharuki 2010/02/17
    C++のオブジェクトを動的ロードするためのHow-to
  • 1