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 device

BSD/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
   mbuf

KA9Q super loop


Network OS

  APSTNDP
  Please, Do Not Throw Sausage Pizza Away

APSTNDP の 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 migration

Mobile Process

Multi-Thread や Process との差


ユーザ管理

.rhosts

hosts.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  <--------------- a

sign
   user 1                            user 2
      encode(S_1)           encode(P_1)
   a <--------------- b  <--------------- a
      encode(P_2)           encode(S_2)
 sign<--------------- x  <--------------- sign

sing key by tself

SSH, SSL

/dev/random


Quantum or DNA computing による解読


Verification

Security を保証するためには?


宿題

今日は宿題はありません...


Shinji KONO / Tue Jan 30 13:05:06 2001