• 検索結果がありません。

OS の構造の境界線の理由 おまけ

N/A
N/A
Protected

Academic year: 2021

シェア "OS の構造の境界線の理由 おまけ"

Copied!
49
0
0

読み込み中.... (全文を見る)

全文

(1)

おまけ

OSの構造の境界線の理由

(2)

OSの構造の絵を思い出してください

(3)

箱の境界線の理由は?

• 階層構造になっていて 階層の間の線引きが されています

ハードウェア

プロセッサ・メモリ 入出力装置

OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

2

(4)

箱の境界線の理由は?

• 階層構造になっていて 階層の間の線引きが されています

• どこに線を引くべきか?

• どの機能をどの層に 入れるべきか

ハードウェア OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

(5)

箱の境界線の理由は?

• 階層構造になっていて 階層の間の線引きが されています

• どこに線を引くべきか?

• どの機能をどの層に 入れるべきか

理由があるのか?

ハードウェア

プロセッサ・メモリ 入出力装置

OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

4

(6)

それなりに理由はあります

(7)

6

それなりに理由はあります

• ややこしいのでさぼりましたが、

それなりに理由があります

(8)

ハードウェアの境界

• ハードとソフトの境界 は、

ハードウェア OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

(9)

ハードウェアの境界

• ハードとソフトの境界 は、命令にあります

ハードウェア

プロセッサ・メモリ 入出力装置

OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

8

(10)

ハードウェアの境界

• ハードとソフトの境界 は、命令にあります

• 命令で書かれたのが ソフトウェア

ハードウェア OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

(11)

ハードウェアの境界

• ハードとソフトの境界 は、命令にあります

• 命令で書かれたのが ソフトウェア

その命令を解釈実行す るのがハードウェア

ハードウェア

プロセッサ・メモリ 入出力装置

OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

10

(12)

ハードウェアの境界

• ハードとソフトの境界 は、命令にあります

• 命令で書かれたのが ソフトウェア

その命令を解釈実行す るのがハードウェア

• CPUのカナモノが決ま れば境界は決まります

ハードウェア OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

(13)

OSとアプリの境界

• OSとアプリの境界は、

ハードウェア

プロセッサ・メモリ 入出力装置

OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

12

(14)

OSとアプリの境界

• OSとアプリの境界は、

OSのサービスで決まり ます

ハードウェア OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

(15)

OSとアプリの境界

• OSとアプリの境界は、

OSのサービスで決まり ます

• どんなサービスを提供 するか、です

ハードウェア

プロセッサ・メモリ 入出力装置

OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

14

(16)

OSとアプリの境界

• OSとアプリの境界は、

OSのサービスで決まり ます

• どんなサービスを提供 するか、です

• アプリはAPIを介して サービスを利用します

(Application Interface)

ハードウェア OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

API

(17)

OSカーネルとカーネル外との境界

• カーネルの境界は

ハードウェア

プロセッサ・メモリ 入出力装置

OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

16

(18)

OSカーネルとカーネル外との境界

• カーネルの境界は 実は保護の境界です

ハードウェア OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

(19)

OSカーネルとカーネル外との境界

• カーネルの境界は 実は保護の境界です

• カーネルは

ハードウェア

プロセッサ・メモリ 入出力装置

OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

18

(20)

OSカーネルとカーネル外との境界

• カーネルの境界は 実は保護の境界です

• カーネルは

– ハードを直接操作し、

ハードウェア OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

(21)

OSカーネルとカーネル外との境界

• カーネルの境界は 実は保護の境界です

• カーネルは

– ハードを直接操作し、

– 外部(上位)からの勝手な アクセスを禁じ、ハード を保護する役目を持つ

ハードウェア

プロセッサ・メモリ 入出力装置

OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

20

(22)

OSカーネルとカーネル外との境界

• カーネルの境界は 実は保護の境界です

• カーネルは

– ハードを直接操作し、

