質問: 現在、OS自作入門をベースにOSの開発、学習をしています。 マルチタスクを実装しようと試みているのですがうまくいきません。 OS自作本とは少し設計が違うせいか同じ実装では出来ませんでした。 Web上にあるOS開発のチュートリアルなども参考にしてますがチュートリアルごとに実装が異なるため余計に混乱しています。 ページング機能が有効な場合とそうでない場合、ハードウェアコンテキストスイッチとソフトウェアコンテキストスイッチであったり...。 私が望んでいるのはページングが有効でない場合のコンテキストスイッチです。 ハードウェアコンテキストスイッチかソフトウェアコンテキストスイッチかはあまり気にしていませんが出来ればソフトウェアの方を教えていただきたいです。 回答よろしくお願いします。
回答: 「ページングが有効でない場合の」というのが難しいかと。 それを外して、既知かもしれませんが、こんな記事がありますので参考に。 自作OSの紹介的なの 自作OSでのプロセス実装について (1) ~初めてのユーザプロセス~ 自作OSでのプロセス実装について (2) ~初めてのユーザプロセス~ mopp/Axel あと断片的でしょうが何か参考になれば。 自作OS Advent Calendar 2018 - Adventar 自作OS Advent Calendar 2017 - Adventar 自作OS Advent Calendar 2016 - Adventar 自作OS Advent Calendar 2014 - Adventar FreeDOS ( MS-DOS ) をマルチタスク化 ついでに、これも既知かもしれませんが、同じ本「OS自作入門」を基にした一連の記事です。 0から作るOS開発 こちらはLinuxカーネルを読み解いている記事です。 Linux Kernel ~ コンテキストスイッチ x86編 ~ Linux カーネルのコンテキストスイッチ処理を読み解く x86 Linux のメモリモデル、プロセス空間切り替え、カーネルスタック