計算機システム概論・7回目 本日のトピック:やや先進的な話題 OSのネットワーク機能について OSを起動する仕組み 試験の実施方法について
OSのネットワーク機能について:歴史 最初はネットワーク機能なし 基本的に,コンピュータは単体で使用するもの (スタンドアローン形態) peer-to-peer 接続 (1対1接続) の開始 ネットワーク機能は,入出力装置の一種 低レベルの通信制御機能を提供 高 低 抽象レベル (論理性) 入出力 管理 機構 メモリ ネットワーク管理機構 アプリケーション OS プロセス
歴史的な流れ(2) 多対多接続とサービスの拡大 より抽象的で論理的なサービスの提供 ネットを介した資源共用の窓口 高 低 抽象レベル 入出力 ネット ワーク プロセス ネットを介した資源共用の窓口 ファイルやプリンタなどの資源を,複数の計算機で 共用する機能を提供 高 低 抽象レベル 入出力 ネット ワーク プロセス
歴史的な流れ(3) ネットを介した計算能力の提供窓口 プログラムやサービスの一部を,ネットワーク上の 他の計算機にて実行 クライアント・サーバ型サービスから分散型プロセスへ (ネットワークの隠蔽) ネットワークは,サービスを提供する「手段」の一部 ネットワークを意識せずに操作ができる... 高 低 抽象レベル 入出力 ネット ワーク プロセス 入出力 プロセス ネットワーク
プロトコル ネットワークの利用 = 異なるコンピュータ間での「対話」 「対話」のための約束事をきめておく必要がある ネットワークの利用 = 異なるコンピュータ間での「対話」 「対話」のための約束事をきめておく必要がある =「プロトコル(通信プロトコル)」 プロトコルのジレンマ: 同じプロトコルを使わないと,対話ができない ⇒全員を縛るような標準化が必要 ネットワーク技術は進歩が速い ⇒過去に縛られない柔軟性が必要
プロトコルの階層型設計 プロトコルのジレンマへの対処: ⇒ プロトコルを階層的に設計する 下は,ハードウェアに依存する階層 上は,高度に論理的な階層 各階層の「部品」を交換すれば,柔軟に拡張可能 各部品の仕様(機能)だけを決めておけばよい
代表的な階層型モデル どのように階層化するのが良いか OSIの7階層モデル デファクトスタンダードの5階層モデル(TCP/IPモデル) アプリケーション層 アプリケーション層 プレゼンテーション層 区別する意義 があまりない セッション層 L4 トランスポート層 トランスポート層 L3 ネットワーク層 インターネット層 L2 データリンク層 データリンク層 物理層 物理層 OSIの7階層モデル 5階層モデル(TCP/IPモデル)
TCP/IP TCP/IP:元来はARPAネット,BSD版UNIXでの開発・実装 インターネットの「事実上の標準(デファクトスタンダード)」 応用プロトコル アプリケーション層 TCP, UDP トランスポート層 IP IP IP インターネット層 データリンク層 物理層 ホストA ルータ ルータ ホストB
階層モデルとOSの機能 プロトコル階層の全機能を,OSが提供するわけではない 典型的な「切り分け」方 アプリケーション層 アプリケーションソフト トランスポート層 カーネル インターネット層 データリンク層 デバイスドライバ 物理層 機器のファームウェア トランスポート層の機能が,ユーザにサービスを提供 「ソケット」と呼ばれるAPIを利用して, 「ポート」と呼ばれる機構を提供
ポート アプリケーション層:多くのアプリケーションプロセスが存在 Web, telnet, ftp, …. 情報の出入り口(インタフェイス):1~数個 受け取った情報を,アプリケーションに振分ける機構が必要 ⇒ ポート = 私書箱,のようなもの httpd 80 telnetd 23 「宛先は hostA の 23 番ポート」 ftpd 21 hostA
ポート管理とサービスの提供 標準的なサービスを提供するアプリケーション: あらかじめ特定のポート番号が割り振られている http…80番,telnet…23番,ftp…21番,smtp…25番 一般のプロセス:「予約」されていない番号を利用する サーバS 予約済番号 未使用番号の一つ クライアントC httpd 80 3820 explorer telnetd 23 4719 firefox 宛先:S の 80 番,発信元:C の 3820 番 要求内容:http://… の内容を送れ 宛先:C の 3820 番,発信元:S の 80 番 応答内容:<HTML><HEAD>…
ソケット ポートは,OSが提供する資源の一種 プロセスがポートを使いたい時は,OSからポートを「借りる」 プロセス内部に「ソケット」を準備する ソケットとポートを接続する (通信相手でも,同様の対応をしておいてもらう) 1 プロセス 2 プロセス 79
ソケットを利用した通信 ソケットに関して, OSが提供する機能(システムコール): ソケットを新しく作る socket() ソケットとポートを結びつける bind() 情報を受け取れる状態にする listen() ポートを介して,2個のソケットを結びつける connect() 情報の送受信 read(), write() ソケットを閉じる close() socket() bind() listen() read(), write() close() socket() bind() connect() write(), read() close() 受動側ホスト 能動側ホスト
ソケットについて,余談 ソケットは,同一ホストの他のソケットにも情報送受信可能 同一ホスト内で使用する場合,ポートは割り当てない ファイル名を割り当てて,ソケットの住所代わりに ファイル プロセス 内部での接続の場合 プロセス 外部への接続の場合 プロセス間通信の道具にもなる
この続きは,専門の科目で...
OS起動の仕組み コンピュータは,メモリ上のプログラムしか実行できない 電源投入直後は,メモリの内容は空 どこにあるのか,どうやって持ってくるのか.... ⇒ プログラムにより,コンピュータに指示する必要あり ⇒ ブートストラップのジレンマ http://www.devdrv.co.jp/hidaka/node/18 にあったイラストから
電源投入からOS起動まで ブートストラップ処理は,時代によって変遷してきた ここで紹介するのは,今日の典型的なPCの場合 基本的な流れ ハードウェア的に固定されたBIOSが起動 BIOSが,ブートに用いるデバイスを特定 特定されたデバイス内のブート用プログラムに制御が映る ブート用プログラムがOSを読み込み,制御を渡す OSが各種の処理を開始する BIOS ブート用 プログラム OS
BIOS Basic Input and Output System (基本入出力システム) ROMやフラッシュメモリ等,不揮発性メモリに格納される 電源起動直後にBIOSを読み込むよう,ハードウェアを構成 機器の相違を吸収し,基本的な入出力処理を可能に モニタ解像度,キーボード配列,ディスク仕様... 提供する機能 ハードウェア的な故障診断(セルフテスト) ブート用デバイスの特定 ROM BIOS CPU RAM メモリ
ブート用デバイス 一台の計算機には,複数の入力装置が存在 (一般には複数の)ハードディスク装置 CD-ROMドライブ,フロッピーディスクドライブ USBメモリ etc... どの装置からOSを探し出すか? 各装置の優先度を事前に決めておき,設定を保存しておく 優先度の順で,ブートに利用できる装置を探していく ブートに利用できる装置が見つかれば... その装置に格納されたブート用プログラムに制御を渡す
BIOS とブート用プログラム 異なる入力装置は,異なる仕組みで動いている 「任意の入力装置を動かすための仕組み」を,すべて ROM容量は有限,新しい機器への対応ができない... BIOSから,当該装置用プログラムにバトンタッチする BIOS ... 一次ブートローダ 入力装置内のブート用プログラム... 二次ブートローダ と呼ばれることも 二次 ブート ローダ BIOS
ハードディスクの二次ブートローダ 一台の装置に,複数のボリューム(パーティション)が存在 どのパーティションを使うのか,選択が必要 ... BIOS が直面していた問題と,ほぼ同じ構図 ハードディスクでの二次ブート処理を,さらに二段階に分割 ディスクの先頭部分に格納されたブートローダが ボリュームの先頭部分に格納されたブートローダをロード hd0a hd0b hd0d hd0a
MBR MBR (Master Boot Record) ディスクの先頭の,ブートローダを格納する部分 ブートセクタ,ブートブロックとも PC/AT互換機では,MBRは512バイト分(ディスクの1セクタ) 0~445バイトにブートローダのプログラム 446~509バイトにパーティション情報 510, 511バイトに固定シグネチャ(0x55, 0xAA) MBRが壊れると,ディスクが読めなくなる MBRがウィルスに汚染されると,コンピュータが乗っ取られる
OS起動の最終段階 MBRに格納されたブートローダが,ブートパーティションを特定 パーティションの先頭には,別のブートローダが待機 ここまでくれば... 当該パーティションを,ファイルシステムとしてアクセス可能 特別な名前のファイルを OSと理解してロードする vmunix, vmlinux, kernel ... OS起動に関連する設定を,ファイルから読み込む grub.conf ... OSが展開され,起動される
まとめ 本日のまとめ OSのネットワーク機能について OSを起動する仕組み 講義全体(楫担当分)のまとめ OSに関する基礎的な要素を紹介した
試験の実施方法について 5月30日(水)1限(通常の講義時間) L3講義室(この部屋) 中島先生の授業内容 + 楫の授業内容 講義資料(書き込み可)の持ち込みを認める
楫担当分の受験にあたって 【重要】 楫担当分の受験にあたって 「クラウド化が進むと,OSは消えていく」という説がある http://www.sekarasika.com/archives/2165 http://www.gizmodo.jp/2011/10/icloud_2.html http://mojix.org/2010/09/12/os-kieteiku そのような説に対する考え方を問うので,上記のページに 目を通しておくこと(プリントして持参することも可)