Operating System Lecture 10/16
Menu Menu
ファイル管理
階層型ファイルシステムの取り扱い
/ で区切られた階層にたいしてアクセスする。ディレクトリごと複写する。
cp -rlogin した時に前と同じdirectoryにいるためには?
ls のオプション
-R* (wild card) を使って調べる。
ls *.cecho *.c ではいけないのか? (wild card を展開しているのは誰だか考えよう)
find tool
find の使い方を調べよう。man findPerl の find module の使い方を調べよう。
perldoc -m File::Findlocate database
man locatelocate database の作成法を調べて、locate database が正しく作られているか調べよう。
問1
自分のディレクトリの下のすべてのCのソースコード・ファイルを見つけ出す方法を何種類か示せ。特定のコンピュータのすべてのCのソースを見つけ出す方法を何種類か示せ。また、実際に実行し、実行時間を比較せよ。
実行時間を調べるには time コマンドを使う。time コマンドの使い方を調べよ。
ファイルタイプ
file コマンドman fileExtenstion との違いは?
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/17kono@ie.u-ryukyu.ac.jp まで送ること。
出席しない場合でも、このメールを送れば出席扱いとします。
宿題
「課題 1. ファイル操作とファイル・システム」を、来週までに、おこなうこと。レポートはメールで
Subject: Practice on Operating System Lecture 10/10というように、課題を出した日付をサブジェクトに入れたメールで提出して下さい。サブジェクトを間違えないこと!
宿題は毎週出るので提出が延びるとはまりますので気を付けてください。