大神 祐真 (Ohgami Yuma) (サークル名:へにゃぺんて)
目次
- 1. 名刺代わりなページ
- 1.1. 宣伝
- 1.2. 主な活動場所
- 1.3. 同人誌/同人作品
- 1.3.1. セガサターンタイル描画のうすい本
- 1.3.2. DaisyOS GB v0.4
- 1.3.3. へにゃぺんて活動報告2024年春号
- 1.3.4. Daisyworld DEMO - DaisyOS GB v0.3
- 1.3.5. よりシンプルなバイナリ生物学の本
- 1.3.6. SimHでPDP-7ベアメタルプログラミング
- 1.3.7. DaisyOS(仮) v0.1.0
- 1.3.8. へにゃぺんて活動報告2022年秋号
- 1.3.9. セガサターン自作シンセサイザー読本
- 1.3.10. セガサターンとMIDIで通信する本
- 1.3.11. セガサターンCDシステムのうすい本
- 1.3.12. エミュレータのコードを読んでわかるセガサターン
- 1.3.13. ゲームボーイOS「AMADO」v0.03
- 1.3.14. ゲームボーイOS「AMADO」で8ビットマシン語入門
- 1.3.15. へにゃぺんて活動報告2020年夏号(PDF版)
- 1.3.16. へにゃぺんて活動報告2020年夏号
- 1.3.17. ゲームボーイOS「AMADO(仮)」v0.01
- 1.3.18. シェルスクリプトでゲームボーイプログラミング入門
- 1.3.19. バイナリ生成環境「daisy-tools」実験報告
- 1.3.20. バイナリ生物学入門
- 1.3.21. 作って分かる!x86_64機械語入門
- 1.3.22. フルスクラッチで作る!x86_64自作OS パート5 てっとりばやくマルチコア
- 1.3.23. フルスクラッチで作る!x86_64自作OS パート4 ぼくらのイーサネットフレーム!
- 1.3.24. フルスクラッチで作る!x86_64自作OS パート3 システムコールの薄い本
- 1.3.25. 自作OS自動化のPoCとしての遺伝的MBR
- 1.3.26. フルスクラッチで作る!x86_64自作OS パート2 ACPIでHPET取得してスケジューラを作る本
- 1.3.27. フルスクラッチで作る!x86_64自作OS
- 1.3.28. フルスクラッチで作る!UEFIベアメタルプログラミング パート2
- 1.3.29. フルスクラッチで作る!UEFIベアメタルプログラミング
- 1.3.30. Ohgami's Commentary on OS5
- 1.4. 出展情報
- 1.4.1. DONE 2019/11/01: 技術同人誌再販Night★#5
- 1.4.2. DONE 2019/09/22: 技術書典7
- 1.4.3. DONE 2019/08/12: コミックマーケット96
- 1.4.4. DONE 2019/06/01: オープンソースカンファレンス2019 Hokkaido
- 1.4.5. DONE 2019/05/13: 技術同人誌再販Night★#4
- 1.4.6. DONE 2019/05/03: 埼玉実業実学書典(銭けっと)
- 1.4.7. DONE 2019/04/14: 技術書典6
- 1.4.8. DONE 2019/02/24: 第11回 秋コレ
- 1.4.9. DONE 2019/02/23: オープンソースカンファレンス2019 Tokyo/Spring
- 1.4.10. DONE 昨年以前
- 1.5. 発表情報
- 1.5.1. DONE 2024/11/02: openSUSE.Asia Summit 2024
- 1.5.2. DONE 2024/06/28: レトロゲーム勉強会#10
- 1.5.3. DONE 2024/04/20: Open Source UN-Conference 2024 Kawagoe
- 1.5.4. DONE 2024/03/10: オープンソースカンファレンス2024 Tokyo/Spring
- 1.5.5. DONE 2024/01/19: レトロゲーム勉強会#09
- 1.5.6. DONE 2023/12/03: レトロクリエイターズ2023
- 1.5.7. DONE 2023/10/21: オープンソースカンファレンス2023 Tokyo/Fall
- 1.5.8. DONE 2023/09/30: オープンソースカンファレンス2023 Online/Fall
- 1.5.9. DONE 2023/09/02: セキュリティ・キャンプアフターイベント
- 1.5.10. DONE 2023/07/21: レトロゲーム勉強会#08
- 1.5.11. DONE 2023/06/17: オープンソースカンファレンス2023 Online/Hokkaido
- 1.5.12. DONE 2023/03/11: オープンソースカンファレンス2023 Online/Spring
- 1.5.13. DONE 2023/01/13: レトロゲーム勉強会#07
- 1.5.14. DONE 2022/11/26: オープンソースカンファレンス2022 Online/Fukuoka
- 1.5.15. DONE 2022/11/19: 小江戸らぐ 11月のオフな集まり(第244回)
- 1.5.16. DONE 2022/08/09-10: セキュリティ・ネクストキャンプ2022 オンライン
- 1.5.17. DONE 2022/06/25: オープンソースカンファレンス2022 Online/Hokkaido
- 1.5.18. DONE 2022/06/23: レトロゲーム勉強会#06
- 1.5.19. DONE 2022/03/12: オープンソースカンファレンス2022 Online/Spring
- 1.5.20. DONE 2022/01/29: オープンソースカンファレンス2022 Online/Osaka
- 1.5.21. DONE 2021/10/23: オープンソースカンファレンス2021 Online/Fall
- 1.5.22. DONE 2021/08/29: オープンソースカンファレンス2021 Online/Aizu
- 1.5.23. DONE 2021/08/28: オープンデベロッパーズカンファレンス2021 Online
- 1.5.24. DONE 2021/08/11: レトロゲーム勉強会#05
- 1.5.25. DONE 2021/06/26: オープンソースカンファレンス2021 Online/Hokkaido
- 1.5.26. DONE 2021/04/18: 第25回 自作OSもくもく会オンライン
- 1.5.27. DONE 2021/04/17: Open Source unConference 2021 Online/Spring
- 1.5.28. DONE 2020/12/30: 第23回 自作OSもくもく会オンライン
- 1.5.29. DONE 2020/10/25: オープンソースカンファレンス2020 Online/Aizu
- 1.5.30. DONE 2019/11/24: オープンソースカンファレンス2019 Tokyo/Fall
- 1.5.31. DONE 2019/09/21: 小江戸らぐ 9月のオフな集まり(第206回)
- 1.5.32. DONE 昨年以前
- 1.6. 主な活動
- 1.7. 連絡先
- 1.8. その他
- 2. 自作OS
- 3. ベアメタルプログラミング
- 4. Linux
- 5. Emacs
- 6. 電子工作
1 名刺代わりなページ
1.1 宣伝
私の個人サークル「へにゃぺんて」の活動(2022年10月時点まで)をまとめた記事をさくらのナレッジで執筆させていただきました!
- 「自作OS系個人サークル「へにゃぺんて」で作ったものと、そのとき考えていたこと」
1.2 主な活動場所
1.2.1 DONE 最近は使用していない場所
1.3 同人誌/同人作品
紙版はとらのあな様と一部はBEEP様、メロンブックス様にて販売中!
PDF版・HTML版は無料で公開中! EPUB版はBOOK☆WALKER様にて販売中!
1.3.1 セガサターンタイル描画のうすい本
→ PDF版(PDFファイル直リンク(表紙画像リンク先と同じ),技術書典オンラインマーケット)
- 初版発行日: 2024/11/02 (技術書典17)
- セガサターンに搭載された画面描画用のICが持つ「タイル」という描画方式について、エミュレータで動作する小さなサンプルを参考にしつつ、エミュレータ「Yabause」のソースコードを読んで理解します。
1.3.2 DaisyOS GB v0.4
→ プラウザ上でプレイ(itch.io)(上記画像リンク先と同じ)
- 最初の公開日: 2024/06/14
- v0.4.0のカートリッジ版の発行日: 2024/08/12 (コミックマーケット104)
- v0.3に新種の生物として「捕食者」を追加しました
- 捕食者がデイジーを食べることで、v0.3よりも地表温度が生育適温(20℃)付近で安定するようになりました
- ただし、v0.4.0時点ではデイジーを絶滅させてしまうことも多々ありますが・・
- より詳しくはこちらのポスター(PDF)をご覧ください
1.3.3 へにゃぺんて活動報告2024年春号
→ PDF版(PDFファイル直リンク(表紙画像リンク先と同じ))
- 初版発行日: 2024/05/12 (第十回 技術書同人誌博覧会)
- 当サークルの独自OSとして製作している「実行プログラム等のバイナリを生物として扱うOS(DaisyOS)」のゲームボーイ版の現行バージョンを紹介します。
- 独自な世界観に基づくOSですが、「なぜこの様なOSを作るのか」といった所から説明し、このOS自体の解説も行います。
1.3.4 Daisyworld DEMO - DaisyOS GB v0.3
→ プラウザ上でプレイ(itch.io)(上記画像リンク先と同じ)
- 最初の公開日: 2024/01/10
- バイナリ生物学に基づくシステム上でデイジーワールドを動作させるデモをGBソフトとして作ってみたものです
- 白と黒の2種類のデイジーにより地表温度が生育適温(20℃)付近へ自ずと調節されていく様子を見ることができます
- ユーザー操作としては、環境に存在するデイジーを間引いたり(消去)、地表温度を強制的に上げたり下げたり、といった外乱を与えることができます
- 詳しくは上記リンク先のページをご覧ください
1.3.5 よりシンプルなバイナリ生物学の本
→ PDF版(PDFファイル直リンク(表紙画像リンク先と同じ),技術書典オンラインマーケット)
- 初版発行日: 2023/11/11 (技術書典15)
- 「バイナリ生物学」の理論を1960年代のコンピュータであるPDP-7でも動くくらいシンプルにした設計を解説し、PDP-7のシミュレータ上で動作するPoC実装で行った実験とその結果を紹介する本です!
- 実験としては「デイジーワールド」と呼ばれるモデル環境を再現する実験を行いました。「バイナリ生物学の実装の上で生物による自己制御のようなものが働くのかどうか」といった所を実験を用いて紹介します!
- PoC実装は↓で公開しています(GitHub)
1.3.6 SimHでPDP-7ベアメタルプログラミング
→ PDF版(PDFファイル直リンク(表紙画像リンク先と同じ),技術書典オンラインマーケット) 紙版(BEEP)
- 初版発行日: 2023/05/20 (技術書典14)
- 「SimH」というシミュレータを用いて、「PDP-7」という1960年代のコンピュータをアセンブリ言語で直接制御するベアメタルプログラミングを行う本です!
- 基本的な計算の行い方から始め、テレタイプによる入出力で「HELLO WORLD!」や「エコーバック」のプログラムを作ったり、シミュレータ上で動作するベクタースキャンディスプレイを制御したりします!
- サンプルコードは↓で公開しています(GitHub)
- 追加・訂正情報
- Scrapboxに追加の情報などをまとめています
- 「セキュリティ・ネクストキャンプ2023」にて同タイトルの講義を行います!
- 1.1節でPDP-7のリリース年を「1965年」と書いておりましたが正しくは「1964年」であるようです
- 「1965年」というのはWikipediaの記事を見てそのように認識していました
- ただ、同記事には「DIGITAL Computing Timeline では1964年登場とされている」とも書かれています
- 「DIGITAL Computing Timeline」はかつてDECが公開していたウェブサイトであるようで、こちらの方が信憑性が高そうです
- 対して「1965年」には根拠を見つけられませんでした
- 3.6節でLAW命令について「指定された値をACレジスタの下位12ビットへ設定する」と書いていましたが、これは間違いで正しくは「指定された値をACレジスタの下位13ビットへ設定する」でした
- LAW命令について詳しくはこちらをご覧ください
- 4.2節の「表4.3: Type 340命令フォーマット紹介 : パラメータモード」の「(ただし現状のOpen-SimHでは特に意味はない)」の脚注で「ty340_lp_int関数は中身が空あるいはprintf()するだけ」と書いていた件について
- 「printf()するだけ」の方の実装はdisplay/tst340.cというファイルの中にあります
- ファイル名からも分かる通り、これはテストやデバッグの際にリンクされるものなので、通常は使用されません
- そのため、「ty340_lp_int関数は中身が空あるいはprintf()するだけ」と書いていたのは一部誤りで、通常は「ty340_lp_int関数は中身が空」です
1.3.7 DaisyOS(仮) v0.1.0
- 初版発行日: 2022/12/31 (コミックマーケット101)
- バイナリ生物学の理論をGB向けに実装してみたものです
- バイナリ生物学に基づいた独自のデータ構造と状態遷移により、実行バイナリを生物(単細胞生物)として扱います
- それにより、実行バイナリが持つ機械語の命令列を、細胞分裂時の突然変異による進化で目的の形へ作り変える事ができます
- このGB実装では突然変異は一部分のみ
- 詳しくはこちらの紹介ポスター(PDF)をご覧ください
1.3.8 へにゃぺんて活動報告2022年秋号
- 初版発行日: 2022/11/06 (レトロクリエイターズ)
- これ自体がゲームボーイ用自作OS「AMADO」のデモとしてちょっとした画像と実行ファイルが入っています。
- 今回は小ネタとして乱数を聴くことができる「らんすうかなでーる」を同梱しました。
- (エセ)乱数を生成しそれをサウンドの入力値として使う、といった事を行うアプリです。ランダムな8ビットピコピコサウンドを聴くことができます。
- 乱数生成の入力値としてマウスカーソルの座標値を使っていて、十字キーをグリグリすることで乱数に変化を与えることができます。
1.3.9 セガサターン自作シンセサイザー読本
→ PDF版(PDFファイル直リンク(表紙画像リンク先と同じ),技術書典オンラインマーケット) 紙版(BEEP)
- 初版発行日: 2022/08/13 (コミックマーケット100)
- セガサターン自作シンセサイザーについての技術解説本です
- セガサターンの音源ICがシンセサイザーだって作れるほどの機能を持っていることをエミュレータのコードで解説しています
- 追加・訂正情報
- 本書の中で"MC68EC00"と書いている箇所は全て誤記で、正しくは"MC68EC000"でした
1.3.10 セガサターンとMIDIで通信する本
→ PDF版(技術書典オンラインマーケット)(上記画像リンク先と同じ) 紙版(BEEP,とらのあな,メロンブックス)
- 初版発行日: 2022/01/22 (技術書典12)
- 実はセガサターンには、当時あったデバイスを使うことで、電子楽器を接続するインタフェースであるMIDIの接続が行えます
- この本では、それを使ってMIDIキーボードやPCとの通信を試します
- そして、PCとの通信の応用例として、PCから受信した実行バイナリをメモリへロードして実行するローダを作ってみます
- 追加情報
1.3.11 セガサターンCDシステムのうすい本
→ PDF版(技術書典オンラインマーケット)(上記画像リンク先と同じ) 紙版(BEEP,とらのあな,メロンブックス)
- 初版発行日: 2021/12/31 (コミックマーケット99)
- セガサターンのCDドライブ周りは実は内部的に独立したシステムになっています
- この本では、セガサターンのCDシステムを公式で公開している図やエミュレータのソースコードで解説し、実際のCDシステムの制御の様子をエミュレータのログで見ていきます
- 追加情報
1.3.12 エミュレータのコードを読んでわかるセガサターン
→ PDF版(技術書典オンラインマーケット)(上記画像リンク先と同じ) 紙版(BEEP,とらのあな,メロンブックス)
- 初版発行日: 2021/07/10 (技術書典11)
- セガサターンエミュレータ「Yabause」のソースコードを読むことで、セガサターンというハードがどんな作りのハードだったのかを知る、という本です
- ゲームハードのエミュレータは正にそのハードに対する研究結果の結晶のようなものです
- そのソースコードを読むことで、普段ゲームをするだけでは知ることができないゲームハードの作りを具体的に知ることができます
- 追加情報
- 「7/15(木)21時-22時 技術書典11開催スペシャル!書籍紹介!」でご紹介いただきました!
- ↑でも指摘いただいていましたがYabauseからforkした「uoYabause」の開発が進んでいます
- ソースコードリポジトリ:https://github.com/devmiyax/yabause
- 「刺され!技術書アワード 刺さる部門」のファイナリスト作品にノミネートしました!
1.3.13 ゲームボーイOS「AMADO」v0.03
→ ROM版(BOOTH)(上記画像リンク先と同じ) カートリッジ版(BEEP,とらのあな,メロンブックス)
- 初版発行日: 2020/12/30 (エアコミケ2)
- ゲームボーイ上で動作するOS「AMADO」の2度目のバージョンアップです
- v0.03で、ハード(カートリッジ)の助けもあり、RAM側に読み書き可能なファイルシステムを搭載しました
- バイナリエディタを追加したので、RAMのファイルシステム上のファイルを編集できます
- 実行バイナリをバイナリエディタで編集することで、マシン語プログラミング可能!
- ソースコード
- 追加情報
1.3.14 ゲームボーイOS「AMADO」で8ビットマシン語入門
→ PDF版(技術書典オンラインマーケット)(上記画像リンク先と同じ) 紙版(BEEP,とらのあな,メロンブックス)
- 初版発行日: 2020/12/26 (技術書典10)
- ゲームボーイ上で動作するOS「AMADO」を使って、ゲームボーイ上でマシン語プログラミングを体験する本です
- OS側の関数を使うことで、画面に文字を出力したり、ボタン入力を取得したり、ファイル操作をしたり、といった処理を50バイト程度のマシン語で実装します
- 追加情報
1.3.15 へにゃぺんて活動報告2020年夏号(PDF版)
→ PDF版(PDFファイル直リンク(表紙画像リンク先と同じ),技術書典オンラインマーケット)
- 初版発行日: 2020/09/12 (技術書典9)
- オンラインとら祭り2020夏で頒布したGBソフト「へにゃぺんて活動報告2020年夏号」のPDF移植版!
- PDFのフォーマットの勉強として、テキストエディタを使って手書きで作ったPDFです
- アノテーションをフル活用し、PDFでOSを表現してみました
- ファイル一覧の画面に表示されるアイコンをクリックすると、それぞれのコンテンツのページへジャンプします
- そして、右上のXボタンをクリックするとファイル一覧画面へ戻ります
- 「技術書」であるので、PDFのフォーマットの学習コンテンツとして、ちょっとしたダンジョン攻略ゲームをつけています
- ヒントを参考にPDFの仕組みを学びながら、このPDF自体を改造して真の出口見つけてください!
- ソースコード(といっても単に差分管理されたPDF):
1.3.16 へにゃぺんて活動報告2020年夏号
→ ROM版(BOOTH)(上記画像リンク先と同じ) カートリッジ版(とらのあな)
- 初版発行日: 2020/08/14 (オンラインとら祭り2020夏)
- 自作OS等を行っている低レイヤー技術サークル「へにゃぺんて」の最近の活動を紹介するゲームボーイ形式の技術同人誌です!(5画面分のテキストと画像2枚、BGM無し)
- これ自体がゲームボーイ用自作OS「AMADO」のデモになっています!おまけでライフゲームも同梱!
1.3.17 ゲームボーイOS「AMADO(仮)」v0.01
- 初版発行日: 2020/05/10 (コミックマーケット98[中止])
- ゲームボーイ上で動くOSです
- 読み取り専用ですが、ファイルシステムを備えていて、同梱のテキストと画像を閲覧できます
- AMADOへ任意のテキストや画像を組み込むツールも同梱しています
- ソースコード
1.3.18 シェルスクリプトでゲームボーイプログラミング入門
→ PDF版(表紙画像リンク先と同じ) HTML版 紙版(BEEP,とらのあな,メロンブックス)
- 初版発行日: 2020/05/10 (コミックマーケット98[中止])
- シェルスクリプトだけでゲームボーイのROMファイルを作る本です。
- 筆者が開発し使用しているシェルスクリプト製のアセンブラなどを使用して、ステップバイステップで、タイルによる背景描画、キー入力、画面スクロールまでを行います。
- サンプルコードは↓で公開しています(GitHub)
- 追加情報
- GBのアーキテクチャについてはこちら↓も日本語でまとめられていて大変参考になります
1.3.19 バイナリ生成環境「daisy-tools」実験報告
→ PDF版(表紙画像リンク先と同じ) HTML版 紙版(とらのあな,メロンブックス)
- 初版発行日: 2020/02/29 (技術書典8[中止])
- 進化的にバイナリを生成する「daisy-tools」というシステムの本です。
- コンセプトや進化の仕組み、簡単なELFバイナリを生成する実験結果を紹介します!
- サンプルコードは↓で公開しています(GitHub)
- 追加情報
1.3.20 バイナリ生物学入門
→ PDF版(表紙画像リンク先と同じ) HTML版 紙版(とらのあな,メロンブックス)
- 初版発行日: 2019/12/31 (コミックマーケット97)
- 実行バイナリを生物のように扱う処理系の構造と振る舞いのモデルと、実際に単細胞生物として扱うPoCの実験結果を紹介するネタ本です
- 実験では、バイナリが生物の振る舞いをしていることと、例として、ウイルス感染した個体が発生しても系としては正常に戻る様子を紹介しています!
- サンプルコードは↓で公開しています(GitHub)
- 追加情報
1.3.21 作って分かる!x86_64機械語入門
→ PDF版(表紙画像リンク先と同じ) HTML版 紙版(とらのあな,メロンブックス)
- 初版発行日: 2019/09/22 (技術書典7)
- 一つずつ構文を理解していくことで機械語を書いてみる本です
- QEMU上でOSレスで動く実行バイナリを書き、CPUを直接制御します
- サンプルコードは↓で公開しています(GitHub)
- 追加・訂正情報
- 「4.3 画面へ1ピクセル描画してみる」(P60)
- 誤「即値をレジスタ間接で書き込むの場合」→正「即値をレジスタ間接で書き込む場合」
- 「4.5 ランダム色で塗りつぶしてみる」
- この節のサンプルプログラムを実行しても真っ暗な画面しか表示されない場合
- Ctrl-Alt-3でシリアルコンソール画面を確認してみて下さい
- 「!!!! X64 Exception Type - 06(#UD - Invalid Opcode) CPU Apic ID - 00000000 !!!!」というエラーメッセージが出ていて、RIPが0x110014である場合、rdrand命令を解釈できないことでエラーに陥っています
- そのような場合は、まずQEMUを実行するホスト側のCPUがrdrand命令に対応しているか確認して下さい。/proc/cpuinfoの「flags:」に「rdrand」があれば対応しています。
- 対応している場合は、qemu-system-x86_64コマンドに「-cpu host」のオプションを追加するか、「-cpu IvyBridge」のようにrdrand命令に対応したCPUモデル名を明示的に与えると、この問題を回避できる事があります。
- rdrand命令に対応したCPUはWikipediaの記事が参考になります
- 「-cpu」オプションで指定可能なモデル名は「qemu-system-x86_64 -cpu help」というコマンドで確認できます
- (以上、読者の方からの情報でした。ありがとうございます!)
- この節のサンプルプログラムを実行しても真っ暗な画面しか表示されない場合
- 「4.3 画面へ1ピクセル描画してみる」(P60)
1.3.22 フルスクラッチで作る!x86_64自作OS パート5 てっとりばやくマルチコア
→ PDF版(表紙画像リンク先と同じ) HTML版 紙版(とらのあな)
- 初版発行日: 2019/08/12 (コミックマーケット96)
- UEFIのサービスを利用してマルチコア処理を手軽に実装する方法を紹介します
- UEFIを抜けてカーネルへジャンプする以降の内容は一部のUEFIファームウェアでしか実施できないものも含むため参考情報としてご利用ください
- サンプルコードは↓で公開しています(GitHub)
- 追加・訂正情報
- 本文ではUEFIのEFI_MP_SERVICES_PROTOCOLのWhoAmI()が返す値とLocal APIC IDが、同一のプロセッサコアに対しては同じ値であることを想定していますが、ベンダーの実装によっては異なることもあるそうです。(特にハイパースレッディングを無効にして使用している場合)
- 「1.4 AP もカーネルへジャンプさせる」は非推奨な方法であることが分かりました
- StartupAllAPsで各APにカーネルへジャンプさせているのですが、その後ExitBootServicesを実行すると、(おそらく大抵のファームウェアでは)APの処理がUEFI内のhltの無限ループへ強制ジャンプさせられてしまうようです
- UEFIのプラットフォーム初期化部分の仕様には、「ノンブロッキングで実施したAP上の処理は、ExitBootServicesまでに終えていること」と書かれている(*1)ので、(本書の場合、ブロッキングでタイムアウトさせる場合ではありますが)、StartupAllAPs等で実行した処理がExitBootServices後も継続できる事は期待しないほうが良さそうです
- (*1) 「UEFI Platform Initialization Specification」の「13.4 MP Services Protocol」
1.3.23 フルスクラッチで作る!x86_64自作OS パート4 ぼくらのイーサネットフレーム!
→ PDF版(表紙画像リンク先と同じ) HTML版 紙版(とらのあな)
- 初版発行日: 2019/04/14 (技術書典6)
- ついにNICドライバを実装!
- PCIからのデバイス情報取得から始め、NICドライバをフルスクラッチ
- そして、受信はNICが受信したバイナリ列の取得、送信は用意した任意のバイナリ列(オレオレイーサネットフレーム)のNICからの送出、を行います!
- サンプルコードは↓で公開しています(GitHub)
1.3.24 フルスクラッチで作る!x86_64自作OS パート3 システムコールの薄い本
→ PDF版(表紙画像リンク先と同じ) HTML版 紙版(とらのあな)
- 初版発行日: 2018/12/30 (コミックマーケット95)
- 「フルスクラッチで作る!」シリーズ5冊目!システムコール!
- システムコールの仕組みを説明し、実装する本です
- システムコールを実装することで、カーネル・アプリをバイナリレベルで分離します
- また、アプリからアプリを呼び出す仕組みとして「バックグラウンド」・「フォアグラウンド」それぞれの仕組みも実装します
- サンプルコードは↓で公開しています(GitHub)
1.3.25 自作OS自動化のPoCとしての遺伝的MBR
→ PDF版(表紙画像リンク先と同じ) HTML版 紙版(とらのあな)
- 初版発行日: 2018/10/08 (技術書典5)
- 自作OSの自動化のPoC(概念実証)として、BIOSが最初に実行する512バイトのMBR生成をKVMによるMBRテストツールと遺伝的アルゴリズムのシステムを作って自動化します
- サンプルコードは↓で公開しています(GitHub)
- 第1章 /dev/kvmを直接叩いて理解する
- 第2章 既存のコードを改造してMBRテスターを作る
- 第3章 遺伝的MBRを実現する
1.3.26 フルスクラッチで作る!x86_64自作OS パート2 ACPIでHPET取得してスケジューラを作る本
→ PDF版(表紙画像リンク先と同じ) HTML版 紙版(とらのあな)
- 初版発行日: 2018/08/10 (コミックマーケット94)
- 「フルスクラッチで作る!」シリーズ4冊目!ACPI!HPET!スケジューラ!
- 2005年頃からPCのチップセットに組み込まれるようになった比較的新しいタイマーであるHPETの使い方を紹介します
- HPETのハードウェア情報を取得するためにACPIの使い方から紹介します
- HPETで割り込み駆動の周期タイマーの設定方法まで紹介し、それを使ってスケジューラを実装します!
- サンプルコードは↓で公開しています(GitHub)
1.3.27 フルスクラッチで作る!x86_64自作OS
→ PDF版(表紙画像リンク先と同じ) HTML版 EPUB版(BOOK☆WALKER) 紙版(とらのあな)
- 初版発行日: 2018/04/22 (技術書典4)
- 「フルスクラッチで作る!」シリーズ3冊目!前著までの内容で作ったブートローダーを使い、その上で動くカーネルとアプリを作る!
- カーネルとしては、以下を抽象化してアプリへ提供するのみのものです
- フレームバッファ(画面表示)
- キーボードコントローラ(キーボード入力)
- 割り込みコントローラ(割り込み)
- ファイルシステム(簡易RAM FS)
- そして、それらを使うアプリとして「画像ビューア」を作ります
- ブートローダーは前著までの内容で作ったものを使うため、この本から読みはじめてもOK
- 一部ブートローダーを作る上では説明が不足していた箇所は付録に書いています
- サンプルコードは↓で公開しています(GitHub)
- https://github.com/cupnes/x86_64_jisaku_os_samples
- ビルド済みバイナリはこちら
- 前著までの内容で作成したブートローダー(poiboot)のビルド済みバイナリはこちら
- poibootのソースコードは上記のサンプルコードリポジトリに含めています
1.3.28 フルスクラッチで作る!UEFIベアメタルプログラミング パート2
→ PDF版(表紙画像リンク先と同じ) HTML版 EPUB版(BOOK☆WALKER) 紙版(とらのあな)
- 初版発行日: 2017/10/22 (技術書典3)
- エディタとコンパイラだけでUEFIファームウェアを叩く本のパート2です
- TIPS本
- サンプルコードは↓で公開しています(GitHub)
1.3.29 フルスクラッチで作る!UEFIベアメタルプログラミング
→ PDF版(表紙画像リンク先と同じ) HTML版 EPUB版(BOOK☆WALKER) 紙版(とらのあな)
- 初版発行日: 2017/08/11 (コミックマーケット92)
- ライブラリやツールチェイン等を使わず、エディタとコンパイラだけのフルスクラッチでUEFIファームウェアを叩く方法を紹介します
- そして、OSっぽいものを作る本です
- サンプルコードは↓で公開しています(GitHub)
1.3.30 Ohgami's Commentary on OS5
→ PDF版(表紙画像リンク先と同じ) HTML版 EPUB版(BOOK☆WALKER) 紙版(とらのあな)
- 初版発行日: 2017/04/09 (技術書典2)
- QEMU(BIOS + x86 32ビット)向けフルスクラッチ自作OS(OS5)のソースコード+コメンタリー本です
- OS5について詳しくはこちら
1.4 出展情報
1.4.1 DONE 2019/11/01: 技術同人誌再販Night★#5
- 11/1(金) 18:00〜21:00で開催された技術同人誌再販Night★#5でブース出展しました!
- 技術書典7の新刊や、それ以前の既刊の再販です
1.4.2 DONE 2019/09/22: 技術書典7
1.4.3 DONE 2019/08/12: コミックマーケット96
- コミックマーケット96の4日目(8/12(月))に"南リ18b"で出展します!
- 新刊は、自作OS向けにてっとりばやくマルチコアを実現する本です
- UEFIの機能を活用することでアセンブラを書くこと無く2つ目以降のコアを立ち上げ、カーネルへジャンプ
- カーネルでは、今度はUEFI無しでマルチコアを制御
- システムコールにより指定したコアで任意のアプリを実行できるようにします
- 目次など詳しくはブログ記事をご覧ください!
- なお、これまでの既刊もすべて持っていきます!
- 既刊同様、PDF/HTML版は頒布日以降、このページで公開します
1.4.4 DONE 2019/06/01: オープンソースカンファレンス2019 Hokkaido
- 6/1(土)のオープンソースカンファレンス2019 Hokkaidoでブース出展しました!
- 技術書典6の新刊やこれまでの期間の頒布、簡易プロトコルスタックのデモ等を行いました
1.4.5 DONE 2019/05/13: 技術同人誌再販Night★#4
- 5/13(月) 18:00〜21:00で開催された技術同人誌再販Night★#4でブース出展しました!
- 技術書典6の新刊や、それ以前の既刊の再販です
1.4.6 DONE 2019/05/03: 埼玉実業実学書典(銭けっと)
- 5/3(金) 10:00〜18:00で開催された埼玉実業実学書典(銭けっと)でブース出展しました!
- 技術書典6の新刊や、それ以前の既刊の再販です
1.4.7 DONE 2019/04/14: 技術書典6
1.4.8 DONE 2019/02/24: 第11回 秋コレ
- 2/24(日)に秋葉原UDXで開催された第11回 秋コレに「配置:し05」でブース出展しました!
- 前日に出展していたOSC2019Tokyo/Springと同様の出展内容で同人誌頒布と自作OSデモを行っていました
1.4.9 DONE 2019/02/23: オープンソースカンファレンス2019 Tokyo/Spring
- オープンソースカンファレンス2019 Tokyo/Springの2日目(土)にブース出展しました!
- 昨年末の冬コミ(C95)の新刊である「システムコール本」と、それ以前の自作OSシリーズ本も全て持って行き頒布していました
- また、デモではおそらく世界初?のゲーム風インタフェースのGUI紹介や、NIC動作確認アプリの紹介を行っていました
1.4.10 DONE 昨年以前
- DONE 2018/12/30: コミックマーケット95
- コミックマーケット95の2日目(12/30(日))に"東テ55a"で出展します!
- 新刊は「システムコールの薄い本」で、サークルカットでは「x86_64自作OS パート4」と書いていますが、前回の技術書典でこのシリーズとは別の本を出したので、今回でパート3です
- システムコールの仕組みを紹介し、実装してみる本です
- システムコールにより、カーネルとアプリをバイナリレベルで分離できるようになります
- これでいよいよ「OS」と呼んでも良い感じになってきました
- アプリからアプリを呼ぶ仕組みも、「フォアグラウンド」・「バックグラウンド」のそれぞれで実装します
- 目次等、詳しくはブログ記事をご覧ください!
- なお、これまでの既刊もすべて持っていきます!
- 既刊同様、PDF/HTML版は頒布日以降、このページで公開します
- DONE 2018/12/04: 技術同人誌再販Night★#3
- 12/4(火) 18:00〜21:00で開催された技術同人誌再販Night★#3でブース出展しました!
- 技術書典5の新刊や、それ以前の既刊の再販です
- DONE 2018/10/27-28: オープンソースカンファレンス2018 Tokyo/Fall
- オープンソースカンファレンス2018 Tokyo/Fallの両日共にブース出展します!
- 技術書典5の新刊である「遺伝的MBR」本や、これまでの既刊である「フルスクラッチで作る!」シリーズも全て持っていきます!
- 当日はPCでデモなどもできますので、興味があればぜひお立ち寄りください!
- DONE 2018/10/08: 技術書典5
- DONE 2018/09/09: 第10回 秋コレ
- 9/9(日)に秋葉原UDXで開催された第10回 秋コレに「配置:れ16」でブース出展しました!
- コミックマーケット94の新刊や、それ以前の既刊の再販です
- DONE 2018/09/03: 技術同人誌再販Night★#2
- 9/3(月) 18:00〜21:00で開催された技術同人誌再販Night★#2でブース出展とLTしました!
- コミックマーケット94の新刊や、それ以前の既刊の再販です
- LTは「フルスクラッチ自作OSのススメ」というタイトルで当サークルでの「フルスクラッチ」の定義と、ネタとして「日本語シェル」の紹介を行いました
- DONE 2018/08/10: コミックマーケット94
- コミックマーケット94の1日目(8/10(金))に"西め42b"で出展します!
- 新刊は「フルスクラッチで作る!x86_64自作OS パート2 ACPIでHPET取得してスケジューラを作る本」(過去最長タイトル)です!
- 2005年頃からPCのチップセットに組み込まれるようになった比較的新しいタイマーであるHPETの使い方を紹介します
- HPETのハードウェア情報を取得するためにACPIの使い方から紹介します
- HPETで割り込み駆動の周期タイマーの設定方法まで紹介し、それを使ってスケジューラを実装します!
- 目次等、詳しくはブログ記事をご覧ください!
- なお、これまでの既刊もすべて持っていきます!
- 既刊同様、PDF/HTML版は頒布日以降、このページで公開します
- DONE 2018/07/07: オープンソースカンファレンス2018 Hokkaido
- 7/7(土)のオープンソースカンファレンス2018 Hokkaidoでブース出展します!
- 技術書典4でも頒布した新刊・既刊同人誌の頒布や、自作OSのデモを行う予定です
- DONE 2018/07/02: 技術同人誌再販Night★
- 7/2(月)の技術同人誌再販Night★でブース出展します!
- 技術書典4の新刊の再販や、過去のすべての同人誌も持っていきます!
- DONE 2018/04/22: 技術書典4
4/22(日)の技術書典4に"け52"でブース出展します!
↓「フルスクラッチで作る!x86_64自作OS」という本を出します!
- 「フルスクラッチで作る!」シリーズ3冊目!前著までの内容で作ったブートローダーを使い、その上で動くカーネルとアプリを作る!
- カーネルとしては、以下を抽象化してアプリへ提供するのみのものです
- フレームバッファ(画面表示)
- キーボードコントローラ(キーボード入力)
- 割り込みコントローラ(割り込み)
- ファイルシステム(簡易RAM FS)
- そして、それらを使うアプリとして「画像ビューア」を作ります
- ブートローダーは前著までの内容で作ったものを使うため、この本から読みはじめてもOK
- 一部ブートローダーを作る上では説明が不足していた箇所は付録に書いています
目次などはブログ記事をご覧ください!
既刊も持っていきます!
- DONE 2017/12/29: コミックマーケット93
1日目(12/29(金))のLinuxSearchers(LSS)様の「Linux USER Manizx 2017冬号」へ、「UEFIで始める Linux From Scratch」を寄稿しました!
当日は売り子のお手伝いもしてました!
- DONE 2017/10/22: 技術書典3
- DONE 2017/09/09-10: オープンソースカンファレンス2017 Tokyo/Fall
- DONE 2017/08/11: コミックマーケット92
1日目(8/11(金))に"東た27b"で出展します!
- 新刊: フルスクラッチで作る!UEFIベアメタルプログラミング
PDF版は↓からダウンロードできます
- ライブラリやツールチェイン等を使わず、エディタとコンパイラだけのフルスクラッチでUEFIファームウェアを叩く方法を紹介します
- そして、OSっぽいものを作る本です
- サンプルコードは↓で公開しています(GitHub)
- 既刊の"Ohgami's Commentary on OS5"も頒布します
- 既刊同様、PDF版は頒布日以降にこのページで公開します
- 目次や表紙についてはブログ記事を見てみてください
- DONE 2017/07/15: オープンソースカンファレンス2017 Hokkaido
- 7/15(土)にブース出展します!
- "Ohgami's Commentary on OS5"の残りも持っていきますので、興味があればお立ち寄りください!
- DONE 2017/04/29: 超技術書典
- DONE 2017/04/09: 技術書典2
1.5 発表情報
1.5.1 DONE 2024/11/02: openSUSE.Asia Summit 2024
- openSUSE.Asia Summit 2024の1日目(11/2)に「The OS Theory and Design Based on Biological Concepts」というタイトルで発表しました
- 資料などは上記のセッションページをご覧ください
1.5.2 DONE 2024/06/28: レトロゲーム勉強会#10
- 6/28(金)のレトロゲーム勉強会#10でLT発表しました
- LTタイトル:最近のGB向け独自OS活動について
1.5.3 DONE 2024/04/20: Open Source UN-Conference 2024 Kawagoe
- 4/20(土)のOpen Source UN-Conference 2024 KawagoeでLT発表しました
- LTタイトル:独自OS「DaisyOS GB」の紹介
1.5.4 DONE 2024/03/10: オープンソースカンファレンス2024 Tokyo/Spring
- 3/10(日)のオープンソースカンファレンス2024 Tokyo/Springの『OSC20年特別企画「私とOSC」』でLT発表しました
1.5.5 DONE 2024/01/19: レトロゲーム勉強会#09
- 1/19(金)のレトロゲーム勉強会#09でLT発表しました
- LTタイトル:Daisy OSでデイジーワールド!
1.5.6 DONE 2023/12/03: レトロクリエイターズ2023
- 12/3(日)のレトロクリエイターズ2023でサークルと作品について発表しました
- タイトル:へにゃぺんてサークル紹介
1.5.7 DONE 2023/10/21: オープンソースカンファレンス2023 Tokyo/Fall
- 10/21(土)のオープンソースカンファレンス2023 Tokyo/FallでLT発表しました
- LTタイトル:バイナリ生物学でデイジーワールド
1.5.8 DONE 2023/09/30: オープンソースカンファレンス2023 Online/Fall
- 9/30(土)のオープンソースカンファレンス2023 Online/FallでLT発表しました
- LTタイトル:OSC2023 Tokyo/Fall展示内容(予定)と技術書典15向け新刊(執筆中)のご紹介
1.5.9 DONE 2023/09/02: セキュリティ・キャンプアフターイベント
- 9/2(土)のセキュリティ・キャンプアフターイベントでLT発表しました
- LTタイトル:去年「バイナリ生物学」で今年「PDP-7」だったのはなぜなのか?
1.5.10 DONE 2023/07/21: レトロゲーム勉強会#08
- 7/21(金)のレトロゲーム勉強会#08でLT発表しました
- LTタイトル:60年代ゲームハードPDP-7のご紹介
1.5.11 DONE 2023/06/17: オープンソースカンファレンス2023 Online/Hokkaido
- 6/17(土)のオープンソースカンファレンス2023 Online/HokkaidoでLT発表しました
- LTタイトル:来週の展示内容紹介
1.5.12 DONE 2023/03/11: オープンソースカンファレンス2023 Online/Spring
- 3/11(土)のオープンソースカンファレンス2023 Online/SpringでLT発表しました
- LTタイトル:simhでPDP-7ベアメタルプログラミング
1.5.13 DONE 2023/01/13: レトロゲーム勉強会#07
- 1/13(金)のレトロゲーム勉強会#07でLT発表しました
- LTタイトル:DaisyOS(仮)のご紹介
1.5.14 DONE 2022/11/26: オープンソースカンファレンス2022 Online/Fukuoka
- 11/26(土)のオープンソースカンファレンス2022 Online/FukuokaでLT発表しました
- LTタイトル:『へにゃぺんて』のこれまでを振り返るブログ記事の紹介
- スライド資料(SlideShare)
- 録画(YouTube)
- ※ 11/19の小江戸らぐでの10分程度の発表を5分にまとめたものです(スライド資料としてはほとんど同じ)
1.5.15 DONE 2022/11/19: 小江戸らぐ 11月のオフな集まり(第244回)
- 11/19(土)の小江戸らぐ 11月のオフな集まり(第244回)で発表しました
- 発表タイトル:「へにゃぺんて」のこれまでを振り返るブログ記事の紹介
1.5.16 DONE 2022/08/09-10: セキュリティ・ネクストキャンプ2022 オンライン
- セキュリティ・ネクストキャンプ2022 オンラインにて、「バイナリ生物学入門」というタイトルで2コマ(スケジュールN5、N9)の講義を行いました
- 講義で使用したスライド資料はこちら↓(Slideshare)
1.5.17 DONE 2022/06/25: オープンソースカンファレンス2022 Online/Hokkaido
- 6/25(土)のオープンソースカンファレンス2022 Online/HokkaidoでLT発表しました
- LTタイトル:バイナリ生成環境『daisy-tools』のご紹介
1.5.18 DONE 2022/06/23: レトロゲーム勉強会#06
- 6/23(木)のレトロゲーム勉強会#06でLT発表しました
- LTタイトル:セガサターンで動く自作シンセサイザーについて
1.5.19 DONE 2022/03/12: オープンソースカンファレンス2022 Online/Spring
- 3/12(土)のオープンソースカンファレンス2022 Online/SpringでLT発表しました
- LTタイトル:セガサターンでシンセ作り始めてみた
1.5.20 DONE 2022/01/29: オープンソースカンファレンス2022 Online/Osaka
- 1/29(土)のオープンソースカンファレンス2022 Online/OsakaでLT発表しました
- LTタイトル:技術書典12新刊『セガサターンとMIDIで通信する本』の紹介
1.5.21 DONE 2021/10/23: オープンソースカンファレンス2021 Online/Fall
- 10/23(土)のオープンソースカンファレンス2021 Online/Fallの『OSC200回記念ライトニングトーク「OSCと私」』でLT発表しました
- LTタイトル:OSCとみなさんのおかげでした
1.5.22 DONE 2021/08/29: オープンソースカンファレンス2021 Online/Aizu
- 8/29(日)のオープンソースカンファレンス2021 Online/AizuでLT発表しました
- LTタイトル:セガサターンマシン語プログラミングの紹介
1.5.23 DONE 2021/08/28: オープンデベロッパーズカンファレンス2021 Online
- 8/28(土)のオープンデベロッパーズカンファレンス2021 Onlineでセミナー発表しました
- セミナータイトル:ハードの作りで振り返るセガサターン
1.5.24 DONE 2021/08/11: レトロゲーム勉強会#05
- 8/11(水)のレトロゲーム勉強会#05でLT発表しました
- LTタイトル:エミュレータのコードを読んでわかるセガサターン
1.5.25 DONE 2021/06/26: オープンソースカンファレンス2021 Online/Hokkaido
- 6/26(土)のオープンソースカンファレンス2021 Online/HokkaidoでLT発表しました
- LTタイトル:エミュレータのコードを読んでわかる「セガサターン」
1.5.26 DONE 2021/04/18: 第25回 自作OSもくもく会オンライン
- 4/18(日)の第25回 自作OSもくもく会オンラインで発表しました
- 発表タイトル:シェルスクリプトでセガサターンマシン語ベアメタルプログラミング
1.5.27 DONE 2021/04/17: Open Source unConference 2021 Online/Spring
- 4/17(土)のOpen Source unConference 2021 Online/SpringでLT発表しました
- LTタイトル:シェルスクリプトでセガサターンマシン語ベアメタルプログラミング
1.5.28 DONE 2020/12/30: 第23回 自作OSもくもく会オンライン
- 12/30(水)の第23回 自作OSもくもく会オンラインで発表しました
- 発表タイトル:ゲームボーイ向けOSの作り方
1.5.29 DONE 2020/10/25: オープンソースカンファレンス2020 Online/Aizu
- 10/25(日)のオープンソースカンファレンス2020 Online/AizuでLT発表しました
- LTタイトル:メガドラ実機で自作のROMファイルを動かしてみた話
- スライド資料(SlideShare, ROMファイル)
- 録画(YouTube)
1.5.30 DONE 2019/11/24: オープンソースカンファレンス2019 Tokyo/Fall
- 11/24(日)のオープンソースカンファレンス2019 Tokyo/FallでLT発表しました
- LTタイトル:「生きたOS」の話
1.5.31 DONE 2019/09/21: 小江戸らぐ 9月のオフな集まり(第206回)
- 9/21(土)の小江戸らぐ 9月のオフな集まり(第206回)で発表しました
- 内容は技術書典7新刊である「x86_64機械語本」の紹介です
- 冒頭の無限ループプログラムからその機械語表現を理解するところまでを紹介しました
1.5.32 DONE 昨年以前
- DONE 2018/12/08: 小江戸らぐ 12月のオフな集まり(第197回)
- 12/8(土)の小江戸らぐ 12月のオフな集まり(第197回)で発表しました
- 内容は次の冬コミ(C95)の新刊紹介です
- ぷちのこメーカーというサービスでマスコットキャラクター作ってみたこととかも話しました
- DONE 2018/10/28: オープンソースカンファレンス2018 Tokyo/Fall
- 10/28(日)のオープンソースカンファレンス2018 Tokyo/FallでLT発表しました!
- LTタイトル:自作OS自動化のPoCとしての遺伝的MBR
- DONE 2018/04/14: Open Source UN-Conference 2018 Kawagoe
- 4/14(土)のOpen Source UN-Conference 2018 KawagoeでLT発表しました!
- 当日は、自作OS上で発表していましたが、PDF版はコチラにアップロードしています
- DONE 2018/02/24: オープンソースカンファレンス2018 Tokyo/Spring
- 2/24(土)のオープンソースカンファレンス2018 Tokyo/SpringでLT発表しました!
- DONE 2017/12/02: Cybozu Tech Conference 2017
- 12/2(土)のCybozu Tech Conference 2017の東京会場でLT発表しました!
- 発表スライドはこちら
- DONE 2017/10/29: 小江戸らぐ 10月のオフな集まり(第183回)
- 10/29(日)の小江戸らぐ 10月のオフな集まり(第183回)で発表しました。。
- 第8回 自作OSもくもく会と同内容だったのですが、スライド使わずやった所、ぐだぐだに。。。
- DONE 2017/09/18: 第8回 自作OSもくもく会
- 9/18(月)の第8回 自作OSもくもく会で発表しました!
- "UEFIで始めるLinux From Scratch"というタイトルで、「UEFIを使うことで簡単にLFSが始められるよ」という(事を伝えたい)内容です
- 発表スライドはこちら
- DONE 2017/07/22: 第13回 カーネル/VM探検隊&懇親会@東京
- 7/22(土)の第13回 カーネル/VM探検隊&懇親会@東京で飛び入りLTしました!
- 内容はpoiOSの紹介です
- 発表の様子はYouTubeで公開されています
- DONE 2017/06/18: Debian9 "Stretch" リリースパーティ in Tokyo
- 6/18(日)のDebian9 "Stretch" リリースパーティ in TokyoでLTしました!
- "GPD WINでStretchを動かす"というタイトルで、ブログにした内容の紹介です
- 発表スライドはこちら
- DONE 2017/05/09: Tech Pub vol.3―技術書典ふりかえりLT大会!
- 5/9(火)のTech Pub vol.3―技術書典ふりかえりLT大会!でLTしました!
- "技術書典2/超技術書典ふりかえり: 自作OS本を頒布しました"というタイトルで、技術書典2の頒布物の紹介と結果のふりかえりです
- 発表スライドはこちら
- DONE 2017/04/15: Open Source UN-Conference 2017 Kawagoe
- 4/15(土)のOpen Source UN-Conference 2017 KawagoeでLTしました!
- 内容は独自OS委員会第一回公聴会と同じです
- 開催レポート: 今回で5回目!OSunC 2017 川越!!!! - OSPN Press
- DONE 2017/04/13: 独自OS委員会第一回公聴会
- 4/13(木)の独自OS委員会第一回公聴会でLTしました!
- "UEFI向け自作OSの紹介"というタイトルで、OS6の紹介です
- 発表資料
- SlideShare
- 実行バイナリ版(ストレージへ配置して起動することで発表時点のOS6を試すことができます)
- demo_20170413.zip(366KB)、MD5
- DONE 2017/03/04: わんくま同盟 札幌勉強会 #1
- 3/4(土)のわんくま同盟 札幌勉強会 #1で発表しました!
- "UEFIベアメタルプログラミング"というタイトルで、UEFIファームウェアを直接叩くやり方の紹介です
- 発表資料
- DONE 2016/12/17: CLR/H #103 ~ クリスマス オブ ザ デッド ~
- 12/17(土)のCLR/H #103 ~ クリスマス オブ ザ デッド ~でLTしました!
- "【シェル芸】コマンド7つで簡易コンテナ"というタイトルで、chrootとunshareを使ってシェル芸で簡易コンテナを作る内容です
- 発表スライドはこちら
- DONE 2016/12/10: Mini Debian Conference Japan 2016
- 12/10(土)のMini Debian Conference Japan 2016でLTしました!
- "フルスクラッチ自作OS(OS5)の紹介"というタイトルで、OS5の紹介です
- 発表スライドはこちら
- DONE 2016/10/22: ゆるくLTをしよう勉強会@旭川
- 10/22(土)のゆるくLTをしよう勉強会@旭川でLTしました!
- OS5追加機能紹介の予定でしたが、高校生の方ばかりだったので、「どうすれば自作OSができるのか」という話へ切り替えました
- 「"自作OS"といっても魔法でも何でも無く、より下のレイヤーに居るICというハードウェアに対して適切にお願いをするプログラムを書くだけ」という話をしました
- そして時間を超過しました。。
- DONE 2016/07/02: CLR/H #clrh101 ~日本の夏、MR の夏~
- 7/2(土)のCLR/H #clrh101 ~日本の夏、MR の夏~でLTしました!
- "Linuxカーネルのライブパッチを試す"というタイトルで、ブログ記事の内容を紹介しました
- 発表スライドはこちら
- 「その場でライブパッチを試す」というやり方だったので、大したことは書いてないです
- DONE 2016/06/18: オープンソースカンファレンス2016 Hokkaido
- 6/18(土)のオープンソースカンファレンス2016 HokkaidoでLTしました!
- "QEMUでARM64bitベアメタルプログラミング"というタイトルで、AArch64ベアメタルプログラミングの紹介です
- 発表スライドはこちら
- 発表の様子もYouTubeで公開されています
- DONE 2016/04/23: CLR/H #clrh99 ~サクラサク~
- 4/23(土)のCLR/H #clrh99 ~サクラサク~でLTしました!
- 大人の放課後シリーズ#12:『【2000行弱!】x86用自作カーネルの紹介』のスライドでOS5の概要を紹介しました
- DONE 2016/04/08: 大人の放課後シリーズ#12:『【2000行弱!】x86用自作カーネルの紹介』
- 4/8(金)の大人の放課後シリーズ#12:『【2000行弱!】x86用自作カーネルの紹介』で発表しました!
- OS5のカーネルの解説です
- 発表スライドはこちら
1.6 主な活動
1.7 連絡先
- yuma#ohgami.jp (#を@へ変更してください)
- GPG Key
0xF12327D6 (public key)
pub 4096R/F12327D6 2016-06-18 Key fingerprint = AC8A A096 31F1 C1F7 3502 C9CA B2F2 C10C F123 27D6 uid Yuma Ohgami <yuma@ohgami.jp> sub 4096R/1D5816B0 2016-06-18
1.8 その他
- 旧姓: 荒川
2 自作OS
2.1 OS5
- 完全フルスクラッチで独自に作成した初めてのOS
- ブートローダー・カーネル・アプリ全て含めて3000行程度のコンパクトなOS
- 主にカーネルの勉強として作っていて、カーネルが持つべき機能一つ一つを最低限の機能でシンプルに実装している
- アプリはカーネルのテスト用程度のもので、簡単なCUIのみ
対応システム | QEMU |
対応CPU | x86(32ビット) |
対応System BIOS | レガシーBIOS |
ソフトウェア構成 | Ohgamis-Commentary-on-OS5/aboutos5.html#os5_struct |
※ ブート後、カーネル・アプリ動作中の状態 | |
最初のコミット | 2015-02-08 |
ソースコード | リアルモードで動作する最低限のプログラム: |
https://github.com/cupnes/minimum_real_mode | |
↑から分岐: | |
https://github.com/cupnes/os5/ | |
まとめページ | http://funlinux.org/os5/ |
このOSに関する同人誌 | 「Ohgami's Commentary on OS5」 |
動作デモ | ラズパイ上のQEMU(i386)で動作させているデモ: |
https://youtu.be/J5AMeTsV_Fc |
2.2 poiOS(旧:OS6)
- UEFIファームウェア側の機能を直接呼び出すだけでOSっぽいものが作れるのでは?という発想で作ったOS
対応システム | QEMU, PC |
対応CPU | x86(64ビット) |
対応System BIOS | UEFI |
ソフトウェア構成 | UEFI-Bare-Metal-Programming/intro.html#poios_arch |
最初のコミット | 2017-01-01 |
ソースコード | UEFIベアメタルプログラミングを色々試す: |
https://github.com/cupnes/bare_metal_uefi | |
OS6としてリポジトリ化: | |
https://github.com/cupnes/os6 | |
同人誌のサンプルとして作成: | |
https://github.com/cupnes/c92_uefi_bare_metal_programming_samples | |
後に単体でリポジトリ化: | |
https://github.com/cupnes/poios | |
このOSに関する同人誌 | 「フルスクラッチで作る!UEFIベアメタルプログラミング」, |
「フルスクラッチで作る!UEFIベアメタルプログラミング パート2」 | |
動作デモ | その① シェル上でファイルアクセス: |
https://youtu.be/_Y3BebQdb5Y | |
その② 簡易GUIでファイルアクセス: | |
https://youtu.be/ho--4bYXQ8E | |
その③ Linuxブート: | |
https://youtu.be/q0Mw9KVbIqY |
2.3 ゆあOS
- 自分の64ビットPCを直接制御したいという想いで作っているOS
- カーネルの抽象的な機能の作り込みより、色々なデバイスを動かしてみる事を優先している
- HTTP/0.9までのプロトコルスタックを実装してみたり、マルチコアを実験したりしている
- 主にカーネル・アプリが新規作成部分で、ブートローダーはpoiOSをベースに作成したpoibootを使用
- UIとして、ゲーム風UIを搭載
対応システム | QEMU, PC |
対応CPU | x86(64ビット) |
対応System BIOS | UEFI |
ソフトウェア構成 | x86_64-Jisaku-OS-4/intro.html#x86jo4_arch |
※ ブート後、カーネル・アプリ動作中の状態 | |
最初のコミット | 2018-03-20 |
現在の開発リポジトリ | OS: |
https://github.com/cupnes/yuaos | |
※ ブートローダー・カーネル・ユーザーランドをまとめてディスクイメージを作成 | |
ブートローダー: | |
https://github.com/cupnes/poiboot | |
カーネル: | |
https://github.com/cupnes/yuakernel | |
ユーザーランド: | |
https://github.com/cupnes/yuaapps | |
過去の経緯 | 同人誌のサンプルとして作成: |
https://github.com/cupnes/x86_64_poios_samples | |
yuaosという単体のリポジトリ化 | |
(ブートローダー・カーネル・ユーザーランド全部セット) | |
yuaos,poiboot,yuakernel,yuaappsというリポジトリへ分解 | |
(旧yuaosリポジトリはyuakernelへリネーム) | |
このOSに関する同人誌 | 「フルスクラッチで作る!x86_64自作OS」, |
「フルスクラッチで作る!x86_64自作OS パート2 ACPIでHPET取得してスケジューラを作る本」, | |
「フルスクラッチで作る!x86_64自作OS パート3 システムコールの薄い本」, | |
「フルスクラッチで作る!x86_64自作OS パート4 ぼくらのイーサネットフレーム!」, | |
「フルスクラッチで作る!x86_64自作OS パート5 てっとりばやくマルチコア」 | |
動作デモ | その① ゲーム風UI、画像ビューア: |
https://youtu.be/LHDmrfDM7xc | |
その② HTTP/0.9 GETデモ: | |
https://youtu.be/BCTyEREMF6E |
2.4 AMADO
- ゲームボーイ向けOS
- 一つの窓を使いまわすシングルタスクOS
- バックアップRAMを使うことで、我が家のOSとしては初めて読み書き可能なファイルシステムを備えたOSになった
- また、バイナリエディタを搭載しマシン語開発可能になったことで、初めてのセルフ開発可能OSにもなった
対応システム | ゲームボーイ |
対応CPU | LR35902 |
最初のコミット | 2020-03-27 |
ソースコード | https://github.com/cupnes/sh_gbos |
このOSに関する同人誌 | 「シェルスクリプトでゲームボーイプログラミング入門」, |
「ゲームボーイOS「AMADO」で8ビットマシン語入門」 | |
このOSに関する同人作品 | 「ゲームボーイOS「AMADO(仮)」v0.01」, |
「へにゃぺんて活動報告2020年夏号(v0.02)」, | |
「ゲームボーイOS「AMADO」v0.03」 | |
開発中のデモ | カートリッジRAM保存デモ: |
https://twitter.com/yohgami/status/1322867723106332672 | |
バイナリエディタデモ: | |
https://twitter.com/yohgami/status/1329456768779423744 | |
カートリッジRAMリストアデモ: | |
https://twitter.com/yohgami/status/1332704263617662979 |
- ゲームボーイソフトが動く一通りのハードで動作確認している様子
- 即興で作ったお絵かきソフトで2021年の書き初め
2.5 DaisyOS
- バイナリ生物学に基づくOS
- バイナリが生き物のように振る舞えるシステムをOSとして提供する
2.5.1 GB版
- カートリッジ写真と説明画像
- エミュレータ上での動作デモ
- オマケ的に付けたスライドショー機能
- エミュレータ上で動作している様子
- 実機でスーパーゲームボーイを用いて動作している様子(実機の映像と音声の出力を取り込んだもの)
- 実機で動作している様子の写真
3 ベアメタルプログラミング
3.1 UEFIベアメタルプログラミング
- UEFI+x86_64でのOS自作をフルスクラッチでやれるよう、まずはUEFIの勉強としてベアメタルプログラミングをしています
- 勉強した結果 => OS6 => 同人誌向けに作り直し => poiOS
3.1.1 ソースコードリポジトリ
- ベアメタルプログラミングネタ集
- poiOS
3.2 ARM64ビット(AArch64)ベアメタルプログラミング
- AArch64を試したくRaspberry Pi 3を買ったら、Raspbianは32ビットだったのでベアメタルプログラミングしました
3.2.1 ソースコードリポジトリ
3.2.2 ブログ記事
3.3 x86 32ビットベアメタルプログラミング
- プロテクトモードへ移行し、C言語のmain()実行までのサンプルプログラム
- OS5と呼ぶ前までに作っていたものです
- "CodeJP"アセンブラ短歌
- x86アセンブラでOSレスのズンドコきよし
3.4 AGC(Apollo Guidance Computer)ベアメタルプログラミング
- Apollo11号の航行制御を行っていたAGC(Apollo Guidance Computer、アポロ誘導コンピュータ)のソースコードがGitHubで公開されました
- そして、アセンブラとエミュレータも公開されています
- そこで、AGCのエミュレータ上で動くプログラムをベアメタルプログラミングしてみました
3.4.1 作業場所
3.4.2 その他
- Code 2016 in 定山渓温泉にて、Virtual AGCのDSKYでGit buttonをつくりました
- その場でシェル芸との組み合わせででっち上げただけなので、残っておらず。。
- というより、単体のプログラムというものでもない
3.5 6502(ファミコン)ベアメタルプログラミング
- アセンブル/逆アセンブルの確認まで
3.6 メガドライブベアメタルプログラミング
- 作ったプログラムを実機で動作させている様子
4 Linux
4.1 kernel
4.1.1 livepatch
4.1.2 cgroup
4.1.3 debug
4.1.4 getcpu_cache (副題:pwclientの使い方)
4.1.5 signal
4.1.6 file system
- WalBのコンパイルエラー解消パッチ
- 4.14のmerge window中でWalBがビルドエラーに陥っていた
- BIO関連の構造体が変わっていたので、変更に合わせて修正
- mkdosfsで遊ぶ
4.1.7 init
4.1.8 リリース時のリーナスのメールの翻訳
4.2 シェル芸
- chrootとunshareを使い、シェル上でコマンド7つで簡易コンテナ
- シェルスクリプトでスケジューラ
- 文字(列)をアスキーアートで表示する3つのコマンド
- ターミナル起動時に今日の予定を表示する
- 数探しシェルスクリプト
- シェルスクリプトで再帰を使うサンプル
- あるディレクトリ以下の総ファイルサイズを取得するには
- duはブロックサイズなので、findとawkでファイルサイズの総和を得る
- 千早ニュースを取得するシェルスクリプト
- マイク入力の録音
- arecordの使用例
4.2.1 gimg: Google画像検索結果のダウンロード
4.3 debian/raspbian
5 Emacs
5.1 ブログ記事
- Caskでパッケージ管理を始めました
- gamegrid.elで遊んでみよう
- EmacsからPDF出力
- Emacs 24.3のインストール
- debian上でemacsをビルド・インストールする
5.2 org-html-themes
- このページはEmacsのorg-modeで作成し、org-html-themes のテーマを使用してHTMLへエクスポートしています
- 元のorgファイルは以下で公開しています