Operating System Lecture 10/16

## ファイル管理

## 階層型ファイルシステムの取り扱い

## / で区切られた階層にたいしてアクセスする。

ディレクトリごと複写する。

cp -r

login した時に前と同じdirectoryにいるためには?

ls のオプション

-R

* (wild card) を使って調べる。

ls *.c

echo *.c ではいけないのか? (wild card を展開しているのは誰だか考えよう)

## find tool

## find の使い方を調べよう。

man find

Perl の find module の使い方を調べよう。

perldoc -m File::Find

locate database

man locate

locate database の作成法を調べて、locate database が正しく作られているか調べよう。

### 問1

### 自分のディレクトリの下のすべてのCのソースコード・ファイルを見つけ出す方法を何種類か示せ。特定のコンピュータのすべてのCのソースを見つけ出す方法を何種類か示せ。

また、実際に実行し、実行時間を比較せよ。

実行時間を調べるには time コマンドを使う。time コマンドの使い方を調べよ。

## ファイルタイプ

## file コマンド

man file

Extenstion との違いは?

Magic Number とは何か?

### 問2

### 自分のディレクトリの下のすべてのファイルとファイルタイプを表示するプログラムをなるべく短く書く方法を示せ。

## File system Interface

putchar, getchar
fread, fwrite
read, write
seek
file type
directory

バッファがあるものとないものがある。何故両方あるのだろうか?

Unix のI/Oは、file ( /dev/rwd0a ) などにより、ファイルとしての統一されたインタフェースを持っている。

## Disk の構造

disksetup wd0 してみよう。

Cylinder は、Head * Track のまとまり。

### 問3

### Track 間の移動速度 3 msec/track のハードディスクで、Track 5, 20, 100 のアクセスの100msec後に、Track 7, 120, 70, 2 の順でアクセスが来た。これを、もっとも効率よくアクセスするためには、どのような順番でTrackにアクセスすれば良いか?

一番速くアクセスが終ることが最適かどうかについても考察せよ。公平にサービスされているだろうか?

### Unix の File system

### Unix では以下のようなキーワードでファイルシステムが作られている。

raw device, block device
partition
fragmentation
i-node

### Unix i-node

Uhix では、ディレクトリはi-nodeをさし、i-node は木構造のIndexを持つ。空いている領域は、free i-node list にためられる。

### Unix でのディスク管理

### 以下は Unix のファイルシステムに関するコマンドである。

sync
mount
fsck
disksetup
diskdefect
tar
dump/restore

これらについて調べて理解しよう。

また、以下のキーワードについても調べてみよう。

log based file system
recovery
tfs
NFS

## Windows の File system

FAT16
VFAT
FAT32
NTFS

### FAT (File Allocation Table )

MSDOSやWindows で用いれている手法。ディレクトリの中に、一連のブロックへのポインタがリストで格納されている。どのBlockが開いているかを簡単に調べるために Bit Vector を作り、これもファイルシステムの中の特別な部分に置かれる。

### Link, Link count

### Unixでは複数のディレクトリが同じi-nodeを指し示すことがある。また、もしファイルがディレクトリから削除されても、そのファイルをまだopenしているプロセスがいることがある。このように複数のプロセスまたはディレクトリが一つのi-nodeをさすことをリンクという。リンクカウントは、そのi-nodeをさしているディレクトリの数とオープンしているプロセスの数の和である。これが0になって初めてファイルが削除されたことになる。

また、Unixではi-nodeではなく、名前によってもリンクすることができる。この場合は、リンクカウントは関係しない。これはシンボリックリンクと呼ばれる。ディレクトリはハードリンクすることはできないが、シンボリックリンク(Symbolic link)することはできる。何故だろうか?

Symbolic link は、異なるファイルシステム間でもリンクすることができたり、NFSで接続が切れている場合でもリンクすることができる。Unix によって、環境変数によってリンク先を変えることができる条件付きSymbolic link
を導入している場合がある。Symbolic link では、cd .. の結果が奇妙になることがあるので注意しよう。(実際に奇妙な結果になる例を考察してみよ)

### Authentication

ファイルには、OnwerとGroupとmode が付いている。これにより、誰からアクセスできるか、誰からアクセスできないかを決定する。

Unix ではグループで管理する。これは比較的小さな一つのファイルで管理できるところに特徴がある。

しかし、個人個人を対象としたきめ細かなかんりはできない。そのようなことをしたければ、Access/Capability list
を使う。

## User

## /etc/passwd , /etc/master.passwd で管理されている。Uid は数字で16bitのシステムが多かったが、今では32bitが普通。パスワード自体は/etc/master.passwd にあり直接検索できない。また見ることができたとしても、encode されているので解析は不可能ではないが難しい。

## Group

## 複数のユーザをまとめて名前を付けたもの。

## hosts.equiv

## 信じられる(trusted)ホストのリスト

## NIS (Network Information Service)

## Passwd や Group の情報をネットワーク上で一元管理するためのシステム。昔は、Yellow Page といった。NIS+ という分散データベースを用いるより複雑なシステムもある。

## NFS の場合

## NFSでは、exports と、fstab で、どれをaccessするかを決めている。

## Setuid, Setgid

## su コマンド

sendmail の setuid bit の意味は?

(ファイルそのものに、セキュリティの属性を持たせることは正しいのか考えてみよう )

## 問題

## 今日の問題に関しては、まとめて、以下のタイトルで

Subject: Report on Operating System Lecture 10/17

kono@ie.u-ryukyu.ac.jp まで送ること。

出席しない場合でも、このメールを送れば出席扱いとします。

## 宿題

## 「課題 1. ファイル操作とファイル・システム」を、来週までに、おこなうこと。レポートはメールで

Subject: Practice on Operating System Lecture 10/10

というように、課題を出した日付をサブジェクトに入れたメールで提出して下さい。サブジェクトを間違えないこと!

宿題は毎週出るので提出が延びるとはまりますので気を付けてください。

Operating System Lecture 10/16

ファイル管理
階層型ファイルシステムの取り扱い
find tool
問1
ファイルタイプ
問2
File system Interface
Disk の構造
問3
Unix の File system
Unix i-node
Unix でのディスク管理
Windows の File system
FAT (File Allocation Table )
Link, Link count
Authentication
User
Group
hosts.equiv
NIS (Network Information Service)
NFS の場合
Setuid, Setgid
問題
宿題

Shinji KONO / Tue Oct 16 13:05:35 2001