Operating System Lecture 01/30
Menu Menu
先週の復習 -- Security
User ID suid
Network and Device driver
device driver の構造
Unix の /dev を調べてみよう。/dev の下にあるのは、node と呼ばれる special file である。これは、Unix がアクセスできるI/O に対してファイルとしての名前を付けたものである。Special file には、通常のファイルと同様に onwer, group, mode がある。Special file は、mknod コマンドによって作られる。/etc/MAKEDEV script を見て、それらの作り方を調べよう。Unix の device driver には以下のようなものがある。
serial driver block device network device PCMCIA deviceBSD/OS では、device driver は、kernel 構築時に決定され、boot 時に検出される。
Solaris では、/dev 以下のディレクトリの構成は、ハードウェア構成に対応するように作られている。これらは、boot 時に check され再構成される。check するかどうかは、boot コマンドと、/etc/reconfigure というファイルで制御される。
問1
Windows では、デバイスの検出とデバイスドライバの扱いはどのようになっているか。Unix の方式に対する利点と欠点について考察せよ。
Kernelの再構築
Kernel は、/sys の下のファイルを使って構築される。学科のシステムでは、/sys の下のファイルの量が多いために、一部の機械にしか入っていない。/usr/open/BSDOS/4.1 の下を見て、/sys の下の構成を見てみよう。Kernel は、/sys/i386/conf の下のファイルによって構成を決めることができる。GENERIC などの雛型から必要なデバイスを付け加えたり、不要なものを取り除いたりしながら新しいconfigurationを作り、
config NEWCONFIGのような形で設定する。すると、/sys/compile/NEWCONFIG の下に、kernel を作るのに適した directory 構造が作られる。
このあたりの仕組みは、同じUnixでも、さまざまに異なるので注意しよう。
Device Driverの構造
ユーザプログラムからのI/O request ( read/write/ioctl/fcntl ) は、kernel を経由した後、device driver に渡される。device driver は、その順序を適当に変更しながら処理を行なう。
+------------+ | | read/write -----> | device | ---> I/O device resut <-------- | | <-- interrupt | | +------------+Device driver は、device からのinterrupt も受け取る。したがって、device driver 内部では、kernelからのI/O request と、interrupt との同期を取る必要がある。これは、kernel 内部の同期機構を使って実現される。Single Processor では、Interrupt 禁止程度で十分だが、Multi Processor では、そうとは限らない。
Device Driver は、階層的な構成をとることがある。例えば、一つのディスクコントローラには、複数のハードディスクが付く。これらの情報は、Device Driver 固有の情報に木構造として格納される。
PCMCIA driver
PCMCIA driver では、動的なカードの抜き差しに対応する必要がある。BSD/OS では、すべてのPCMCIA driver は、cs driver (card service driver)の下にあり、抜き差しが管理されている。
Network Driver
ifconfig routing network built-in mbufKA9Q super loop
Network OS
APSTNDP Please, Do Not Throw Sausage Pizza AwayAPSTNDP の 7階層の役割をを、キーワードと一緒に理解しよう。
Application | Netscape, Outlook | ユーザが使用するアプリケーション | |
Presentation | GIF, ASCII, WAV | コンピュータが理解できるバイナリデータ形式に変換する | |
Session | NFS, SMTP, telnet, httpd | 要求応答の組、サービスの始まりから終りまでを管理する | |
Transport | TCP, 信頼性, 順序性, 再送 | segment | 順序を保証する通信を提供します |
ここに大きなギャップがある。ここより上は一つのPC内部での処理。ここより下は、ネットワーク機器 に分かれている。 | |||
Network | IP アドレス, Routing, ICMP | packet | 複数のネットワークをつなぎ、データを中継する |
Data Link | 物理アドレス, Ethernet Packet | frame | 複数のネットワークをつなぎ、データを中継する |
Physical | ケーブル, NIC | bit | 電気信号や光信号をつなぐ |
Distributed Operating System
NFS remote procedure call concurrent object process migrationMobile Process
Multi-Thread や Process との差
ユーザ管理
.rhostshosts.equiv
NIS
NIS+
Network Security
暗号data と key と同じ長さならば安全One Key
encode(S) encode(S) a ---------------> b ---------------> a二重キー
Public Key P Secret Key S encode(S) encode(P) a ---------------> b ---------------> a encode(S) encode(P) a <--------------- b <--------------- asign
user 1 user 2 encode(S_1) encode(P_1) a <--------------- b <--------------- a encode(P_2) encode(S_2) sign<--------------- x <--------------- signsing key by tself
SSH, SSL
/dev/random
Quantum or DNA computing による解読
Verification
Security を保証するためには?
宿題
今日は宿題はありません...