ファイル名の解釈

ファイル名から資源へのマッピングは基本的にはファイルサーバが行なっているが,カーネル内のデバイスドライバによって処理される特殊ファイルも存在する.ls -lの結果の左から二番目のカラムがファイルの種類を示している.次は/netの結果だけど,"I"はipデバイスを示している.

term% ls -l /net
--rw-rw-rw- I  0 network glenda  0 Mar  1 15:03 /net/arp
--rw-rw-rw- I  0 network glenda  0 Mar  1 15:03 /net/bootp
--rw-rw-rw- M 15 glenda  glenda  0 Apr  2 06:31 /net/cs
--rw-rw-rw- M 17 glenda  glenda  0 Apr  2 06:31 /net/dns
d-r-xr-xr-x I  0 glenda  glenda  0 Mar  1 15:03 /net/ether0
d-r-xr-xr-x I  0 network glenda  0 Mar  1 15:03 /net/icmp
d-r-xr-xr-x I  0 network glenda  0 Mar  1 15:03 /net/icmpv6
d-r-xr-xr-x I  0 network glenda  0 Mar  1 15:03 /net/il
--r-xr-xr-x I  0 network glenda  0 Mar  1 15:03 /net/ipifc
--rw-rw-rw- I  0 network glenda  0 Mar  1 15:03 /net/iproute
--r--r--r-- I  0 network glenda  0 Mar  1 15:03 /net/ipselftab
--rw-rw-rw- I  0 network glenda  0 Mar  1 15:03 /net/log
--rw-rw-rw- I  0 network glenda 62 Apr  2 06:25 /net/ndb
--r-xr-xr-x I  0 network glenda  0 Mar  1 15:03 /net/tcp
--r-xr-xr-x I  0 network glenda  0 Mar  1 15:03 /net/udp

実際にシステムセットアップ時に,ip(3)デバイスを/netにbindしている.

  bind -a #I /net

このようにカーネルデバイスドライバで処理される特殊ファイルは"#"から始まる決まりになっている.どのような特殊ファイルが存在するかは/dev/driversをcatすればわかる.

term% cat /dev/drivers
#/ root
#c cons
#P arch
#$ pnp
#e env
#| pipe
#p proc
#M mnt
#s srv
#d dup
  :
#S sd
#f floppy
#L lpt
#A audio
#Y cardbus
#y i82365
#t uart
#U usb