リンカ・ローダ実践開発テクニック(リンカ ローダ ジッセン カイハツ テクニック)
実行ファイルを作成するために必須の技術
- 著者:
- 坂井弘亮(サカイ,ヒロアキ)
- 出版社:
- CQ出版
- 出版日:
- 2010年09月
- ISBN:
- 9784789838078
- シリーズ:
- Computer technology
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
本書では、リンカとローダについて、実践を交えながら説明します。コア・ダンプからの実行再開やリンカの自作など、興味深い実験も行います。
技書の森解説
コンパイラが出力したオブジェクトファイルは、リンカによって結合され、ローダによってメモリに配置されてはじめて実行可能になります。この工程はあまりにも自動化されているため、多くのプログラマにとってブラックボックスのままですが、組込み開発や OS 開発、あるいはリンクエラーの根本原因を追うとき、その仕組みの理解が不可欠になります。本書は ELF フォーマットの構造を読み解きながら、リンカとローダを実際に自作するという極めて実践的なアプローチで、この領域を解き明かします。
著者の坂井弘亮氏は組込み OS (KOZOS) の開発者としても知られ、低レイヤーの仕組みを手を動かして学ぶスタイルを一貫して取っています。セクションの配置、シンボル解決、再配置の仕組みを一つずつ自分で書いて動かすことで、`undefined reference` や `multiple definition` といったリンクエラーが何を意味しているのかが構造的に理解できるようになります。
前提として C 言語の読み書きとアセンブリの基礎知識が必要です。対象読者は、アプリケーション層より下のレイヤーに関心がある人、あるいは組込みやシステムプログラミングで「リンカスクリプトを書く」場面に遭遇した人です。この分野を扱う日本語書籍はほとんどなく、代替の効かない貴重な一冊です。
言及 Qiita 記事 (40 件)
アセンブラへの道 coding(42)
♡ 370coding, アセンブラ, 16進数, 小川メソッド, CountdownCalendar2022RustでRISC-V OS自作!はじめの一歩
♡ 152Rust, RISCV, OS自作RustでOSを書いてみる(環境構築編)
♡ 144Rust, 自作OS何がOS実装の理解を難しくしているのかとGNU assemblyの準備
♡ 69UNIX, assembly, OS, xv6ELF形式のOSを起動してみた。
♡ 34ELF, 自作OSxv6実装の詳解(boot処理編: segmentationとpagingを中心に)
♡ 26OS, xv6, paging, segmentationelf.hを読んで実行可能ファイルを直書きする
♡ 22ELFassemblyからhello world programを追いかける
♡ 18Linux, 初心者, assembly, x86_64, ELFELF形式のヘッダ部分を解析する単純なプログラムを作ってみた。
♡ 16ELFコンパイル・リンク・ロードの結果を一覧する
♡ 5C++
この本に興味がある方におすすめ
この本に関連
坂井弘亮 の他の書籍
関連記事
「わかりやすい本」が最良とは限らない
わかりやすさだけで技術書を選ぶと、成長の天井にぶつかります。適度に難しい本が学習効果を最大化する理由と、自分に合った難易度の見極め方を解説します。
バグを生むのは知識不足ではなく想像力不足である
バグの多くは、コードを書いた時点で「こういうケースもありうる」と想像できなかったことが原因です。想像力を鍛える読書法と、エッジケースへの感度を高める方法を解説します。
技術書のアウトプット術 - 読んだ本の価値を 10 倍にする方法
技術書を読んだ後のアウトプット方法を負担の少ないものから 5 段階で紹介。アウトプットが記憶の定着を劇的に改善する理由も解説します。