技術書典5で「遺伝的MBR本」出します!

10/8(月・祝)に開催される技術書典5に、
サークル「へにゃぺんて(配置: お07)」で出展します!

新刊は「自作OS自動化のPoCとしての遺伝的MBR」です。


「自作OS自動化」のPoC(概念実証)として、
BIOSにより最初に実行される512バイトのMBR(マスタブートレコード)を対象に、
3章構成で自作OS自動化を実現します!

内容や表紙、目次等、詳しくは↓の「続きを読む」からご覧ください。

 

低レイヤ祭り

なお、今回の技術書典5では「お05」〜「お09」にかけて低レイヤ系のブースが集まっています!

私のサークルなんかより(笑)よっぽどか実用的で使える貴重な情報をまとめられていますので、
ぜひぜひ、お立ち寄りください!


↓にサークルページへのリンクをまとめました(敬称略)。

新刊内容・当日デモなど

以下の3章構成です。

1. /dev/kvmを直接叩いてKVMの使い方を把握する
2. KVMを使った既存のVMサンプルを改造してMBRテストツールを作る
3. テストツールを使用した遺伝的アルゴリズムのシステムを作り、MBR自動生成(遺伝的MBR)


なお、私の趣味で、遺伝的アルゴリズムのシステムが全てシェルスクリプト(300行程度)で作られているというのも密かなポイントです。


MBRではBIOSの機能を呼び出すことができるので、512バイトといえど、画面に文字や絵を書いたり、ディスクからメモリへデータをロードしたりできます。

そのため、例えば「画面を塗りつぶしたピクセル数」を評価値とすると、「画面をより多く塗りつぶした個体(MBR)」が生き残り易くなり、交叉や突然変異によってより多く塗りつぶそうと進化します。

その進化の方法が、思いもよらぬ方法をとったりして、そういったところが面白さかなと思います。


興味深い実験結果は本にも書いていますが、技術書典当日は、いつも通り実機デモをしますので、ぜひ見に来ていただけると嬉しいです!

なお、今回の会場は電源が無く、ノートPCのバッテリーの問題もあり、デモを常設してはいないと思います。お越しいただいた際は出すようにしますが、「デモ見せて」と言っていただければすぐに出します。


また、これまでの期間もすべて持っていきますので、興味があればぜひお立ち寄りください!

 

表紙・裏表紙

 

目次

  • はじめに
    • 本書でやること
    • 本書の構成
    • 開発環境・動作確認環境
    • 本書の PDF 版 /HTML 版やソースコードの公開場所について
  • 第1章 /dev/kvm を直接叩いて理解する
    • 1.1 Hello KVM!
      • 1.1.1 KVM がやってくれること、 KVMVM を作るためにやらなきゃいけないこと
      • 1.1.2 サンプルコード
      • 1.1.3 /dev/kvmをopen
      • 1.1.4 VM 作成
      • 1.1.5 ROM 作成
      • 1.1.6 CPU 作成
      • 1.1.7 CPU レジスタ初期設定
      • 1.1.8 実行
      • 1.1.9 動作確認
    • 1.2 BIOS を動かす
      • 1.2.1 サンプルコード
      • 1.2.2 この項でやること
      • 1.2.3 SeaBIOS を動作させるために必要なこと
      • 1.2.4 割り込みコントローラを追加する
      • 1.2.5 タイマーを追加する
      • 1.2.6 SeaBIOS 自身が入った ROM を追加する
      • 1.2.7 RAM を追加する
      • 1.2.8 デバッグ用シリアルポートを用意する
      • 1.2.9 動作確認
  • 第2章 既存のコードを改造して MBR テスターを作る
    • 2.1 実現すること
    • 2.2 手軽そうなサンプルを探す
    • 2.3 kvmulate について
      • 2.3.1 コンパイル
      • 2.3.2 MBR を作成
      • 2.3.3 実行するには
      • 2.3.4 kvmulate のコード構成
    • 2.4 改造する
    • 2.5 動作確認
    • 2.6 補足: GUI 上の内容を標準出力へ出す
  • 第3章 遺伝的 MBR を実現する
    • 3.1 遺伝的アルゴリズムについて
    • 3.2 実装について
      • 3.2.1 スクリプト全体の処理の流れ
      • 3.2.2 初期個体群生成
      • 3.2.3 評価
      • 3.2.4 フィードバック
    • 3.3 動作確認
      • 3.3.1 テストを用意
      • 3.3.2 実行結果
    • 3.4 補足: 評価方法を工夫する (MBRatoon)
  • おわりに
  • 参考情報
    • 参考にさせてもらった情報