Operating System Lecture 10/16

Menu Menu


ファイル管理


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

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

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

    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

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

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


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