ファイル名の解釈
ファイル名から資源へのマッピングは基本的にはファイルサーバが行なっているが,カーネル内のデバイスドライバによって処理される特殊ファイルも存在する.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