Operating System Lecture No.10
Menu
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 USB deviceUnix では、device driver は、kernel 構築時に決定され、boot 時に検出される。
Solaris では、/dev 以下のディレクトリの構成は、ハードウェア構成に対応するように作られている。これらは、boot 時に check され再構成される。check するかどうかは、boot コマンドと、/etc/reconfigure というファイルで制御される。
Kernelの再構築
Kernel は、コンフィグレーション・ファイル(例えば /sys/i386/conf ) によって構成を決めることができる。このあたりの仕組みは、同じUnixでも、さまざまに異なるので注意しよう。
特に Linux では、どうなっているか?
kernelの構築の後に、dynamic にmoduleをloadする方法もある。この方法の利点と欠点はなんだろうか?
Device Driverの構造
ユーザプログラムからのI/O request ( read/write/ioctl/fcntl ) は、kernel を経由した後、device driver に渡される。device driver は、その順序を適当に変更しながら処理を行なう。
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 / ip routing ss 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 | CIFS, NFS, SMTP, ssh, 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 との差
HCI hyperconverged system
Server を比較平坦な形で構成して、その上に software defined な storage を構成する ( Ceph )
そこに VM あるいは Container でサービスを作る
pdoman / docker /singularity KVM / VMwareCloud と連携しても良い
ユーザ管理
LDAPradius
gitlab
Quantum or DNA computing による解読
Verification
Security を保証するためには?
問題10.1
記述問題問題10.2
アンケート岡崎先生のアンケートに答えて下さい。
解答したことをメールで所定の形式で報告すること。サブジェクトのみで良い。