シラバス
オペレーティングシステム(前期2単位)
教授 須崎有康、客員教授 盛合敏
1.授業のねらい
OSは情報システムの基盤であるため、情報セキュリティを論ずる時にOSの知識は必須である。現在は、制御システムや携帯端末、組込みシステム等、様々な形態の情報システムが存在するが、この講義でははじめに、汎用OSを対象とする一般的な基礎理論について説明し、これを修得する。その後、Linuxを例に、特にセキュリティに関係するOSの役割と機能を整理し、その中で、CPUの持つセキュリティ機能との連携についても学ぶ。最後に、簡単なOSを実際に作成することで、具体的な知識の獲得を目指す。
2.到達目標
- OSの基礎理論を理解する。
- OSと情報セキュリティの関係について理解する。
- OSの基本的な実装方法について理解する。
3.授業計画と開講形態
原則として、全回教室で開講する。授業計画は以下の通りである。
Ⅰ.OSの基礎理論第1回 OS外観とセキュリティの関係
OSの役割、OSの歴史、ハードウェアの進化、組込みOS
第2回 ハードウェアとOS
特権命令、割込み、システムコール
第3回 プロセスとスレッド
プロセス、スレッド、タスクスイッチ、スケジューリング
第4回 メモリ管理
物理メモリ、仮想記憶、MMU、スワップ
第5回 ファイルシステム
ファイル、ディレクトリ、ファイルシステムの信頼性
第6回 入出力
I/O、デバイスドライバ、シリアルデバイス、ブロックデバイス
第7回 デッドロック
競合状態、哲学者の食事、セマフォ
Ⅱ.OSと情報セキュリティ
第8回 認証・認可
マルチユーザ管理、パスワード、アクセス権限
第9回 仮想マシンとコンテナ
ハイパーバイザー、Virtual Machine、コンテナ、CPUの仮想化対応
第10回 セキュアOS
リファレンスモニタ、ポリシー制御、セキュアブート、TPM
第11回 隔離実行環境
TEE: Trusted Execution Environment、Confidential Computing、CPUのTEE拡張
Ⅲ.OS作成演習
第12回 OS開発環境のインストールと使い方
エミュレータ、C/C++コンパイラ、Git、Make
第13回 ブートローダとミニカーネルの作成
BIOS、UEFI、カーネル
第14回 メモリ管理の実装
コンソール出力、メモリマップ、セグメンテーション、ページング
第14回 システムコールの実現
割込み処理、アプリケーションの起動、OSの保護、システムコール
4.教科書
特に指定しない。5.参考書
- Operating Systems: Three Easy Pieces, Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau
PDFが公開されています。
https://github.com/mthipparthi/operating-systems-three-easy-pieces - インテル® 64および IA-32 アーキテクチャーのソフトウェア開発者マニュアル
https://www.intel.co.jp/content/www/jp/ja/support/articles/000006715/processors.html - モダンオペレーティングシステム第2版、アンドリュー.S.タネンバウム、ピアソン・エデュケーション・ジャパン (2004/12/7)
日本語は第2版までしかないですが、英語はModern Operating Systems, 4th Editionがあります - はじめてのOSコードリーディング UNIX V6で学ぶカーネルのしくみ, ISBN: 4774154644.
- ゼロからのOS自作入門,ISBN 978-4-8399-7586-9
6.関連科目
次の科目を履修済み、または同時に履修することが望ましい
セキュアプログラミングとセキュアOS、アルゴリズム基礎、プログラミング、情報システム構成論、ソフトウェア構成論
7.成績評価の方法
毎回の小テストを中心(70%程度)にレポート、実習の成果(30%程度)から総合的に評価する。
8.その他
毎回の小テストを中心(70%程度)にレポート、実習の成果(30%程度)から総合的に評価する。
PCは毎回持参のこと。小テストにはGoogle Classroomを用いる。また、演習は各自のPC(Windows、macOS、Ubuntuのいずれかが動作し、100GB以上のストレージ空き領域があること)を用いる。演習に必要となるOS開発環境の事前準備については、受講者に別途周知する。
Copyright © INSTITUTE of INFORMATION SECURITY. All rights Reserved.