-- Views
July 26, 26
スライド概要
はじめまして、yukikoと申します。 IT教育支援や、DX推進が可能です。 ◆ スキル LPIC レベル2 AI / Python Splunk BI(データ可視化・分析) ◆ その他 新卒・未経験の学生向けに、エンジニア転職を応援する資料を趣味で作成しています。 もしよろしければご活用ください。
OSの作り方 システム思考で読み解く、実務課題解決の視点 ―文系出身・実務担当者のためのIT教養講座― 解説:うさうさ研修工房 ALJ Education Plus株式会社
なぜ、いま「OSの作り方」を学ぶのか OSは、限られたCPUやメモリという「資源」を、複数の仕事に どう配分するかを絶えず判断し続けるしくみです。 この講座で身につく実務スキル 優先順位づけの思考法 この「限られた資源を、優先順位をつけて配分し、衝突を調整 する」という考え方は、実はそのまま日々の実務にも当てはま ります。 エンジニアではない担当者ほど、OSの設計思想を俯瞰で理解し ておくことで、開発チームとの会話や課題の切り分けが格段に 限られた時間・人員を、何にどう配分するかの判断軸 全体最適の視点 部分最適に陥らず、システム全体を俯瞰する習慣 トラブル対応の型 スムーズになります。 割り込み・例外処理の考え方を、緊急対応に応用 情報整理の設計力 ファイルシステムの階層発想を、ナレッジ管理に活用 うさうさ研修工房|OSの作り方 02
OSとは何か ― 基本の理解 OS(オペレーティングシステム)とは、コンピュータのハード OSが担う3つの役割 ウェアとアプリケーションの間に立ち、資源の管理と調整を一 手に引き受ける基盤ソフトウェアです。 私たちが普段意識することなくアプリを同時に使えるのは、OS ハードウェアの管理 CPU・メモリ・ディスク・周辺機器を統一的に制御する が裏側でCPU時間・メモリ・記憶領域を絶えず割り振っている からです。 つまりOSとは、“見えない調整役”。ビジネスにおけるプロジェ 資源の割り当てと調整 複数のアプリ・処理に対し、公平かつ効率的に資源を配分する クトマネージャーの働きに近い存在だと捉えると理解しやすく なります。 アプリの実行基盤の提供 開発者が個々のハードウェアを意識せずアプリを作れるようにする うさうさ研修工房|OSの作り方 03
OS開発の全体地図 ― 5つの構成要素 自作OSは、いきなり全部を作るものではありません。電源投入 ① ブートローダー からアプリ実行までを、5つの層に分けて積み上げていくのが 電源投入後、カーネルをメモリへ読み込み起動する 定石です。 この“層で考える”発想そのものが、複雑な業務プロセスを分解 して整理する際にも応用できます。 次のスライド以降では、特に重要な3つのステップ(起動・資 源管理・スケジューリング)を掘り下げます。 ② カーネル OSの中核。資源管理と実行制御を司る司令塔 ③ メモリ管理 プログラムごとにメモリ領域を割り当て・保護する ④ プロセス管理/スケジューリング 複数処理の実行順序と切り替えを制御する ⑤ ファイルシステム データを階層構造で保存・管理するしくみ うさうさ研修工房|OSの作り方 04
Step 1:ブートローダーとカーネルの起動 電源を入れた瞬間、コンピュータはまだ何のプログラムも動い ていない“空の状態”です。最初に動くのがブートローダーで、 ディスク上のカーネルを見つけ出しメモリに読み込みます。 実務目線のポイント 「土台を先に固める」順序設計は、業務フローの初期設計にも 応用できる カーネルが起動すると、CPUのモード切替やメモリ空間の初期 化など、以降すべての処理の土台となる設定が行われます。 最小構成(ミニマム)でまず動かし、後から機能を積み上げる 発想 ここでのポイントは、“何もない状態から、最小限の手順で信 起動時の失敗は全体に波及するため、初期工程ほど慎重な検証 が必要 頼できる基盤を立ち上げる”設計思想です。新規プロジェクト の立ち上げ方にも通じます。 うさうさ研修工房|OSの作り方 05
Step 2:メモリ管理とプロセス管理 複数のプログラムが同時に動くとき、OSは各プログラムに専用 のメモリ領域を割り当て、互いが干渉しないよう保護します。 実務目線のポイント これが「メモリ管理」です。 「誰に・何を・どれだけ」割り当てるかという資源配分の型 同時に、CPUという“一つしかない資源”を複数のプロセスに順 番に使わせる仕組みが「プロセス管理」。実行・待機・停止と 並行して動く複数タスクの状態管理(進行中/待機中/完了) いった状態を管理します。 資源は有限であり、割り当て方次第で全体の効率が大きく変わ 干渉を防ぐ“境界線”を引く設計思想(担当範囲の明確化) る――この発想は、人員配置や予算配分の考え方とそのまま重 なります。 うさうさ研修工房|OSの作り方 06
Step 3:スケジューリングと割り込み処理 OSは常に「次にどのプロセスへCPUを渡すか」を判断していま す。これがスケジューリングで、公平性と効率のバランスをど 実務目線のポイント う取るかが設計の要になります。 定型業務の優先順位づけと、突発対応との両立モデル また、キーボード入力やタイマーなど、外部からの緊急の合図 に応じて処理を一時中断し対応する仕組みが「割り込み処理」 「割り込み」への即応ルールをあらかじめ決めておく重要性 です。 公平性(誰も待たせすぎない)と効率のトレードオフ判断 “計画通りに進める仕組み”と“予定外に即応する仕組み”、この 二つを両立させる考え方は、日々の業務運営そのものです。 うさうさ研修工房|OSの作り方 07
実務への応用 ― OSの発想をビジネスに OSの設計思想は、抽象化すると「限られた資源を、複数の要求 OSの概念 → 実務での対応 に対してどう配分し、衝突をどう調整するか」という一点に集 約されます。 プロセス・スケジューリング タスクの優先順位づけと担当割り振り この視点をそのまま実務に置き換えると、日々の業務課題の多 くが“資源配分問題”として整理できることに気づきます。 右の対応表は、代表的なOSの概念と、実務上の対応関係を整理 メモリ管理 情報・資料の整理と担当範囲の明確化 したものです。会議やチーム運営の場面で、判断の“型”として 活用してください。 割り込み処理 緊急対応ルールの事前設計 ファイルシステム ナレッジ・ドキュメントの階層管理 うさうさ研修工房|OSの作り方 08
学習ロードマップ ― 何から始めるか 「OSを作る」と聞くとハードルが高く感じますが、実際は既存 の教材に沿って小さなOSを一行ずつ写経するところから始めら れます。 1. 基礎知識のインプット OSの役割・全体像を書籍やWikiで把握する 重要なのは、いきなり独自設計を目指さず、動くものを段階的 に理解しながら模写し、その後に自分なりの改造を加えていく 順序です。 この“小さく始めて理解しながら広げる”アプローチ自体も、新 しい業務ツールやスキルを習得する際の実践的な型として使え ます。 2. 教材OSの写経 既存のチュートリアルを手順通りに実装してみる 3. 小さな改造に挑戦 既存コードに機能を1つ追加してみる 4. コミュニティで学び合う フォーラムや勉強会で疑問を共有し理解を深める うさうさ研修工房|OSの作り方 09
まとめ OSとは、限られた資源を複数の要求へ配分し続ける“調整の思 想”そのものです。 起動・メモリ管理・プロセス管理・スケジューリングという各 要素は、そのままビジネスにおける優先順位づけや資源配分の 型に置き換えられます。 参考記事・学習リソース OSDev Wiki 自作OS開発の総合リファレンス。ブートローダーから各種チュートリアルまで網 羅 wiki.osdev.org Operating Systems: Three Easy Pieces コードを書かずとも、この設計思想を理解しておくことは、開 発チームとの対話力・課題解決力を確実に底上げします。 仮想化・並行処理・永続化の3部構成で学べる無料テキスト(Arpaci-Dusseau, Univ. of Wisconsin) pages.cs.wisc.edu/~remzi/OSTEP xv6 (MIT 6.828 教材OS) 教育目的で作られた小型UNIX系OS。実コードを読みながら学べる pdos.csail.mit.edu/6.828 Writing an OS in Rust Rust言語で一からOSを構築する実践的ブログシリーズ(Philipp Oppermann) os.phil-opp.com うさうさ研修工房|OSの作り方 10