い-03
IT-開発-OS/低レイヤ
「自作OS」を軸に技術調査やOS自体の作成、近年は「独自なOS」とするための理論の考案・検証等を行っている個人サークルです。自作OSを行う対象のハードウェアとして、近年はゲームボーイやセガサターン、PDP-7といったレトロハードを対象にしています。
新刊
同人誌・32ページ・紙・500円当サークルの独自OSとして製作している「実行プログラム等のバイナリを生物として扱うOS(DaisyOS)」のゲームボーイ版の現行バージョンを紹介します。
独自な世界観に基づくOSですが、「なぜこの様なOSを作るのか」といった所から説明し、このOS自体の解説も行います。
[目次]
はじめに
第1章 へにゃぺんての「自作OS」について
第2章 DaisyOS GB v0.3
おわりに
普段、実行バイナリや画像ファイル等のバイナリを得る手段として、プログラミングやレタッチソフトでの画像作成などを行います。
ただ、バイナリが得られれば手段は何でも良いと考えると、もっと色々な手段が考えられそうです。
バイナリ生物学では、バイナリを生物として振る舞わせるシステムを考えます。
そして、バイナリが生物の振る舞いをすることで、生物的な「自己進化」・「自己再生」・「自己増殖」により
バイナリが自ずと最適な形へ適応していくシステムを考えます。
本書では、実行バイナリの構成要素を単細胞生物の構成要素と対応付けて考えることで、
実行バイナリにおける「代謝」・「運動」・「成長」・「増殖」・「死」を設計できる事を説明し、
それに基づいて作成したデモで、意図的に混入されたバグが、生物的振る舞いにより自己修復される様子を紹介しています。
[目次]
はじめに
第1章 「⽣きている」と⾔い張る戦略
第2章 設計とモデル
第3章 PoC実装の実⾏結果
おわりに
動作デモ:
https://youtu.be/Ml8CgPcODt0
普段、実行バイナリを得る手段としてプログラミングという方法をとりますが、
本書では、生物学的なアプローチで実行バイナリを生成するシステムを作り、実験した結果を紹介しています。
前著「バイナリ生物学入門」で、実行バイナリと単細胞生物のそれぞれの構成要素を対応付けすることで、実行バイナリを単細胞生物に見立て、
生物の振る舞いである「代謝」・「運動」・「成長」・「増殖」・「死」の設計を解説し、生物的振る舞いによりバグを自己修復するデモを紹介しました。
本書では、新たに「進化」の設計を解説し、ELFバイナリを生成するシステムで、
「機械語命令部分が空(終了ステータスさえ返さないのでエラー終了する)」の実行バイナリから、
「終了ステータス0で正常終了する(exitシステムコールをちゃんと呼ぶ)」実行バイナリへ進化させる実験と、
「Aという1文字を標準出力へ出力する」実行バイナリへ進化させる実験を紹介しています。
[目次]
はじめに
第1章 daisy-toolsのコンセプトとアーキテクチャ
第2章 daisy-toolsの使い方
第3章 実験結果紹介
おわりに
「バイナリ生物学」の理論を1960年代のコンピュータであるPDP-7でも動くくらいシンプルにした設計を解説し、
PDP-7のシミュレータ上で動作するPoC実装で行った実験とその結果を紹介する本です!
実験としては「デイジーワールド」と呼ばれるモデル環境を再現する実験を行いました。
「バイナリ生物学の実装の上で生物による自己制御のようなものが働くのかどうか」といった所を実験を用いて紹介します!
[目次]
はじめに
第1章 PDP-7とバイナリ⽣物学、DaisyOSについて
第2章 PDP-7向け設計の解説
第3章 PoC実装を⽤いた実験の紹介
おわりに
ゲームボーイで動作するOSです。
読み書きと保存ができるファイルシステムを持ち、
同梱のバイナリエディタでゲームボーイ(8ビット)
のマシン語プログラミングが行えます。
(おまけとしてライフゲームプログラムも同梱)
セガサターンのエミュレータのソースコードを読む本です。
本書はC言語がわかれば大丈夫です!
エミュレータのソースコードを読むと、ハードの作りがわかるのはもちろんですが、
色々なゲームを再現するために、「とあるゲームの特殊な振る舞い」とかをサポートするための実装もあったりして
当時のゲーム開発も垣間見えたりします。
ソースコードを読むのが好きで、なおかつセガサターンなどの90年代のゲームハードが好きな方には特におすすめです。
[目次]
はじめに
第1章 Yabauseのソースファイルを分類する
第2章 Yabause本体部分
第3章 CPU周り
第4章 画面描画周り
第5章 サウンド周り
おわりに
セガサターンのCDドライブ周りは実は内部的に独立したシステムになっています。
この本では、セガサターンのCDシステムを公式で公開している図やエミュレータのソースコードで解説し、
実際のCDシステムの制御の様子をエミュレータのログで見ていきます。
[目次]
はじめに
第1章 セガサターンのCDドライブ周り
第2章 エミュレータのソースコードでわかるCDシステムの制御方法
第3章 CDコマンド発行の流れを見る
おわりに
実はセガサターンには、当時あったデバイスを使うことで、電子楽器を接続するインタフェースであるMIDIの接続が行えます。
この本では、それを使ってMIDIキーボードやPCとの通信を試します。
そして、PCとの通信の応用例として、PCから受信した実行バイナリをメモリへロードして実行するローダを作ってみます。
[目次]
はじめに
第1章 セガサターンとMIDIについて
第2章 MIDIキーボードのMIDIメッセージを読む
第3章 PCと繋ぎMIDIメッセージを送受信
第4章 簡単なプロトコルでPCから実行バイナリをロード・実行
おわりに
筆者が行っている「セガサターン自作シンセサイザー」の取り組みについての技術解説本です。
セガサターンの音源ICがシンセサイザーだって作れるほどの機能を持っていることをエミュレータのコードで解説しています。
■ セガサターン自作シンセサイザーのデモ動画集
https://youtube.com/playlist?list=PLyRFvsy-N_GQKmC8_yqhvtLsnxlyxn1Lp
[目次]
はじめに
第1章 セガサターンのサウンド周り
第2章 オシレータとピッチベンド
第3章 EG(エンベロープジェネレータ)
第4章 LFO(低周波オシレータ)
おわりに