タグ

loaderに関するjjzakのブックマーク (8)

  • linuxの話 (ELF ローダ) — ありえるえりあ

    Recent entries sysfs tips 02 ohyama 2010-09-09 sysfs tips ohyama 2010-09-02 Haskell で周波数スペクトルを得る ohyama 2010-07-29 Haskell で線形識別関数の学習を行う ohyama 2010-07-19 Haskell で逆行列を求める ohyama 2010-07-16 Recent comments Re:vim に lisp 機能をつける t.mimori 2010-12-16 Re:Haskell で周波数スペクトルを得る H.OHYAMA 2010-08-01 Re:lkml でお勉強 (その1-1) Hiroyasu OHYAMA 2009-08-21 Re:lkml でお勉強 (その1-1) kosaki 2009-08-20 Re:vim に lisp 機能をつける o

  • [binary] Hack #5 ELFフォーマット

    via Binary Hack #5 ELF入門 バイナリの勉強。一日目は、ELF入門からやった。 はじめてのバイナリ入門なため間違いがあるかもしれません。 ELF とは実行可能バイナリやオブジェクトファイルなどのフォーマットを規定したフォーマットである。 ELFは先頭4バイトが 0x7F 0x45 0x4C 0x46 のようなマジックナンバーを持つ。 また、fileコマンドで確認できる。 [4296]% file /bin/ls /bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.2.0, dynamically linked (uses shared libs), for GNU/Linux 2.2.0, stripped [4297]% file /bin/cat /bi

  • elf

    ELF(Executable and Linking Format) ELFはUNIX System Laboratories (USL) によって開発され配布されたバイナリフォーマットで、3種類の物が有ります。 ■種類■実行可能ファイル実 行に適したコードやデータを含んでいます。 ■リロケータブル(再配置可能)ファイル他のリロケータブルあるいは共有オブジェクトファイルとリンクするのに適したコードおよびデータを含んでいます。 ■共有オブジェクトファイル(共有ライブラリ)リンク時におけるリンクエディターld および実行時におけるダイナミックリンカーに適したコードとデータを含んでいます。 ダイナミックリンカは実装に依存しますが、ld.so.1、libc.so.1、ld-linux.so.1などと呼ばれています。 ■リンクとロードについて■共有ライブラリ共有ライブラリは、プログラム起動時にロード

    jjzak
    jjzak 2009/05/01
    elf ローダの解説
  • OS作成 - elfローダ編 - ウォンツテック

    Linkers & Loadersを斜め読みしました。例によって理解度は3%くらいなのですが、自分には知らない事が盛りだくさん(ライブラリのメジャー、マイナーバージョン規則やダイナミックリンクの手法等)あったので収穫は大きいです。ただ特定のフォーマット(elf等)のローダを書くときにこのが資料として十分かというとちょっと足りない気がします。IBMのOS/360のオブジェクト構造とか歴史的な読み物としてはおもしろいのですが実践的には使えません(汗。 再配置が発生しないコードならほぼ今やってるCOM形式のようなノリで書けると思いますが、そのまえにちょっとmonaのコードを探索してみます。 mona/core/elf_server/main.cpp static void MessageLoop() { for (MessageInfo msg;;) { if (Message::receiv

    OS作成 - elfローダ編 - ウォンツテック
  • シェルからa.outのプログラムが読み込み、起動、終了するまでの流れ - ウィリアムのいたずらの、まちあるき、たべあるき

    ウィリアムのいたずらが、街歩き、べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も) LinuxデバイスドライバプログラミングというのP65、「main関数の呼び出しフロー」にある図を文章にしてメモメモ。 Linuxでプログラムが読み込まれ、起動、終了するまでです。 ■プログラムの起動 1.(シェル)コマンドラインから、プログラム(a.out等)を指定されて、 起動要求を受ける 2.(glibc)プログラムを実行すべくexecve呼び出し、システムコール発行される 3.(カーネル)sys_execve()が起動され、 バイナリの検証が行われた後 ローダーが起動される 4.(/lib/ld-linux.so.2)ELFインタープリターが起動され →ELF:linuxのバイナリ形式 5.(/lib/libc.so.6)Cライブラリが動的にリンクされて 6.(glib

    シェルからa.outのプログラムが読み込み、起動、終了するまでの流れ - ウィリアムのいたずらの、まちあるき、たべあるき
  • ELF Format

    a.out形式はUNIXで長い間使われてきたが、Unix System Vの登場時に、クロスコンパイルや動的リンクなどに、対応するためにより良い形式が必要だとして、ELF(Executable and Linking Format)が作られました。 ELFは、再配置可可能オブジェクト・実行可能・共有オブジェクト・コアという4種類のファイルがあます。 再配置可可能オブジェクト 再配置可可能ファイルは、アセンブラやコンパイラが作成する、オブジェクトファイル 実行可能 実行可能は、再配置が全て完了し、シンボルも解決してある(実行時に解決される、共有ライブラリのシンボルは除く) "lsコマンド"のような実行可能なファイル 共有オブジェクト リンカ用のシンボル情報と実行時に使われるコードを格納する、共有ライブラリ等のファイル コア ELF ファイルフォーマットを使っている実行可能ファイルはELFヘッ

  • オブジェクトファイルについて

    はじめに Binary Hacks の校正大会にて、あーセクションの話が少し説明不足で不親切だね、っていう話が出ました。あった方がいいかな、と思ったので、宣伝を兼ねて、ここに私が知っていることを書いておきます。 内容としては、 Binary Hacks に比べてかなりいい加減に書いています。例えば調べものは一切せずに書きます。著者の中で最もいい加減な私がよりもいい加減に書いたということで、 Binary Hacks の全ての文章はこれよりはレベルが上、というようなサンプルだと思って下さい。宣伝を兼ねるということで、これ単体ではフォローせずに Binary Hacks のここを見てね、というポインタだけ示す部分が多いです。『』で囲まれた文字列は Binary Hacks の中のハック名に対応しています。 書いてる最中なので、気が向いたら内容を追加します。 詳しい参考文献としては Linke

  • OpenBSD Kernel Hacking meno

    i386 CPU Register (未完) CPUの判別 メモリ機構 セグメント機構 ページング機構1 ページング機構2 割り込みと例外 リアルモードの割り込み/例外 プロテクトモードの割り込み/例外 H/W キーボード コントローラ(KBC) GATE A20 BIOS Data Area IO Base Address OpenBSDで使われるデータ構造 List Singly-linked List(SLIST) Doubly-linked List(LIST) Queue Simple queue(SIMPLEQ) Tail queue(TAILQ) Circle queue(CIRCLEQ) ファイルフォーマット a.out format elf format コンパイラとか GCC マニュアル Gnu Assembler GCC Inline Assembler Kernel

  • 1