はじめに

本書をお手にとっていただきありがとうございます!本書は「バイナリ生物学」と筆者が勝手に呼んでいる学問(?)を紹介する本です。

(大分、与太話なところはありますが、同人誌ということで面白がってもらえれば嬉しいです。)

バイナリ生物学とは何ぞや

完全に筆者の造語ですが、実行バイナリや画像ファイル等のバイナリデータを、まるで生き物のように扱ってみる、という学問(?)です。

普段私達は、実行バイナリを生成する際はソースコードを書いてコンパイルしたり、画像を生成する際はペイントソフトで絵を描いたり、といったことを行います。ただ、これらは結局は何らかのバイナリが並んだデータに過ぎないと考えると、何らかのバイナリとバイナリを結合して作っても良いし、できるのであればバイナリエディタ等でバイナリを手で書いても生成することはできます。

そこで、バイナリ生物学ではバイナリデータの生成過程や実行過程などを生物のように扱うことで、これまでのOSなどとは全く違った新しいシステムが実現できたり、そこまではいかなくとも、何か面白いことができないか、ということを考え、設計し、実装し、評価します。

それによる理想としては、バイナリが生物的な振る舞いを獲得することによる「自己進化」・「自己再生」・「自己増殖」により、エンジニアの能力を超えた機能を提供したり(進化)、バグやウイルスによる実行バイナリの問題を自己解決したり(再生)、必要に応じて自律的に並列度を増やす(増殖)、といったバイナリが生まれること、また、そのようなバイナリを処理できる処理系を提供できること、です。

なお、本書ではそのような究極のバイナリを実現するところまでは行きません。本書では実行バイナリを対象に「生きている」と言い張るための設計と、実装したサンプルプログラムの評価結果を紹介します。

本書の構成

本書は以下の3章構成です。

  • 第1章 「生きている」と言い張る戦略
    • バイナリが生きていると言い張るための戦略と、そのために参考にする生物の構造を説明します
  • 第2章 設計とモデル
    • 生物とするための構造と生きていると言い張るための振る舞いをプログラムで表現するための設計とモデルを説明します
  • 第3章 PoC実装の実行結果
    • PoCとして実装したものの結果を紹介します

本書のPDF版/HTML版やサンプルプログラムについて

これまでの当サークルの同人誌同様、本書もPDF版/HTML版は以下のページで無料で公開しています。また、本書で誤記や更新等があった際もこちらで公開します。

本書で紹介する設計の実装例であるサンプルプログラムは以下のGitHubリポジトリで公開しています。

実装については本書でも扱っていますが、実行方法など詳しくは上記リポジトリのReadmeをご覧ください。