で,いろいろ試しているのだが,とりあえずブートローダーが起動して文字の入出力ができるまでをまとめた.
(シミュレータ編第1回)とりあえず動かしてみた
まだまだ動き始めたばかりですが,徐々に進めていくので興味のある人は待っててください.
とりあえず手元では,cuでシリアル接続してXMODEMでOSのファームをダウンロードして起動をかけるところまでは成功しています.
9月10,11日に東京・日野の明星大学で開催されるオープンソースカンファレンス2010Tokyo/Fall に出展します。
今回も展示はいつもどおりKOZOSの展示ですが、セミナーは番外編として「リンカ・マニアックス 」というタイトルで、リンカについて説明します。
もともとセミナーは1年間は組込みOS自作についてしゃべることで1周しようと思っていたのだけど、東京は前回の2月のOSCですでにしゃべっているということで、今回は番外編として別のことをやることにしました。
内容は、前回のカーネル/VM探検隊 でしゃべったものとだいたい同じですが、もうちょっと詳しく説明したいなあと思っています(カーネルVMのときはちょっと中途半端だった反省があるので)。なのでカーネルVMで聞いて、もう一度ちゃんと聞きたい!というひとは参加してみてください。
内容は以下のような感じです。拙著「リンカ・ローダ実践開発テクニック 」をベースにして、いろいろマニアックな実験をしてみるというものです。書籍は当日回覧する予定ですが、持っている人は手元において見ながら受講するとわかりやすいかもしれません。
※説明は簡略にして、実験を多めにします。また時間が足りなくなった場合、実験を多少省略するかもしれません。
・リンカ・ローダについて簡単に説明
・テキスト、データ、BSS領域についての説明と実験
const変数の書き換え、文字列リテラルの書き換え
・ELFフォーマットについての説明と実験
ELF形式の解析
セクションの作成
バイナリデータの埋め込み
簡易ローダの作成
・リンカスクリプトについての説明と実験
バイナリデータの埋め込みその2
静的変数の再初期化
・コア・ファイルについての説明と実験
core・ファイルの解析
coreファイルからのプログラムの動作再開
・シンボルと再配置についての説明と実験
動的リンカの作成
静的リンカの作成
・checksym紹介
プログラム中で利用されていない変数・関数の一覧を出力するツール
「リンカ・ローダ実践開発テクニック」(CQ出版社、2010/08)の書籍中で紹介しているソースコードを以下でダウンロードできるようにしました。
また〆切のスケジュールの問題で書籍中に収録できなかった追加コラムを、上記で公開しています。
書籍の内容を実際に試してみたいかた、追加のコラムを読みたいかたはぜひどうぞ!
なんか意外に好評の「リンカ・ローダ実践開発テクニック」ですが、CQ出版の対談記事がweb掲載されました。
書籍『リンカ・ローダ実践開発テクニック』発売記念インタビュー
あと、書籍中で紹介している各種サンプルプログラムについてですが、とくに後のほうの章に出てくるソースコードは長めのものが多いので、手で入力するのはちょっとたいへんだと思います。
ということでダウンロードできるように現在準備中なのですが、もうちょっと待ってください。
今すぐにでもソースが欲しい!というかたは、前回のカーネル/VM探検隊で利用したサンプルコードが私のホームページの以下からダウンロードできます。
あまり整理されていませんが、ソースコードの内容はほとんど同じですので、とりあえずこっちを利用してみてください。
セプキャン無事に終わりました。感想はいっぱいあるので、のちほどブログでまとめます。
で、8月22日に「カーネルVM探検隊」で発表します。場所は神保町です。
http://groups.google.co.jp/group/kernelvm
http://atnd.org/events/6796
今回は「リンカ・ローダ実践開発テクニック」の内容を元ネタにして、リンクについてなにかクソマニアックな話をしてこようかと思っています。興味のあるひとはぜひ!