– 外部(上位)からの勝手な アクセスを禁じ、ハード を保護する役目を持つ

• なので、 (ハードによる)

ハードウェア OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

(23)

OSカーネルとカーネル外との境界

• この境界の内側か外側 かの違いが、

カーネル内と外の差

ハードウェア

プロセッサ・メモリ 入出力装置

OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

22

(24)

OSカーネルとカーネル外との境界

• この境界の内側か外側 かの違いが、

カーネル内と外の差

• 保護の基本は

– 共有されるハードを 他のプログラムから 守ること

ハードウェア OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

(25)

OSカーネルとカーネル外との境界

• この境界の内側か外側 かの違いが、

カーネル内と外の差

• 保護の基本は

– 共有されるハードを 他のプログラムから 守ること

– ハードを守る仕組みを 壊されないこと

ハードウェア

プロセッサ・メモリ 入出力装置

OSカーネル

サービス提供 ハードの仮想化

ミドルウェア

サービス提供

作りつけ アプリケー

ション

ユーザ作成 アプリケー

ション

24

(26)

保護の細かい話は別にして それぞれの階層の境界の 理由が分かりましたか?

次へ

×

(27)

26

さて

カーネル保護の仕組の説明です

(面倒な人は飛ばしてもOKです)

(28)

カーネル保護のやりたいこと

• システムは多くのユーザが使う (ネットから を含めて) ので悪意や自分優先の要求がある

– 悪意・ずる・誤りで、壊してしまうかも知れない

• ハードを共有させている管理ソフト (特にカ ーネル) は、安全に使わせなければならない

– ルールを守らせるためには、カーネルを自由に書

き換えたり実行されたりすると困る (禁じたい)

(29)

カーネル保護の登場人物

• ハードウェア

–CPUの実行モード、 モード切替機構 –メモリのアクセス制御(実行を禁じる)

• ソフトウェア

–割込みの活用 ~ 後で詳しく触れる –カーネルの構造 特定の入口だけ入れる

28

(30)

CPUの実行モードとは

• ハードウェアで定義されたもの

– ソフトで書き変えられない機構

(31)

CPUの実行モードとは

• ハードウェアで定義されたもの

• 特権モード(カーネルモード)と ユーザモードの2種類

– (より凝ったCPUもあるが)

30

(32)

CPUの実行モードとは

• ハードウェアで定義されたもの

• 特権モード(カーネルモード)と ユーザモードの2種類

– (より凝ったCPUもあるが)

– CPU内の特権モードフラグのビットが立つ

(33)

CPUの実行モードとは

• ハードウェアで定義されたもの

• 特権モード(カーネルモード)と

ユーザモードの2種類

(より凝ったCPUもあるが)

• 特権モードのハード制約は

32

(34)

CPUの実行モードとは

• ハードウェアで定義されたもの

• 特権モード(カーネルモード)と

ユーザモードの2種類

(より凝ったCPUもあるが)

• 特権モードのハード制約

– メモリに、特権モードのみで実行できるフラグ

を立てられる

(35)

CPUの実行モードとは

• ハードウェアで定義されたもの

• 特権モード(カーネルモード)と

ユーザモードの2種類

(より凝ったCPUもあるが)

• 特権モードのハード制約

– メモリに、特権モードのみで実行できるフラグ を立てられる

⇒ 「カーネルのプログラムは特権モードに なっていないと実行できない」と

いうようにできる

34

(36)

CPUの実行モードとは

• ハードウェアで定義されたもの

• 特権モード(カーネルモード)と

ユーザモードの2種類

(より凝ったCPUもあるが)

• 特権モードのハード制約

– メモリに、特権モードのみで実行できるフラグ を立てられる

– 特権モードに入れるのは、割込みが起こるか、

SVC命令を実行した時だけ(勝手に移れない)

(37)

CPUの実行モードとは

• ハードウェアで定義されたもの

