Plan9で使われる特殊ファイル

このページでは、Plan9(Version3)で使われる特殊ファイルの概説を載せます。詳しくはマニュアルを見て下さい。

ls -lを実行するとこんな行が出てきます。UNIXと似ていますが、ちょっと違ってます。

cpu% ls -l
--rw-rw-rw- I 0 network bootes 0 Mar 3 03:54 arp
--rw-rw-rw- I 0 network bootes 0 Mar 3 03:54 bootp

赤字でかかれているのが特殊なデバイスが供給するファイルです。

/adm

cache
keys
keyfsが使う暗号化されたPlan9のキーファイル
keys.who
Plan9データベースを使用するユーザ
netkeys
keyfsが使う暗号化されたSevureNetのキーファイル
netkeys.who
SecureNetを使用するユーザ
timeconst
users
whois

/dev

authcheck
authenticate
authenticator
bintime

timeと同じものをバイナリフォーマットで返す
cons

キーボードから打ち込まれたキャラクタが格納されている。

コンソールスクリーンに表示
consctl

rawon:consをrawモードに変更
rawoff:consを通常モードに変更
cputime

現在のプロセスが使用しているuser mode, system call read elapsedtimeを返す。
drivers

ドライバーの一覧を返す
cpu% cat drivers
#/ root
#c cons
#P arch
#e env
#| pipe
#p proc
#M mnt
#s srv
#d dup
#r rtc
#D ssl
#B bridge
#l ether
#I ip
#i draw
#m mouse
#v vga
#S sd
#f floppy
#y i82365
#L lpt
#t ns16552
#G astar
fd0disk
floppyデバイス
fd0ctl

eject: イジェクト
reset: ドライブリセット format type: フォーマット
hostdomain

認証ドメインが格納されている。

認証ドメインを書き込むが、hostownerだけが書き込める。
hostowner

ローカルデバイスの持ち主の名前。具体的には、console loginしたユーザである。
key
null

0が返ってくる

捨て去る
pgrpid

プロセスグループ番号
pid

プロセス番号
ppid

親プロセス番号
random

乱数を返す
reboot
書 reboot: rebootを行う。
カーネルへのパス: 指定されたカーネルファイルでrebootする
host ownserだけが書き込み権限をもつ。
swap

swapとメモリの状況を返す
cpu% cat swap
1208/16963 memory 0/136800 swap
sysname

systemの名前を返す
sysstat

processor number, context switches, interrupts, system calls, page faults, TLB faults, TLB purges, load averageを返す
cpu% cat sysstat
          0    99843218   175251631    16954181      696505           0           0          88 

内容を全てリセットする
time

epoch(32bit), epoch(64bit), clock ticks, clock周波数を返す
cpu% cat time
 1023662323   1023662323554805173       276742551512942             133650979

epochからの時間として時間をセットする。
user

現在のユーザ名を返す
zero

0を無限に返す

/env

ここには環境変数がある。

/fd

ファイル識別子がある。ファイル識別子は固定されないが通常は下記の通り

0
読 標準入力
1
書 標準出力
2
書 標準エラー出力

/mnt

acme
apeselect
arch
cd
cons
consoles
doc
exportfs
keys
keyfsはここにマウントされたユーザのキーをデコードする
netkeys
plumb
rdb
term
wrap
wsys

/net

net.altもシステムによってはある

/net/ethern

clone
[0-7]
0-7はカードのデバイス番号。一つのインタフェースにデフォルトでは4つのIPを割り振れる。
[0-7]/data

ネットワークからのパケットを読む
[0-7]/ctl

connect n: 接続コマンド。nはコマンドのタイプ

接続の番号(0-7)を返す
[0-7]/ifstats</dt>

カードの状態を返す
cpu% cat ifstats
interrupts: 107774
timer: 4121487 12715937
carrierlost: 0
sqeerrors: 0
multiplecolls: 1975
singlecollframes: 1436
latecollisions: 0
rxoverruns: 0
framesxmittedok: 104924
framesrcvdok: 96774
framesdeferred: 10625
bytesrcvdok: 41423586
bytesxmittedok: 63454150
badssd: 0
[0-7]/stats

カードの状態を返す
cpu% cat stats
in: 98122
out: 211161
crc errs: 5
overflows: 0
soft overflows: 0
framing errs: 0
buffer errs: 0
output errs: 0
prom: 0
addr: 0060088b00c8
[0-7]/type

Etherのパケットのタイプを返す