diff --git a/README.md b/README.md index 527b7ec..e9af11a 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,12 @@ HinaOSに手を加えながら本書を読み進めていくことで、OSの仕 本書はOSを体系的に学べるように各機能ごとにまとめて実装例を紹介しています。ただこのアプローチでは、ゼロから作って漸進的に学ぶことが難しく、一体どこから手をつければいいのか分かりにくいものです。 -そこで、「HinaOSベースではなく、ゼロからステップバイステップで自作OSを作りたい」という方のために、7月の[オープンソースカンファレンス2023 京都 (オンライン)](https://event.ospn.jp/osc2023-online-kyoto/session/1040248) でブート処理からシステムコールの実装までの部分を、45分で解説する予定です。この最初の一歩さえ乗り越えられれば、あとは本書の興味のある部分をHinaOSを参考にしながら自作できる知識がつくはずです。動画が上がり次第、補足資料と一緒にリンクを貼る予定です。お楽しみに! +「HinaOSベースではなく、ゼロからステップバイステップで自作OSを作りたい」という方のために [1,000行で小さなRISC-V用OSを作る資料](https://operating-system-in-1000-lines.vercel.app) を用意しました。最初の一歩さえ乗り越えられれば、あとは本書の興味のある部分をHinaOSを参考にしながら自作するための知識・自信がつくはずです。 + +> [!NOTE] +> 「ゼロからの実装の雰囲気を手っ取り早く動画で感じてみたい」という方は [筆者の45分OS自作ライブコーディング (オープンソースカンファレンス)](https://www.youtube.com/watch?v=dPEsTeL2F98) がおすすめです。 +> +> [![筆者の45分OS自作ライブコーディング](http://img.youtube.com/vi/dPEsTeL2F98/0.jpg)](https://www.youtube.com/watch?v=dPEsTeL2F98) ---- diff --git a/from-scratch/README.md b/from-scratch/README.md deleted file mode 100644 index 7f14a19..0000000 --- a/from-scratch/README.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -description: はじめに ---- - -# はじめに - -本書では、小さなOSをゼロから少しづつ作っていきます。OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基本機能は案外単純です。あの巨大Gitリポジトリとして有名なLinuxでさえ、バージョン0.0.1はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 - -本書で作るOS「TamagoOS (たまごOS)」は、C言語で書かれたOSで、マイクロカーネルっぽいカーネル、素朴なコマンドラインシェル、ディスク・ネットワークデバイスドライバ、ファイルの読み書き、ARP/IPv4/ICMP プロトコルを実装しています。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1300行程度です。 - -「1300行であれば一日でできそう」と思うかもしれませんが、初学者であればおそらく3日はかかります。ゼロからOS自作でのハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要があります。特に「ゼロから」の自作となると、CPUのブート処理やコンテキストスイッチ、ページングといったデバッグが難しく挫折しやすい部分が最初に登場します。そこで、本書では正解だけ提示するのではなく、時折わざと間違えてみてデバッグ手法も学んでいきます。 - -ただ、デバッグが辛い分、動いた時の感動もひとしおです。ぜひ本書を通じて、OS開発という楽しい世界を体験してみてください。 diff --git a/from-scratch/SUMMARY.md b/from-scratch/SUMMARY.md deleted file mode 100644 index 541bc19..0000000 --- a/from-scratch/SUMMARY.md +++ /dev/null @@ -1,8 +0,0 @@ -# Table of contents - -* [はじめに](README.md) -* [開発環境](kai-fa-huan-jing.md) - -## Group 1 - -* [Page 1](group-1/page-1.md) diff --git a/from-scratch/group-1/page-1.md b/from-scratch/group-1/page-1.md deleted file mode 100644 index 6f8b497..0000000 --- a/from-scratch/group-1/page-1.md +++ /dev/null @@ -1,2 +0,0 @@ -# Page 1 - diff --git a/from-scratch/kai-fa-huan-jing.md b/from-scratch/kai-fa-huan-jing.md deleted file mode 100644 index 001aefc..0000000 --- a/from-scratch/kai-fa-huan-jing.md +++ /dev/null @@ -1,2 +0,0 @@ -# 開発環境 -