タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

glibcに関するhat-tunのブックマーク (2)

  • コラム【Linux道場 入門編】第6回 - Linuxの構造

    今回はLinuxの構造についてのお話です。構造といっても、ここでお話しするのはカーネルの内部的なことではなく、少し表面的な部分です。カーネルとそれをとりまくソフトウェアやライブラリ、ブートローダ以降の起動シーケンスにおける、プログラムの起動やディストリビューションごとの際などが今回のお話です。このあたりは、第二回の「ディストリビューションとは」で少し触れましたが、今回は少し踏み込んでお話したいと思います。 OSの構造には色々なタイプがありますが、Linuxカーネルのタイプはモノシリックカーネルと呼ばれ、全ての機能がカーネル内に1つに統合されています。これとは逆のタイプがマイクロカーネルと呼ばれるもので、マイクロカーネルはカーネルの機能をコンパクトにまとめてその他の機能は別の機能として実装し、それらが連携して動作するというものになります。 ※モノリシックとは「一枚岩の」という意味です。これ

  • C言語で実行時バックトレース - moratorium

    C言語で実行時バックトレース 2006-07-30 (Sun) 2:43 Unix glibcにはbacktrace()という便利な関数が有るらしいのですが、あえてその中身を自分で実装してしまおうという暇潰しをしてみました。 x86に限ると以下の様な感じでスタックフレームにアクセス出来てしまいます。 int get_stack_trace(void **result) { void **sp = (void**)&result - 2; // sp[0] : pointer to previous frame // sp[1] : caller address // sp[2] : first argument int n = 0; while (sp && n < 100) { result[n++] = *(sp + 1); void **new_sp = (void**)(*sp);

  • 1