• 特権モード(カーネルモード)と

ユーザモードの2種類

(より凝ったCPUもあるが)

• 特権モードのハード制約

– メモリに、特権モードのみで実行できるフラグ を立てられる

– 特権モードに入れるのは、割込みが起こるか、

SVC命令を実行した時だけ(勝手に移れない)

36

スーパーバイザ・コール命令

(38)

で、以下の設定にする

• アプリはユーザモードで実行、

カーネルは特権モードのみで実行

(39)

で、以下の設定にする

• アプリはユーザモードで実行、

カーネルは特権モードのみで実行

38

カーネルのメモリを特権モードのみ実行許可

(40)

で、以下の設定にする

• アプリはユーザモードで実行、

カーネルは特権モードのみで実行

• 特権モードに移る時(割込み・SVC命令)

必ず割込み処理プログラムを実行させる

(41)

で、以下の設定にする

• アプリはユーザモードで実行、

カーネルは特権モードのみで実行

• 特権モードに移る時(割込み・SVC命令)

必ず割込み処理プログラムを実行させる

40

実はSVC命令は、内部的に割込発生で実現する

(42)

で、以下の設定にする

• アプリはユーザモードで実行、

カーネルは特権モードのみで実行

• 特権モードに移る時(割込み・SVC命令)

必ず割込み処理プログラムを実行させる

• これによって

– ユーザがカーネル内の好きな部分を実行するこ

とはできない

(43)

で、以下の設定にする

• アプリはユーザモードで実行、

カーネルは特権モードのみで実行

• 特権モードに移る時(割込み・SVC命令)

必ず割込み処理プログラムを実行させる

• これによって

– ユーザがカーネル内の好きな部分を実行するこ とはできない

42

ジャンプして飛び込んでもモード違反で実行不可

(44)

で、以下の設定にする

• アプリはユーザモードで実行、

カーネルは特権モードのみで実行

• 特権モードに移る時(割込み・SVC命令)

必ず割込み処理プログラムを実行させる

• これによって

– ユーザがカーネル内の好きな部分を実行するこ とはできない

– 必ず、特定の入口 (割込み処理) を経て入るので

(45)

更に

• 入出力命令を特権命令とし

(特権モードでないと実行できない命令)

ユーザモードでは入出力機器を扱えない ようにする

44

(46)

更に

• 入出力命令を特権命令とし

(特権モードでないと実行できない命令)

ユーザモードでは入出力機器を扱えない ようにする

• システムを制御するレジスタ等も

特権モードでないと扱えないようにする

(47)

更に

• 入出力命令を特権命令とし

(特権モードでないと実行できない命令)

ユーザモードでは入出力機器を扱えない ようにする

• システムを制御するレジスタ等も

特権モードでないと扱えないようにする などによってユーザから保護する

46

(48)

カーネル保護の仕組はやっかいなので ざっと理解しておけば良いでしょう

本当に必要になった時に

もう一度復習して下さい

(49)

48

カーネル保護の考え方が 分かりましたか?

次へ

×

参照

関連したドキュメント

不変量 意味論 何らかの構造を保存する関手を与えること..

定理 ( 長谷川 ) 直積を持つ圏と、トレース付きモノイダル圏の間のモ ノイダル随伴関手から、 dinaturality

絡み目を平面に射影し,線が交差しているところに上下 の情報をつけたものを絡み目の 図式 という..

(a) 主催者は、以下を行う、または試みるすべての個人を失格とし、その参加を禁じる権利を留保しま す。(i)

各国でさまざまな取組みが進むなか、消費者の健康保護と食品の公正な貿易 の確保を目的とする Codex 委員会において、1993 年に HACCP

【おかやまビーチスポーツフェスティバルの目的】

このエアコンは冷房運転時のドレン(除湿)水を内部で蒸発さ

・底部にベントナイトシート,遮水シート ※1 を敷設し,その上に遮水 シート ※1