Table des matières

Dernière mise-à-jour : 2020/01/30 03:28

SO213 - Gestion du matériel et des Performances

Gestion des Paramètres du Matériel

Fichiers Spéciaux

Dans l'ordinateur les périphériques sont reliés à un contrôleur qui communique avec le processeur à l'aide d'un bus. Le contrôleur ainsi que les périphériques nécessitent des pilotes. Sous Solaris, les pilotes sont généralement fournis sous la forme d'un module. Chaque périphérique est représenté par un fichier spécial dans le répertoire /dev et c'est dans ce fichier que le système trouve les informations nécessaires pour s'adresser au pilote.

Consultez le contenu du répertoire /dev :

# ls -l /dev
total 494
lrwxrwxrwx   1 root     root          26 janv  3  2010 agpgart -> ../devices/agpgart:agpgart
lrwxrwxrwx   1 root     other         30 janv  3  2010 allkmem -> ../devices/pseudo/mm@0:allkmem
lrwxrwxrwx   1 root     other         27 janv  3  2010 arp -> ../devices/pseudo/arp@0:arp
lrwxrwxrwx   1 root     root          25 janv  3  2010 bl -> ../devices/pseudo/bl@0:bl
drwxr-xr-x   3 root     root         512 janv  3  2010 brand
lrwxrwxrwx   1 root     root          28 janv  3  2010 ce -> ../devices/pseudo/clone@0:ce
drwxr-xr-x   4 root     root         512 janv  3  2010 cfg
lrwxrwxrwx   1 root     other         31 janv  3  2010 conslog -> ../devices/pseudo/log@0:conslog
lrwxrwxrwx   1 root     other         30 janv  3  2010 console -> ../devices/pseudo/cn@0:console
drwxr-xr-x   3 root     root         512 janv  3  2010 cpu
lrwxrwxrwx   1 root     root          33 janv  3  2010 crypto -> ../devices/pseudo/crypto@0:crypto
lrwxrwxrwx   1 root     root          39 janv  3  2010 cryptoadm -> ../devices/pseudo/cryptoadm@0:cryptoadm
lrwxrwxrwx   1 root     root          33 janv  3  2010 diskette -> ../devices/isa/fdc@1,3f0/fd@0,0:c
lrwxrwxrwx   1 root     root          33 janv  3  2010 diskette0 -> ../devices/isa/fdc@1,3f0/fd@0,0:c
drwxr-xr-x   2 root     sys         1024 janv  3  2010 dsk
drwxr-xr-x   3 root     root         512 janv  3  2010 dtrace
lrwxrwxrwx   1 root     root          29 janv  3  2010 dump -> ../devices/pseudo/dump@0:dump
lrwxrwxrwx   1 root     root          32 janv  3  2010 e1000g -> ../devices/pseudo/clone@0:e1000g
lrwxrwxrwx   1 root     root          39 janv  3  2010 e1000g0 -> ../devices/pci@0,0/pci8086,1e@3:e1000g0
lrwxrwxrwx   1 root     root          29 janv  3  2010 ecpp0 -> ../devices/isa/lp@1,378:ecpp0
lrwxrwxrwx   1 root     root          33 août 29 09:55 fb -> /devices/pci@0,0/display@2:text-0
lrwxrwxrwx   1 root     root          10 janv  3  2010 fb0 -> fbs/text-0
drwxr-xr-x   2 root     root         512 janv  3  2010 fbs
dr-xr-xr-x   2 root     root        2064 août 30 15:49 fd
lrwxrwxrwx   1 root     root           4 janv  3  2010 fd0 -> fd0c
lrwxrwxrwx   1 root     root          33 janv  3  2010 fd0a -> ../devices/isa/fdc@1,3f0/fd@0,0:a
lrwxrwxrwx   1 root     root          33 janv  3  2010 fd0b -> ../devices/isa/fdc@1,3f0/fd@0,0:b
lrwxrwxrwx   1 root     root           9 janv  3  2010 fd0c -> diskette0
lrwxrwxrwx   1 root     root          25 janv  3  2010 fm -> ../devices/pseudo/fm@0:fm
lrwxrwxrwx   1 root     root          30 janv  3  2010 fssnapctl -> ../devices/pseudo/fssnap@0:ctl
lrwxrwxrwx   1 root     other         29 janv  3  2010 ibd -> ../devices/pseudo/clone@0:ibd
lrwxrwxrwx   1 root     other         29 janv  3  2010 icmp -> ../devices/pseudo/icmp@0:icmp
lrwxrwxrwx   1 root     other         31 janv  3  2010 icmp6 -> ../devices/pseudo/icmp6@0:icmp6
lrwxrwxrwx   1 root     other         25 janv  3  2010 ip -> ../devices/pseudo/ip@0:ip
lrwxrwxrwx   1 root     other         27 janv  3  2010 ip6 -> ../devices/pseudo/ip6@0:ip6
lrwxrwxrwx   1 root     root          30 janv  3  2010 ipauth -> ../devices/pseudo/ipf@0:ipauth
lrwxrwxrwx   1 root     root          27 janv  3  2010 ipf -> ../devices/pseudo/ipf@0:ipf
lrwxrwxrwx   1 root     root          27 janv  3  2010 ipl -> ../devices/pseudo/ipf@0:ipf
lrwxrwxrwx   1 root     root          32 janv  3  2010 iplookup -> ../devices/pseudo/ipf@0:iplookup
lrwxrwxrwx   1 root     root          29 janv  3  2010 ipnat -> ../devices/pseudo/ipf@0:ipnat
lrwxrwxrwx   1 root     root          30 janv  3  2010 ipscan -> ../devices/pseudo/ipf@0:ipscan
lrwxrwxrwx   1 root     other         35 janv  3  2010 ipsecah -> ../devices/pseudo/ipsecah@0:ipsecah
lrwxrwxrwx   1 root     other         37 janv  3  2010 ipsecesp -> ../devices/pseudo/ipsecesp@0:ipsecesp
lrwxrwxrwx   1 root     root          31 janv  3  2010 ipstate -> ../devices/pseudo/ipf@0:ipstate
lrwxrwxrwx   1 root     root          30 janv  3  2010 ipsync -> ../devices/pseudo/ipf@0:ipsync
lrwxrwxrwx   1 root     other         31 janv  3  2010 kbd -> ../devices/pseudo/conskbd@0:kbd
lrwxrwxrwx   1 root     root          35 janv  3  2010 kdmouse -> ../devices/isa/i8042@1,60/mouse@1:l
lrwxrwxrwx   1 root     other         35 janv  3  2010 keysock -> ../devices/pseudo/keysock@0:keysock
lrwxrwxrwx   1 root     root          29 janv  3  2010 kmdb -> ../devices/pseudo/kmdb@0:kmdb
lrwxrwxrwx   1 root     other         27 janv  3  2010 kmem -> ../devices/pseudo/mm@0:kmemlrwxrwxrwx   1 root     root          29 janv  3  2010 kssl -> ../devices/pseudo/kssl@0:kssl
lrwxrwxrwx   1 root     root          31 janv  3  2010 kstat -> ../devices/pseudo/kstat@0:kstat
lrwxrwxrwx   1 root     other         31 janv  3  2010 ksyms -> ../devices/pseudo/ksyms@0:ksyms
lrwxrwxrwx   1 root     root          30 janv  3  2010 llc1 -> ../devices/pseudo/clone@0:llc1
lrwxrwxrwx   1 root     root          30 janv  3  2010 llc2 -> ../devices/pseudo/clone@0:llc2
lrwxrwxrwx   1 root     root          37 janv  3  2010 lockstat -> ../devices/pseudo/lockstat@0:lockstat
lrwxrwxrwx   1 root     root          28 janv  3  2010 lofictl -> ../devices/pseudo/lofi@0:ctl
lrwxrwxrwx   1 root     other         27 janv  3  2010 log -> ../devices/pseudo/log@0:log
lrwxrwxrwx   1 root     root          35 janv  3  2010 logindmux -> ../devices/pseudo/clone@0:logindmux
lrwxrwxrwx   1 root     root          29 janv  3  2010 lp1 -> ../devices/isa/lp@1,378:ecpp0
drwxr-xr-x   2 root     root         512 janv  3  2010 md
lrwxrwxrwx   1 root     other         26 janv  3  2010 mem -> ../devices/pseudo/mm@0:mem
lrwxrwxrwx   1 root     root          32 janv  3  2010 mouse -> ../devices/pseudo/consms@0:mouse
lrwxrwxrwx   1 root     other         33 janv  3  2010 msglog -> ../devices/pseudo/sysmsg@0:msglog
lrwxrwxrwx   1 root     root          27 janv  3  2010 nca -> ../devices/pseudo/nca@0:nca
lrwxrwxrwx   1 root     other         27 janv  3  2010 null -> ../devices/pseudo/mm@0:nulllrwxrwxrwx   1 root     other         11 janv  3  2010 nvidia0 -> fbs/nvidia0
lrwxrwxrwx   1 root     other         11 janv  3  2010 nvidia1 -> fbs/nvidia1
lrwxrwxrwx   1 root     other         12 janv  3  2010 nvidia10 -> fbs/nvidia10
lrwxrwxrwx   1 root     other         12 janv  3  2010 nvidia11 -> fbs/nvidia11
lrwxrwxrwx   1 root     other         12 janv  3  2010 nvidia12 -> fbs/nvidia12
lrwxrwxrwx   1 root     other         12 janv  3  2010 nvidia13 -> fbs/nvidia13
lrwxrwxrwx   1 root     other         12 janv  3  2010 nvidia14 -> fbs/nvidia14
lrwxrwxrwx   1 root     other         12 janv  3  2010 nvidia15 -> fbs/nvidia15
lrwxrwxrwx   1 root     other         11 janv  3  2010 nvidia2 -> fbs/nvidia2
lrwxrwxrwx   1 root     other         11 janv  3  2010 nvidia3 -> fbs/nvidia3
lrwxrwxrwx   1 root     other         11 janv  3  2010 nvidia4 -> fbs/nvidia4
lrwxrwxrwx   1 root     other         11 janv  3  2010 nvidia5 -> fbs/nvidia5
lrwxrwxrwx   1 root     other         11 janv  3  2010 nvidia6 -> fbs/nvidia6
lrwxrwxrwx   1 root     other         11 janv  3  2010 nvidia7 -> fbs/nvidia7
lrwxrwxrwx   1 root     other         11 janv  3  2010 nvidia8 -> fbs/nvidia8
lrwxrwxrwx   1 root     other         11 janv  3  2010 nvidia9 -> fbs/nvidia9
lrwxrwxrwx   1 root     other         38 janv  3  2010 nvidiactl -> ../devices/pseudo/nvidia@255:nvidiactl
lrwxrwxrwx   1 root     other         37 janv  3  2010 openprom -> ../devices/pseudo/openeepr@0:openprom
lrwxrwxrwx   1 root     root          35 janv  3  2010 physmem -> ../devices/pseudo/physmem@0:physmem
lrwxrwxrwx   1 root     root          25 janv  3  2010 pm -> ../devices/pseudo/pm@0:pm
lrwxrwxrwx   1 root     root          29 janv  3  2010 poll -> ../devices/pseudo/poll@0:poll
lrwxrwxrwx   1 root     root          29 janv  3  2010 pool -> ../devices/pseudo/pool@0:pool
lrwxrwxrwx   1 root     root          32 janv  3  2010 poolctl -> ../devices/pseudo/pool@0:poolctl
lrwxrwxrwx   1 root     root          38 janv  3  2010 power_button -> ../devices/pseudo/power@0:power_button
lrwxrwxrwx   1 root     root          27 janv  3  2010 ppm -> ../devices/pseudo/ppm@0:ppm
drwxr-xr-x   2 root     root         512 janv  3  2010 printers
lrwxrwxrwx   1 root     root          31 janv  3  2010 ptmajor -> ../devices/pseudo/ptm@0:ptmajor
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptmx -> ../devices/pseudo/clone@0:ptm
drwxr-xr-x   2 root     sys          512 janv  3  2010 pts
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyp0 -> ../devices/pseudo/ptc@0:ptyp0
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyp1 -> ../devices/pseudo/ptc@0:ptyp1
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyp2 -> ../devices/pseudo/ptc@0:ptyp2
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyp3 -> ../devices/pseudo/ptc@0:ptyp3
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyp4 -> ../devices/pseudo/ptc@0:ptyp4
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyp5 -> ../devices/pseudo/ptc@0:ptyp5
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyp6 -> ../devices/pseudo/ptc@0:ptyp6
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyp7 -> ../devices/pseudo/ptc@0:ptyp7
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyp8 -> ../devices/pseudo/ptc@0:ptyp8
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyp9 -> ../devices/pseudo/ptc@0:ptyp9
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptypa -> ../devices/pseudo/ptc@0:ptypa
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptypb -> ../devices/pseudo/ptc@0:ptypb
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptypc -> ../devices/pseudo/ptc@0:ptypc
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptypd -> ../devices/pseudo/ptc@0:ptypd
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptype -> ../devices/pseudo/ptc@0:ptype
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptypf -> ../devices/pseudo/ptc@0:ptypf
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyq0 -> ../devices/pseudo/ptc@0:ptyq0
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyq1 -> ../devices/pseudo/ptc@0:ptyq1
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyq2 -> ../devices/pseudo/ptc@0:ptyq2
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyq3 -> ../devices/pseudo/ptc@0:ptyq3
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyq4 -> ../devices/pseudo/ptc@0:ptyq4
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyq5 -> ../devices/pseudo/ptc@0:ptyq5
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyq6 -> ../devices/pseudo/ptc@0:ptyq6
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyq7 -> ../devices/pseudo/ptc@0:ptyq7
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyq8 -> ../devices/pseudo/ptc@0:ptyq8
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyq9 -> ../devices/pseudo/ptc@0:ptyq9
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyqa -> ../devices/pseudo/ptc@0:ptyqa
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyqb -> ../devices/pseudo/ptc@0:ptyqb
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyqc -> ../devices/pseudo/ptc@0:ptyqc
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyqd -> ../devices/pseudo/ptc@0:ptyqd
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyqe -> ../devices/pseudo/ptc@0:ptyqe
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyqf -> ../devices/pseudo/ptc@0:ptyqf
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyr0 -> ../devices/pseudo/ptc@0:ptyr0
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyr1 -> ../devices/pseudo/ptc@0:ptyr1
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyr2 -> ../devices/pseudo/ptc@0:ptyr2
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyr3 -> ../devices/pseudo/ptc@0:ptyr3
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyr4 -> ../devices/pseudo/ptc@0:ptyr4
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyr5 -> ../devices/pseudo/ptc@0:ptyr5
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyr6 -> ../devices/pseudo/ptc@0:ptyr6
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyr7 -> ../devices/pseudo/ptc@0:ptyr7
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyr8 -> ../devices/pseudo/ptc@0:ptyr8
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyr9 -> ../devices/pseudo/ptc@0:ptyr9
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyra -> ../devices/pseudo/ptc@0:ptyra
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyrb -> ../devices/pseudo/ptc@0:ptyrb
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyrc -> ../devices/pseudo/ptc@0:ptyrc
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyrd -> ../devices/pseudo/ptc@0:ptyrd
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyre -> ../devices/pseudo/ptc@0:ptyre
lrwxrwxrwx   1 root     root          29 janv  3  2010 ptyrf -> ../devices/pseudo/ptc@0:ptyrf
lrwxrwxrwx   1 root     root          34 janv  3  2010 ramdiskctl -> ../devices/pseudo/ramdisk@1024:ctl
lrwxrwxrwx   1 root     root          33 janv  3  2010 random -> ../devices/pseudo/random@0:random
lrwxrwxrwx   1 root     other         29 janv  3  2010 rawip -> ../devices/pseudo/icmp@0:icmp
lrwxrwxrwx   1 root     other         31 janv  3  2010 rawip6 -> ../devices/pseudo/icmp6@0:icmp6
lrwxrwxrwx   1 root     root          37 janv  3  2010 rdiskette -> ../devices/isa/fdc@1,3f0/fd@0,0:c,raw
lrwxrwxrwx   1 root     root          37 janv  3  2010 rdiskette0 -> ../devices/isa/fdc@1,3f0/fd@0,0:c,raw
lrwxrwxrwx   1 root     root          27 janv  3  2010 rds -> ../devices/pseudo/rds@0:rds
drwxr-xr-x   2 root     sys         1024 janv  3  2010 rdsk
lrwxrwxrwx   1 root     root           5 janv  3  2010 rfd0 -> rfd0c
lrwxrwxrwx   1 root     root          37 janv  3  2010 rfd0a -> ../devices/isa/fdc@1,3f0/fd@0,0:a,raw
lrwxrwxrwx   1 root     root          37 janv  3  2010 rfd0b -> ../devices/isa/fdc@1,3f0/fd@0,0:b,raw
lrwxrwxrwx   1 root     root          10 janv  3  2010 rfd0c -> rdiskette0
drwxr-xr-x   2 root     sys          512 janv  3  2010 rmt
lrwxrwxrwx   1 root     root          27 janv  3  2010 rsm -> ../devices/pseudo/rsm@0:rsm
lrwxrwxrwx   1 root     root          13 janv  3  2010 rsr0 -> rdsk/c1t0d0s2
lrwxrwxrwx   1 root     other         27 janv  3  2010 rts -> ../devices/pseudo/rts@0:rts
drwxr-xr-x   2 root     sys          512 janv  3  2010 sad
lrwxrwxrwx   1 root     root          29 janv  3  2010 sctp -> ../devices/pseudo/sctp@0:sctp
lrwxrwxrwx   1 root     root          31 janv  3  2010 sctp6 -> ../devices/pseudo/sctp6@0:sctp6
lrwxrwxrwx   1 root     root          27 janv  3  2010 sdp -> ../devices/pseudo/sdp@0:sdp
lrwxrwxrwx   1 root     root          33 janv  3  2010 smbios -> ../devices/pseudo/smbios@0:smbios
lrwxrwxrwx   1 root     root          35 janv  3  2010 spdsock -> ../devices/pseudo/spdsock@0:spdsock
lrwxrwxrwx   1 root     root          30 janv  3  2010 sppp -> ../devices/pseudo/clone@0:sppp
lrwxrwxrwx   1 root     root          33 janv  3  2010 sppptun -> ../devices/pseudo/clone@0:sppptun
lrwxrwxrwx   1 root     root          12 janv  3  2010 sr0 -> dsk/c1t0d0s2
lrwxrwxrwx   1 root     root           6 janv  3  2010 stderr -> ./fd/2
lrwxrwxrwx   1 root     root           6 janv  3  2010 stdin -> ./fd/0
lrwxrwxrwx   1 root     root           6 janv  3  2010 stdout -> ./fd/1
drwxr-xr-x   2 root     sys          512 janv  3  2010 swap
lrwxrwxrwx   1 root     other         29 janv  3  2010 syscon -> ../devices/pseudo/cn@0:syscon
lrwxrwxrwx   1 root     other         37 janv  3  2010 sysevent -> ../devices/pseudo/sysevent@0:sysevent
lrwxrwxrwx   1 root     other         33 janv  3  2010 sysmsg -> ../devices/pseudo/sysmsg@0:sysmsg
lrwxrwxrwx   1 root     other         29 janv  3  2010 systty -> ../devices/pseudo/cn@0:systty
lrwxrwxrwx   1 root     other         27 janv  3  2010 tcp -> ../devices/pseudo/tcp@0:tcp
lrwxrwxrwx   1 root     other         29 janv  3  2010 tcp6 -> ../devices/pseudo/tcp6@0:tcp6
drwxr-xr-x   2 root     root         512 janv  3  2010 term
lrwxrwxrwx   1 root     root          15 janv  3  2010 text-0 -> /dev/fbs/text-0
lrwxrwxrwx   1 root     other         29 janv  3  2010 ticlts -> ../devices/pseudo/tl@0:ticlts
lrwxrwxrwx   1 root     other         29 janv  3  2010 ticots -> ../devices/pseudo/tl@0:ticots
lrwxrwxrwx   1 root     other         32 janv  3  2010 ticotsord -> ../devices/pseudo/tl@0:ticotsord
lrwxrwxrwx   1 root     root          30 janv  3  2010 tnfctl -> ../devices/pseudo/tnf@0:tnfctl
lrwxrwxrwx   1 root     root          30 janv  3  2010 tnfmap -> ../devices/pseudo/tnf@0:tnfmap
lrwxrwxrwx   1 root     other         26 janv  3  2010 tty -> ../devices/pseudo/sy@0:tty
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyp0 -> ../devices/pseudo/ptsl@0:ttyp0
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyp1 -> ../devices/pseudo/ptsl@0:ttyp1
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyp2 -> ../devices/pseudo/ptsl@0:ttyp2
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyp3 -> ../devices/pseudo/ptsl@0:ttyp3
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyp4 -> ../devices/pseudo/ptsl@0:ttyp4
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyp5 -> ../devices/pseudo/ptsl@0:ttyp5
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyp6 -> ../devices/pseudo/ptsl@0:ttyp6
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyp7 -> ../devices/pseudo/ptsl@0:ttyp7
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyp8 -> ../devices/pseudo/ptsl@0:ttyp8
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyp9 -> ../devices/pseudo/ptsl@0:ttyp9
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttypa -> ../devices/pseudo/ptsl@0:ttypa
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttypb -> ../devices/pseudo/ptsl@0:ttypb
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttypc -> ../devices/pseudo/ptsl@0:ttypc
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttypd -> ../devices/pseudo/ptsl@0:ttypd
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttype -> ../devices/pseudo/ptsl@0:ttype
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttypf -> ../devices/pseudo/ptsl@0:ttypf
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyq0 -> ../devices/pseudo/ptsl@0:ttyq0
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyq1 -> ../devices/pseudo/ptsl@0:ttyq1
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyq2 -> ../devices/pseudo/ptsl@0:ttyq2
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyq3 -> ../devices/pseudo/ptsl@0:ttyq3
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyq4 -> ../devices/pseudo/ptsl@0:ttyq4
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyq5 -> ../devices/pseudo/ptsl@0:ttyq5
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyq6 -> ../devices/pseudo/ptsl@0:ttyq6
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyq7 -> ../devices/pseudo/ptsl@0:ttyq7
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyq8 -> ../devices/pseudo/ptsl@0:ttyq8
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyq9 -> ../devices/pseudo/ptsl@0:ttyq9
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyqa -> ../devices/pseudo/ptsl@0:ttyqa
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyqb -> ../devices/pseudo/ptsl@0:ttyqb
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyqc -> ../devices/pseudo/ptsl@0:ttyqc
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyqd -> ../devices/pseudo/ptsl@0:ttyqd
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyqe -> ../devices/pseudo/ptsl@0:ttyqe
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyqf -> ../devices/pseudo/ptsl@0:ttyqf
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyr0 -> ../devices/pseudo/ptsl@0:ttyr0
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyr1 -> ../devices/pseudo/ptsl@0:ttyr1
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyr2 -> ../devices/pseudo/ptsl@0:ttyr2
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyr3 -> ../devices/pseudo/ptsl@0:ttyr3
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyr4 -> ../devices/pseudo/ptsl@0:ttyr4
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyr5 -> ../devices/pseudo/ptsl@0:ttyr5
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyr6 -> ../devices/pseudo/ptsl@0:ttyr6
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyr7 -> ../devices/pseudo/ptsl@0:ttyr7
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyr8 -> ../devices/pseudo/ptsl@0:ttyr8
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyr9 -> ../devices/pseudo/ptsl@0:ttyr9
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyra -> ../devices/pseudo/ptsl@0:ttyra
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyrb -> ../devices/pseudo/ptsl@0:ttyrb
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyrc -> ../devices/pseudo/ptsl@0:ttyrc
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyrd -> ../devices/pseudo/ptsl@0:ttyrd
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyre -> ../devices/pseudo/ptsl@0:ttyre
lrwxrwxrwx   1 root     root          30 janv  3  2010 ttyrf -> ../devices/pseudo/ptsl@0:ttyrf
lrwxrwxrwx   1 root     root          31 janv  3  2010 ucode -> ../devices/pseudo/ucode@0:ucode
lrwxrwxrwx   1 root     other         27 janv  3  2010 udp -> ../devices/pseudo/udp@0:udp
lrwxrwxrwx   1 root     other         29 janv  3  2010 udp6 -> ../devices/pseudo/udp6@0:udp6
lrwxrwxrwx   1 root     root          34 janv  3  2010 urandom -> ../devices/pseudo/random@0:urandom
drwxr-xr-x   2 root     root         512 janv  3  2010 usb
lrwxrwxrwx   1 root     other         43 mars 13  2011 vboxguest -> ../devices/pci@0,0/pci80ee,cafe@4:vboxguest
lrwxrwxrwx   1 root     root          29 janv  3  2010 vni -> ../devices/pseudo/clone@0:vni
lrwxrwxrwx   1 root     root          30 janv  3  2010 volctl -> ../devices/pseudo/vol@0:volctl
lrwxrwxrwx   1 root     root           2 janv  3  2010 vt00 -> fb
lrwxrwxrwx   1 root     root          35 janv  3  2010 winlock -> ../devices/pseudo/winlock@0:winlock
lrwxrwxrwx   1 root     other         29 janv  3  2010 wscons -> ../devices/pseudo/wc@0:wscons
lrwxrwxrwx   1 root     root          20 janv  3  2010 xsvc -> ../devices/xsvc:xsvc
lrwxrwxrwx   1 root     other         27 janv  3  2010 zero -> ../devices/pseudo/mm@0:zerolrwxrwxrwx   1 root     other         27 janv  3  2010 zfs -> ../devices/pseudo/zfs@0:zfs

Chaque objet dans le répertoire /dev est un lien symbolique vers un fichier dans l’arborescence du répertoire /devices. Par exemple, la deuxième tranche du premier disque :

# ls -l /dev/dsk/c0d0s1
lrwxrwxrwx   1 root     root          50 janv  3  2010 /dev/dsk/c0d0s1 -> ../../devices/pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0:b
# ls -l /devices/pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0:b*
brw-r-----   1 root     sys      102,  1 août 29 09:55 /devices/pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0:b
crw-r-----   1 root     sys      102,  1 août 30 15:58 /devices/pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0:b,raw

On peut noter dans la sortie de la commande que certains fichiers sont de type bloc (b), tandis que d'autre sont de type caractère (c).

...
brw-r-----   1 root     sys      102,  1 août 29 09:55 /devices/pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0:b
crw-r-----   1 root     sys      102,  1 août 30 15:58 /devices/pci@0,0/pci-ide@1,1/ide@0/cmdk@0,0:b,raw
...

La différence entre les deux repose sur le type de communication entre le système et le module. Dans le premier cas le système accède au périphérique par des coordonnées du bloc de données sur le support tandis que dans le deuxième cas la communication d'échange de données se fait octet par octet sans utiliser des tampons.

Les deux informations clefs du fichier spécial sont situées à la place de la taille d'un fichier normal et se nomment le majeur et le mineur :

La correspondance entre les entrées du répertoire /dev et /devices est gérée par la commande devfsadm qui est lancée au démarrage du système. Cette même commande lance le démon devfsadmd. Ce démon sert aux re-configurations dynamiques des périphériques. Les commandes disks, tapes, ports et devlinks crées les entrées dans /dev :

Commande Description
drvconfig Configure le répertoire /devices
disks Crée les entrées /dev/ à partir de /devices pour les disques
tapes Crée les entrées /dev/ à partir de /devices pour les bandes
ports Crée les entrées /dev/ à partir de /devices pour les ports série
devlinks Crée les entrées /dev/ à partir de /devices pour les autres pilotes

Commandes

prtconf

Pour consulter la liste des périphériques , il convient d'utiliser la commande prtconf :

# prtconf -D
System Configuration:  Sun Microsystems  i86pc
Memory size: 1400 Megabytes
System Peripherals (Software Nodes):

i86pc (driver name: rootnex)
    scsi_vhci, instance #0 (driver name: scsi_vhci)
    isa, instance #0 (driver name: isa)
        i8042, instance #0 (driver name: i8042)
            keyboard, instance #0 (driver name: kb8042)
            mouse, instance #0 (driver name: mouse8042)
        fdc, instance #0 (driver name: fdc)
            fd, instance #0 (driver name: fd)
        lp, instance #0 (driver name: ecpp)
    pci, instance #0 (driver name: pci)
        pci8086,1237
        pci8086,7000
        pci-ide, instance #0 (driver name: pci-ide)
            ide, instance #0 (driver name: ata)
                cmdk, instance #0 (driver name: cmdk)
            ide, instance #1 (driver name: ata)
                sd, instance #0 (driver name: sd)
        display, instance #0 (driver name: vgatext)
        pci8086,1e, instance #0 (driver name: e1000g)
        pci80ee,cafe
        pci8086,7113
    iscsi, instance #0 (driver name: iscsi)
    pseudo, instance #0 (driver name: pseudo)
    options, instance #0 (driver name: options)
    agpgart, instance #0 (driver name: agpgart)
    xsvc, instance #0 (driver name: xsvc)
    objmgr, instance #0 (driver name: objmgr)
    acpi
    used-resources
    cpus, instance #0 (driver name: cpunex)
        cpu (driver name: cpudrv)

L'option -D précise que l'on souhaite les noms des drivers. L'option -v peut également être utilisée :

# prtconf -v | more
System Configuration:  Sun Microsystems  i86pc
Memory size: 1400 Megabytes
System Peripherals (Software Nodes):

i86pc
    System properties:
        name='acpi-status' type=int items=1
            value=00000013
        name='relative-addressing' type=int items=1
            value=00000001
        name='MMU_PAGEOFFSET' type=int items=1
            value=00000fff
        name='MMU_PAGESIZE' type=int items=1
            value=00001000
        name='PAGESIZE' type=int items=1
            value=00001000
        name='biosdev-0x87' type=byte items=588
            value=00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00.00--A suivre--

prtdiag

La commande prtdiag offre la même information sous une forme plus lisible :

# prtdiag
System Configuration: innotek GmbH VirtualBox
BIOS Configuration: innotek GmbH VirtualBox 12/01/2006

==== Processor Sockets ====================================

Version                          Location Tag
-------------------------------- --------------------------

==== Memory Device Sockets ================================

Type    Status Set Device Locator      Bank Locator
------- ------ --- ------------------- --------------------

==== On-Board Devices =====================================

==== Upgradeable Slots ====================================

ID  Status    Type             Description
--- --------- ---------------- ----------------------------

Veillez noter que la commande ci-dessus ne peut produire de l'information que dans le cas où la carte mère supporte l'image System Management BIOS. Dans le cas contraire, utilisez la commande smbios.

smbios

# smbios
ID    SIZE TYPE
0     54   SMB_TYPE_BIOS (BIOS information)

  Vendor: innotek GmbH
  Version String: VirtualBox
  Release Date: 12/01/2006
  Address Segment: 0xe000
  ROM Size: 131072 bytes
  Image Size: 131072 bytes
  Characteristics: 0x48018090
        SMB_BIOSFL_ISA (ISA is supported)
        SMB_BIOSFL_PCI (PCI is supported)
        SMB_BIOSFL_CDBOOT (Boot from CD is supported)
        SMB_BIOSFL_SELBOOT (Selectable Boot supported)
        SMB_BIOSFL_I9_KBD (int 0x9 8042 keyboard svcs)
        SMB_BIOSFL_I10_CGA (int 0x10 CGA svcs)
  Characteristics Extension Byte 1: 0x1
        SMB_BIOSXB1_ACPI (ACPI is supported)
  Characteristics Extension Byte 2: 0x0

ID    SIZE TYPE
1     72   SMB_TYPE_SYSTEM (system information)

  Manufacturer: innotek GmbH
  Product: VirtualBox
  Version: 1.2
  Serial Number: 0

  UUID: 52688f3d-628e-4905-8ecf-0c7306bae00f
  Wake-Up Event: 0x6 (power switch)
  SKU Number:
  Family: Virtual Machine

ID    SIZE TYPE
8     50   SMB_TYPE_BASEBOARD (base board)

  Manufacturer: Oracle Corporation
  Product: VirtualBox
  Version: 1.2
  Serial Number: 0

  Chassis: 3
  Flags: 0x1
        SMB_BBFL_MOTHERBOARD (board is a motherboard)
  Board Type: 0xa (motherboard)

ID    SIZE TYPE
3     31   SMB_TYPE_CHASSIS (system enclosure or chassis)

  Manufacturer: Oracle Corporation

  OEM Data: 0x0
  Lock Present: N
  Chassis Type: 0x1 (other)
  Boot-Up State: 0x3 (safe)
  Power Supply State: 0x3 (safe)
  Thermal State: 0x3 (safe)
  Chassis Height: 0u
  Power Cords: 0
  Element Records: 0

ID    SIZE TYPE
2     34   SMB_TYPE_OEMSTR (OEM string table)

  vboxVer_4.2.6
  vboxRev_82870

psrinfo

La commande psrinfo est utilisée pour fournir des informations détaillées sur les processeurs du système :

# psrinfo -pv
Le processeur physique a 2 virtuel processeurs (0 1)
  x86 (chipid 0x0 GenuineIntel family 6 model 58 step 9 clock 2300 MHz)
        Intel(r) Core(tm) i7-3610QM CPU @ 2.30GHz

isainfo

Cette commande est utilisée pour fournir les informations sur l'Instruction Set Architecture :

# isainfo -v
64-bit amd64 applications
        ssse3 tscp sse3 sse2 sse fxsr mmx cmov amd_sysc cx8 tsc fpu
32-bit i386 applications
        ssse3 tscp sse3 sse2 sse fxsr mmx cmov sep cx8 tsc fpu

modinfo

Cette commande fournit une liste des modules chargés :

# modinfo | more
 Id         Loadaddr   Size Info Rev Module Name
  0 fffffffffb800000 18d2f0   -   0  unix ()
  1 fffffffffb904b70  3eeda   -   0  krtld ()
  2 fffffffffb939860 27c700   -   0  genunix ()
  4 fffffffffbb5f000   5618   1   1  specfs (filesystem for specfs)
  5 fffffffffbb64520   4488   3   1  fifofs (filesystem for fifo)
  6 fffffffff80e5000  18c50 155   1  dtrace (Dynamic Tracing)
  7 fffffffffbb688b8   5158  16   1  devfs (devices filesystem 1.16)
  8 fffffffffbb6d748  1f350   5   1  procfs (filesystem for proc)
 10 fffffffffbb8bfa8   3b40   1   1  TS (time sharing sched class)
 11 fffffffffbb8f2a8    9e0   -   1  TS_DPTBL (Time sharing dispatch table)
 13 fffffffffbb8f420   7c08   -   1  pci_autoconfig (PCI BIOS interface 1.44)
 14 fffffffffbb96e68  591f8   -   1  acpica (ACPI interpreter 1.5)
 15 fffffffff7800000  18310   -   1  pcie (PCI Express Framework Module)
 16 fffffffffbbeea28   2610   -   1  busra (Bus Resource Allocator (BUSRA) )
 17 fffffffffbbf0fb0   30a0   1   1  uppc (UniProcessor PC)
 19 fffffffff782b000  10268   2   1  pcplusmp (pcplusmp v1.4 compatible 1.136)
 20 fffffffffbbf3de8   4450   -   1  cpu.generic (Generic x86 CPU Module)
 21 fffffffffbbf7a10   1458   -   1  cpu_ms.GenuineIntel (Generic Intel model-sp
 22 fffffffff783a000  144b0   1   1  rootnex (i86pc root nexus 1.137)
 23 fffffffffbbf8db8   2798   -   1  iommulib (IOMMU library module)
 24 fffffffff784dce0    298  57   1  options (options driver)
 25 fffffffff78392f0    d18   2   1  pseudo (nexus driver for 'pseudo' 1.28)
 26 fffffffff782a8b0    748  11   1  clone (Clone Pseudodriver 'clone')
 27 fffffffff784e000  17c30 174   1  scsi_vhci (SCSI VHCI Driver 1.72)
 28 fffffffff7865000  23238   -   1  scsi (SCSI Bus Utility Routines)
 29 fffffffffbbfb498   2730 120   1  isa (isa nexus driver for 'ISA' 1.40)
 31 fffffffffbbfd680   17e0  12   1  sad (STREAMS Administrative Driver ')
 33 fffffffff7885000  3c130   2   1  ufs (filesystem for ufs)
 34 fffffffff7864cf8    3b8   -   1  fssnap_if (File System Snapshot Interface)
 35 fffffffff7819000   5bd0 246   1  ppm (platform pm driver v1.18)
 36 fffffffff781e718   6198  86   1  pci (host to PCI nexus driver 1.71)
--A suivre--

sysdef

La commande sysdef permet aussi de visualiser les périphériques mais cette fois-ci avec pseudo-devices, la mémoire virtuelle et les paramètres noyau :

# sysdef | more
*
* Hostid
*
  1e022911
*
* i86pc Configuration
*
*
* Devices
*
scsi_vhci, instance #0
isa, instance #0
        i8042, instance #0
                keyboard, instance #0
                mouse, instance #0
        fdc, instance #0
                fd, instance #0
        lp, instance #0
pci, instance #0
        pci8086,1237 (driver not attached)
        pci8086,7000 (driver not attached)
        pci-ide, instance #0
--A suivre--

dmesg

La commande dmesg permet de visualiser les messages du démarrage du système. Il est donc possible de retrouver des informations concernant le démarrage et la prise en compte des périphériques :

# dmesg | grep -i e1000g
Mar 17 09:23:23 unknown mac: [ID 469746 kern.info] NOTICE: e1000g0 registered
Mar 17 09:23:23 unknown e1000g: [ID 766679 kern.info] Intel(R) PRO/1000 Network Connection, Driver Ver. 5.1.11
Mar 17 09:23:28 unknown e1000g: [ID 801725 kern.info] NOTICE: pci8086,100e - e1000g[0] : Adapter 1000Mbps full duplex copper link is up.
Mar 17 09:23:33 unknown /sbin/dhcpagent[52]: [ID 778557 daemon.warning] configure_v4_lease: no IP broadcast specified for e1000g0, making best guess

uname

La commande uname peut afficher plusieurs informations importantes :

# uname -p
i386
# uname -m
i86pc
# uname -r
5.10
# uname -a
SunOS unknown 5.10 Generic_127128-11 i86pc i386 i86pc

showrev

La commande showrev donne les caractéristiques de la machine :

# showrev
Hostname: unknown
Hostid: 1e022911
Release: 5.10
Kernel architecture: i86pc
Application architecture: i386
Hardware provider:
Domain:
Kernel version: SunOS 5.10 Generic_127128-11

devattr

La commande devattr permet de consulter les attributs d'un périphériques :

# devattr -v /dev/dsk/c0d0s0
alias='dpart100'
bdevice='/dev/dsk/c0d0s0'
capacity='11406150'
cdevice='/dev/rdsk/c0d0s0'
desc='Disk Partition'
dparttype='fs'
fstype='ufs'
mountpt='/'
removable='false'
type='dpart'

vold

Le service vold permet le montage et démontage automatique des périphériques amovibles :

# ps -ef | grep vold
    root   543     1   0 09:24:39 ?           0:00 /usr/sbin/vold -f /etc/vold.conf
    root  1894  1578   0 22:02:48 pts/4       0:00 grep vold

Vold se configure par l'édition du fichier /etc/vold.conf et utilise le répertoire /vol lors de son travail :

# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# ident "@(#)vold.conf  1.27    06/01/20 SMI"
#
# Volume Daemon Configuration file
#

# Database to use (must be first)
db db_mem.so

# Volfs support of removable media devices
support nomedia

# Labels supported
label cdrom label_cdrom.so cdrom
label dos label_dos.so floppy rmdisk pcmem
label sun label_sun.so floppy rmdisk pcmem

# Devices to use
use cdrom drive /dev/rdsk/c*s2 dev_cdrom.so cdrom%d
use floppy drive /dev/rdiskette[0-9] dev_floppy.so floppy%d
use pcmem drive /dev/rdsk/c*s2 dev_pcmem.so pcmem%d forceload=true
use rmdisk drive /dev/rdsk/c*s2 dev_rmdisk.so rmdisk%d

# Actions
eject dev/diskette[0-9]/* user=root /usr/sbin/rmmount
eject dev/dsk/* user=root /usr/sbin/rmmount
insert dev/diskette[0-9]/* user=root /usr/sbin/rmmount
insert dev/dsk/* user=root /usr/sbin/rmmount
notify rdsk/* group=tty user=root /usr/lib/vold/volmissing -p
remount dev/diskette[0-9]/* user=root /usr/sbin/rmmount
remount dev/dsk/* user=root /usr/sbin/rmmount

# List of file system types unsafe to eject
unsafe ufs hsfs pcfs udfs

Le script /etc/init.d/volmgt est utilisé pour démarrer et arrêter le service vold :

#!/sbin/sh
#
# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
# Use is subject to license terms.
#
# ident "@(#)volmgt     1.9     06/01/20 SMI"

case "$1" in
'start')
        if [ -f /etc/vold.conf -a -f /usr/sbin/vold -a \
            "${_INIT_ZONENAME:=`/sbin/zonename`}" = "global" ]; then
                echo 'volume management starting.'
                svcadm enable svc:/system/filesystem/volfs:default
        fi
        ;;

'stop')
        svcadm disable svc:/system/filesystem/volfs:default
        ;;

*)
        echo "Usage: $0 { start | stop }"
        exit 1
        ;;

esac
exit 0

Insérez le CD des Additions invité de VirtualBox en utilisant les menus Périphériques > Installer les Additions invité … de la fenêtre de votre machine virtuelle. Saisissez maintenant la commande suivante :

# mount | grep cdrom
/cdrom/vboxadditions_4.1.14_77440 on /vol/dev/dsk/c1t0d0/vboxadditions_4.1.14_77440 read only/nosetuid/nodevices/noglobal/maplcase/rr/traildot/dev=1740001 on jeu. août 30 17:03:50 2012

Vous pouvez avoir accès au CDROM via /cdrom :

# cd /cdrom
# ls
cdrom0                      vboxadditions_4.1.14_77440
vboxadditions_4.0.4_70112

en utilisant le lien symbolique cdrom0 :

# cd cdrom0
# ls
32Bit                           VBoxLinuxAdditions.run
64Bit                           VBoxSolarisAdditions.pkg
AUTORUN.INF                     VBoxWindowsAdditions-amd64.exe
autorun.sh                      VBoxWindowsAdditions-x86.exe
runasroot.sh                    VBoxWindowsAdditions.exe

Pour éjecter le CDROM, il convient d'utiliser la commane eject :

# eject
/vol/dev/rdsk/c1t0d0/vboxadditions_4.1.14_77440: Périphérique en cours d'utilisation
# cd ..
# eject

La commande cdrw permet d'identifier les graveurs CD et DVD sur le système :

# cdrw -l
Recherche de périphériques de CD...
    Noeud                  Périphérique connecté                   Type de périp hérique
----------------------+--------------------------------+-----------------
 cdrom0               | VBOX     CD-ROM           1.0  | Lecteur de CD

cfgadm

La commande cfgadm permet de lister, ajouter et retirer des périphériques de type hotplug.

# cfgadm
Ap_Id                          Type         Receptacle   Occupant     Condition
pcic0.pccard0                  unknown      empty        unconfigured unknown
pcie2                          unknown      empty        unconfigured unknown
usb0/1                         unknown      empty        unconfigured ok
usb0/2                         usb-mouse    connected    configured   ok
usb1/1                         unknown      empty        unconfigured ok
usb1/2                         unknown      empty        unconfigured ok
usb1/3                         unknown      empty        unconfigured ok
usb1/4                         unknown      empty        unconfigured ok
usb1/5                         unknown      empty        unconfigured ok
usb1/6                         unknown      empty        unconfigured ok
usb1/7                         unknown      empty        unconfigured ok
usb1/8                         unknown      empty        unconfigured ok

stty -a

Les terminaux asynchrones sont gérés par les processus ttymon. Le premier port série sous Solaris et le /dev/term/a. La commande stty -a permet de visualiser l'état de la liaison :

# tty
/dev/pts/3
# stty -a
speed 38400 baud;
rangées = 24 ; colonnes = 94 ; pixels_y = 0 ; pixels_x = 0 ;
csdata ?
eucw 1:0:0:0, scrw 1:0:0:0
intr = ^c; quit = ^\; erase = ^?; kill = ^u;
eof = ^d; eol = ÿ; eol2 = ÿ; swtch = <undef>;
start = ^q; stop = ^s; susp = ^z; dsusp = ^y;
rprnt = ^r; flush = ^o; werase = ^w; lnext = ^v;
-parenb -parodd cs8 -cstopb hupcl cread -clocal -loblk -crtscts -crtsxoff -parext
-ignbrk brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -iuclc
ixon ixany -ixoff imaxbel
isig icanon -xcase echo echoe echok -echonl -noflsh
-tostop echoctl -echoprt echoke -defecho -flusho -pendin iexten
opost -olcuc onlcr -ocrnl -onocr -onlret -ofill -ofdel

Les émulation des terminaux sont gérées par des fichiers de description dans le répertoire /usr/share/lib/terminfo :

# file /usr/share/lib/terminfo/v/vt100
/usr/share/lib/terminfo/v/vt100:        Entrée Terminfo compilée

Gestion des performances

Commandes

iostat

La commande iostat affiche des statistiques sur l'utilisation des disques, des terminaux et des lecteurs de cartouche :

# iostat
   tty       cmdk0          sd0           nfs1           cpu
 tin tout kps tps serv  kps tps serv  kps tps serv   us sy wt id
   0   10 194  22    4    0   0    0    0   0    0   11 36  0 53

ou

# iostat -xtc 5 2
                 extended device statistics                    tty         cpu
device    r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b  tin tout  us sy wt id
md5       0.0    0.0    0.0    0.0  0.0  0.0  152.7   0   0    0   10   1  2  0 96
sd0       9.5    6.4   65.6   27.9  0.5  0.1   35.5   0   2
sd1       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
sd2       0.0    0.6    0.3   12.5  0.0  0.0   34.4   0   0
sd3       0.0    0.6    0.2   12.5  0.0  0.0   33.9   0   0
sd4       0.0    0.6    0.3   12.5  0.0  0.0   38.3   0   0
sd5       0.0    0.6    0.3   12.4  0.0  0.0   36.1   0   0
sd6       0.0    0.0    0.0    0.0  0.0  0.0    3.0   0   0
sd7       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
nfs1      0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
                 extended device statistics                    tty         cpu
device    r/s    w/s   kr/s   kw/s wait actv  svc_t  %w  %b  tin tout  us sy wt id
md5       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0    0  161   1  2  0 97
sd0       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
sd1       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
sd2       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
sd3       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
sd4       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
sd5       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
sd6       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
sd7       0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0
nfs1      0.0    0.0    0.0    0.0  0.0  0.0    0.0   0   0


The fields have the following meanings:
      disk    name of the disk
      r/s     reads per second
      w/s     writes per second
      Kr/s    kilobytes read per second
      Kw/s    kilobytes written per second
      wait    average number of transactions waiting for service (Q length)
      actv    average number of transactions  actively being serviced 
(removed  from  the  queue but not yet completed)
      %w      percent of time there are transactions  waiting
              for service (queue non-empty)
      %b      percent of time the disk is busy  (transactions
                  in progress)

Les options de cette commande sont :

Usage: iostat [-cCdDeEiImMnpPrstxXYz]  [-l n] [-T d|u] [disk ...] [interval [count]]
                -c:     report percentage of time system has spent
                        in user/system/wait/idle mode
                -C:     report disk statistics by controller
                -d:     display disk Kb/sec, transfers/sec, avg.
                        service time in milliseconds
                -D:     display disk reads/sec, writes/sec,
                        percentage disk utilization
                -e:     report device error summary statistics
                -E:     report extended device error statistics
                -i:     show device IDs for -E output
                -I:     report the counts in each interval,
                        instead of rates, where applicable
                -l n:   Limit the number of disks to n
                -m:     Display mount points (most useful with -p)
                -M:     Display data throughput in MB/sec instead of Kb/sec
                -n:     convert device names to cXdYtZ format
                -p:     report per-partition disk statistics
                -P:     report per-partition disk statistics only,
                        no per-device disk statistics
                -r:     Display data in comma separated format
                -s:     Suppress state change messages
                -T d|u  Display a timestamp in date (d) or unix time_t (u)
                -t:     display chars read/written to terminals
                -x:     display extended disk statistics
                -X:     display I/O path statistics
                -Y:     display I/O path (I/T/L) statistics
                -z:     Suppress entries with all zero values

Consultez le manuel pour comprendre les options et expérimentez avec celles-ci.

vmstat

La commande vmstat affiche des statistiques sur la pagination :

# vmstat
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr cd f0 s0 --   in   sy   cs us sy id
 0 0 0 1414468 1067720 87 278 166 1 1 0  6 21 -0 -0  0  418 1909  756 11 36 53

Les options de cette commande sont :

# vmstat -h
Usage: vmstat [-cipqsS] [disk ...] [interval [count]]

Par défaut la commande vmstat affiche des informations depuis le démarrage du système sinon dans les n dernières secondes , m fois :

# vmstat 10 2
 kthr      memory            page            disk          faults      cpu
 r b w   swap  free  re  mf pi po fr de sr cd f0 s0 --   in   sy   cs us sy id
 0 0 0 1409432 1061712 83 266 158 1 1 0  6 20 -0 -0  0  422 1875  746 12 35 53
 0 0 0 1304184 936392 1   3  0  0  0  0  0  3  0  0  0  367  372  250  4 34 63

Consultez le manuel pour comprendre les options et expérimentez avec celles-ci.

prstat

La commande prstat affiche des statistiques sur les processus :

# prstat
   PID USERNAME  SIZE   RSS STATE  PRI NICE      TIME  CPU PROCESS/NLWP
   668 root       31M   26M sleep   59    0   0:00:47 9,3% Xorg/1
  1115 root       80M   16M sleep   59    0   0:00:09 4,3% gnome-terminal/2
  1033 root       94M   25M sleep   59    0   0:00:26 4,1% java/14
  1091 root      136M   69M sleep   49    0   0:01:12 3,6% firefox-bin/7
   802 noaccess  164M   85M sleep   59    0   0:00:34 1,4% java/23
  1023 root       67M   10M sleep   59    0   0:00:07 1,2% mixer_applet2/1
  1143 root     4760K 2840K cpu0    55    0   0:00:00 0,8% prstat/1
   960 root       67M   13M sleep   59    0   0:00:03 0,6% metacity/1
   967 root       73M   17M sleep   59    0   0:00:06 0,6% gnome-panel/1
   936 root       12M 9812K sleep   59    0   0:00:05 0,5% gconfd-2/1
  1013 root       69M   13M sleep   59    0   0:00:03 0,5% gnome-netstatus/1
   359 root     6144K 2816K sleep   59    0   0:00:01 0,2% nscd/29
   714 root     6136K 4336K sleep   59    0   0:00:01 0,2% httpd/1
   969 root       77M   20M sleep   59    0   0:00:03 0,1% nautilus/3
  1003 root       70M   13M sleep   59    0   0:00:02 0,1% wnck-applet/1
   941 root     5692K 3472K sleep   59    0   0:00:01 0,1% xscreensaver/1
   573 root     5824K 3016K sleep   59    0   0:00:01 0,1% httpd/1
   948 root       67M 9200K sleep   59    0   0:00:01 0,1% gnome-settings-/1
   946 root     9084K 3796K sleep   59    0   0:00:01 0,1% gnome-smproxy/1
   974 root     7824K 4416K sleep   59    0   0:00:00 0,1% gnome-vfs-daemo/2
   978 root     2232K 1268K sleep   59    0   0:00:00 0,1% mapping-daemon/1
Total: 85 processes, 259 lwps, load averages: 0,93, 0,87, 0,66

Consultez le manuel pour comprendre les options et expérimentez avec celles-ci.

sar

La commande sar permet de surveiller toutes les ressources du système selon l'option qui est passée en argument à la commande. Quelques options importantes sont :

Option Description
-u Pourcentage d'utilisation du CPU
-q Nombre de processus en attente
-r Utilisation de la mémoire centrale
-w Surveillance du swapping
-p Surveillance de la pagination
-b Utilisation des tampons
-d Utilisation des disques

La commande /usr/lib/sa/sadc permet de collecter les informations.

Le script /usr/lib/sa/sa1 exécute la commande /usr/lib/sa/sadc. Ce script prend deux options :

Option Description
-t L'interval entre les collectes
-n Nombre de collectes

Le script /usr/lib/sa/sa2 exécute la commande sar et consigne les informations dans un fichier au format /var/adm/sa/sar<jj>, par exemple :

# ls /var/adm/sa
# ls
sa21   sar21

Pour pouvoir fonctionner correctement, ces scripts doivent être appelés par cron.

Pour constater ce fonctionnement manuellement saisissez la commande suivante :

# /usr/lib/sa/sa1 5 5

Saisissez ensuite les commandes suivantes :

# sar

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:50:22    %usr    %sys    %wio   %idle
10:50:27       4      32       0      64
10:50:32       4      33       0      63
10:50:37       5      35       0      61
10:50:42       4      32       0      64

Average        4      33       0      63
# sar -u 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:51:04    %usr    %sys    %wio   %idle
10:51:09       5      33       0      62
10:51:14      12      34       0      53
10:51:20      16      35       0      49

Average       11      34       0      55
# sar -r 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:51:23 freemem freeswap
10:51:28  232663  2596960
10:51:33  232663  2596960
10:51:39  232663  2596960

Average   232663  2596960
# sar -w 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:52:34 swpin/s bswin/s swpot/s bswot/s pswch/s
10:52:39    0.00     0.0    0.00     0.0     616
10:52:44    0.00     0.0    0.00     0.0     603
10:52:49    0.00     0.0    0.00     0.0     353

Average     0.00     0.0    0.00     0.0     524
# sar -b 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:52:52 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
10:52:58       0       0     100       0       0     100       0       0
10:53:03       0       0     100       0       0       0       0       0
10:53:08       0       0     100       0       0     100       0       0

Average        0       0     100       0       0       0       0       0
# sar -d 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:53:10   device        %busy   avque   r+w/s  blks/s  avwait  avserv

10:53:15   cmdk0             0     0.0       0       0     0.0     0.0
           fd0               0     0.0       0       0     0.0     0.0
           nfs1              0     0.0       0       0     0.0     0.0
           sd0               0     0.0       0       0     0.0     0.0

10:53:20   cmdk0             0     0.0       0       0     0.0     0.0
           fd0               0     0.0       0       0     0.0     0.0
           nfs1              0     0.0       0       0     0.0     0.0
           sd0               0     0.0       0       0     0.0     0.0

10:53:26   cmdk0             0     0.0       0       0     0.0     1.8
           fd0               0     0.0       0       0     0.0     0.0
           nfs1              0     0.0       0       0     0.0     0.0
           sd0               0     0.0       0       0     0.0     0.0


Average    cmdk0             0     0.0       0       0     0.0     1.8
           fd0               0     0.0       0       0     0.0     0.0
           nfs1              0     0.0       0       0     0.0     0.0
           sd0               0     0.0       0       0     0.0     0.0
# sar -c 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:53:31 scall/s sread/s swrit/s  fork/s  exec/s rchar/s wchar/s
10:53:36    1269     306     162    0.00    0.00   71497   70800
10:53:41    1509     314     174    0.00    0.00   21162   20231
10:53:46    1190     317     169    0.00    0.00   56065   55719

Average     1322     312     168    0.00    0.00   49597   48940
# sar -g 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:53:49  pgout/s ppgout/s pgfree/s pgscan/s %ufs_ipf
10:53:54     0.00     0.00     0.00     0.00     0.00
10:53:59     0.00     0.00     0.00     0.00     0.00
10:54:05     0.00     0.00     0.00     0.00     0.00

Average      0.00     0.00     0.00     0.00     0.00
# sar -p 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:54:07  atch/s  pgin/s ppgin/s  pflt/s  vflt/s slock/s
10:54:12    0.00    0.00    0.00    0.99    4.75    0.00
10:54:17    0.00    0.00    0.00    0.00    0.59    0.00
10:54:22    0.00    0.00    0.00    0.00    0.59    0.00

Average     0.00    0.00    0.00    0.33    1.97    0.00
# sar -k 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:54:25 sml_mem   alloc  fail  lg_mem   alloc  fail  ovsz_alloc  fail
10:54:30 17293568 15564685     0 118423552 114753904     0    14131200     0
10:54:35 17293568 15565001     0 118423552 114753904     0    14131200     0
10:54:40 17293568 15564081     0 118423552 114748784     0    14131200     0

Average  17293568 15564589     0 118423552 114752200     0    14131200     0
# sar -m 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:54:42   msg/s  sema/s
10:54:48    0.00    0.00
10:54:53    0.00    0.00
10:54:58    0.00    0.00

Average     0.00    0.00
# sar -v 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:55:01  proc-sz    ov  inod-sz    ov  file-sz    ov   lock-sz
10:55:06   89/8218    0 6981/35596    0  881/881     0    0/0
10:55:11   89/8218    0 6981/35596    0  881/881     0    0/0
10:55:16   89/8218    0 6981/35596    0  881/881     0    0/0

# sar -y 5 3

SunOS unknown 5.10 Generic_127128-11 i86pc    03/22/2009

10:55:19 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s
10:55:24       0       0      24       0       0       0
10:55:29       0       0      11       1       0       0
10:55:34       0       0      11       2       0       0

Average        0       0      16       1       0       0

Trouvez la signification de chaque option.

Comptabilisation (Accounting)

La Comptabilisation sous Solaris 10 consiste en la création d'une historique de l'utilisation des ressources de la machine.

Comptabilisation Basique

Pour consulter les données créées par la Comptabilisation Basique, il convient d'utiliser la commande lastcomm :

# lastcomm
/var/adm/pacct: No such file or directory

Ce message indique que la Comptabilisation Basique n'est pas fonctionnelle.

Pour activer la Comptabilisation Basique, il convient d'exécuter la commande /usr/lib/acct/startup :

# /usr/lib/acct/startup

Exécutez ensuite quelques commandes :

# who
root       console      juin  5 11:47   (:0)
root       pts/3        juin  5 12:05   (:0.0)
# pwd
/

Puis consultez les données de la Comptabilisation Basique :

# lastcomm
who         root     pts/3          0.00 secs Thu Jun  6 11:17
startup     root     pts/3          0.00 secs Thu Jun  6 11:17
rm          root     pts/3          0.00 secs Thu Jun  6 11:17
rm          root     pts/3          0.00 secs Thu Jun  6 11:17
rm          root     pts/3          0.00 secs Thu Jun  6 11:17
turnacct    root     pts/3          0.00 secs Thu Jun  6 11:17
accton   S  root     pts/3          0.00 secs Thu Jun  6 11:17

Le système de Comptabilisation Basique n'a pas de service SMF associé :

# svcs -a | grep acct
# svcs -a | grep accounting

Pour cette raison, créez les scripts nécessaires dans /etc/rc2.d et /etc/rc3.d :

# ls -l /etc/init.d | grep acct
-rwxr--r--   1 root     sys          625 juin 28  2011 acct
-rwxr--r--   1 root     sys          397 juin 28  2011 acctadm
# cd /etc/rc2.d
# pwd
/etc/rc2.d
# ln -s ../init.d/acct S15acct
# cd ../rc3.d
# ln -s ../init.d/acct S15acct

Comptabilisation Étendue

La Comptabilisation Étendue permet de surveiller les activités au niveau des :

La commande acctadm est utilisée pour gérer le système de Comptabilisation Étendue. L'option -r de la commande permet de visualiser la liste des ressources qui peuvent être surveillées :

# acctadm -r
process:
extended pid,uid,gid,cpu,time,command,tty,projid,taskid,ancpid,wait-status,zone,flag,memory,mstate
basic    pid,uid,gid,cpu,time,command,tty,flag
task:
extended taskid,projid,cpu,time,host,mstate,anctaskid,zone
basic    taskid,projid,cpu,time
flow:
extended saddr,daddr,sport,dport,proto,dsfield,nbytes,npkts,action,ctime,lseen,projid,uid
basic    saddr,daddr,sport,dport,proto,nbytes,npkts,action

L'utilisation de la commande acctadm sans options montre la configuration actuelle de la Comptabilisation Étendue :

# acctadm
              Comptabilisation des tâches : inactive
   Fichier de comptabilisation des tâches : none
              Ressources de tâche suivies : none
          Ressources de tâche non suivies : extended
           Comptabilisation des processus : inactive
    Fichier de comptabilisation des processus : none
          Ressources de processus suivies : none
      Ressources de processus non suivies : extended,host
                 Comptabilisation du flux : inactive
      Fichier de comptabilisation du flux : none
               Ressources de flux suivies : none
           Ressources de flux non suivies : extended

La Comptabilisation Étendue peut est activée par groupe basic ou extended :

# acctadm -e extended -f /var/adm/exacct/task task
# acctadm
              Comptabilisation des tâches : actif
   Fichier de comptabilisation des tâches : /var/adm/exacct/task
              Ressources de tâche suivies : extended
          Ressources de tâche non suivies : none
           Comptabilisation des processus : inactive
    Fichier de comptabilisation des processus : none
          Ressources de processus suivies : none
      Ressources de processus non suivies : extended,host
                 Comptabilisation du flux : inactive
      Fichier de comptabilisation du flux : none
               Ressources de flux suivies : none
           Ressources de flux non suivies : extended

ou en spécifiant les ressources :

# acctadm -e pid,uid,time,command,mstate -f /var/adm/exacct/proc process
# acctadm
              Comptabilisation des tâches : actif
   Fichier de comptabilisation des tâches : /var/adm/exacct/task
              Ressources de tâche suivies : extended
          Ressources de tâche non suivies : none
           Comptabilisation des processus : actif
    Fichier de comptabilisation des processus : /var/adm/exacct/proc
          Ressources de processus suivies : pid,uid,time,command,mstate
      Ressources de processus non suivies : gid,projid,taskid,cpu,tty,host,flag,ancpid,wait-status,zone,memory
                 Comptabilisation du flux : inactive
      Fichier de comptabilisation du flux : none
               Ressources de flux suivies : none
           Ressources de flux non suivies : extended

Afin de lire les données contenues dans les répertoires /var/adm/exacct/proc et /var/adm/exacct/task, il est nécessaire de compiler le logiciel exdump fourni dans le répertoire /usr/demo/libexacct :

# cd /usr/demo/libexacct
# ls
exdump.c  Makefile  README

L'utilisation de cet outil, une fois compilé est simple :

# ./exdump /var/adm/exacct/task

La Commande DTrace

La commande DTrace est un outil de surveillance et de débogage. Elle comprend un langage de programmation simple appelé D. Voici un exemple de ce langage :

syscall:::
/execname != "dtrace"/
{
     printf("%d %s %s\n", pid, probefunc, execname);
}

Ce programme D peut surveiller tous les appels système et les imprimer à l'écran. La première ligne active le probe syscall:::. La deuxième ligne exclue de la sortie tout appel système effectué par DTrace elle-même. La troisième ligne imprimera à l'écran trois informations chaque fois qu'il y a un appel système, à savoir le PID du processus générant l'appel système, le nom de l'appel système et le nom du processus.

L'utilisation de ce programme se fait ainsi :

bash-3.2# /usr/sbin/dtrace -q -s exemple1.d | more
1770 nanosleep VBoxClient
1770 ioctl VBoxClient
1770 ioctl VBoxClient
1770 nanosleep VBoxClient
423 nanosleep VBoxService
2284 lwp_cond_wait java
9979 lwp_cond_wait java
1770 nanosleep VBoxClient
1770 ioctl VBoxClient
1770 ioctl VBoxClient
1770 nanosleep VBoxClient
1770 nanosleep VBoxClient
1770 ioctl VBoxClient
1770 ioctl VBoxClient
1770 nanosleep VBoxClient
1770 nanosleep VBoxClient
1770 ioctl VBoxClient
1770 ioctl VBoxClient
1770 nanosleep VBoxClient
2158 lwp_cond_wait java
2158 lwp_cond_wait java
9979 lwp_cond_wait java
9979 lwp_cond_wait java
1770 nanosleep VBoxClient
1770 ioctl VBoxClient
1770 ioctl VBoxClient
1770 nanosleep VBoxClient
1770 nanosleep VBoxClient
1770 ioctl VBoxClient
1770 ioctl VBoxClient
1770 nanosleep VBoxClient
2158 lwp_cond_wait java

Probes

Nous avons vu que la première ligne de notre programme exemple1.d est un probe. Le format de ce probe est :

provider:module:function:name

Un probe est quelque chose à surveiller. Il en existe des milliers pour le système Solaris 10 et ils sont mis à disposition de DTrace par un fournisseur de probes, le provider.

Pour visualiser la liste des probes, utilisez la commande dtrace avec l'option -l :

# dtrace -l | more
   ID   PROVIDER            MODULE                          FUNCTION NAME
    1     dtrace                                                     BEGIN
    2     dtrace                                                     END
    3     dtrace                                                     ERROR
    4 nfsmapid437          nfsmapid                  cb_update_domain daemon-domain
    5 Xserver1500              Xorg                       AddResource resource-alloc
    6 Xserver1500              Xorg               WriteEventsToClient send-event
    7 Xserver1500              Xorg                          Dispatch request-start
    8 Xserver1500              Xorg                         AuthAudit client-auth
    9 Xserver1500              Xorg               FreeClientResources resource-free
   10 Xserver1500              Xorg    FreeClientNeverRetainResources resource-free
   11 Xserver1500              Xorg                FreeResourceByType resource-free
   12 Xserver1500              Xorg                      FreeResource resource-free
   13 Xserver1500              Xorg                          Dispatch request-done
   14 Xserver1500              Xorg                AllocNewConnection client-connect
   15 Xserver1500              Xorg                   CloseDownClient client-disconnect
   16        fbt                bl                         bl_attach entry
   17        fbt                bl                         bl_attach return
   18        fbt                bl                         bl_detach entry
   19        fbt                bl                         bl_detach return
   20        fbt                bl                        bl_getinfo entry
   21        fbt                bl                        bl_getinfo return
   22        fbt                bl                           bl_open entry
   23        fbt                bl                           bl_open return
   24        fbt                bl                          bl_ioctl entry
   25        fbt                bl                          bl_ioctl return
   26        fbt                bl                             _info entry
   27        fbt                bl                             _info return
   28        fbt              kmdb                         kdrv_open entry
   29        fbt              kmdb                         kdrv_open return
   30        fbt              kmdb                     kdrv_activate entry
   31        fbt              kmdb                     kdrv_activate return
--A suivre--

Pour consulter la liste des probes fournis par un provider spécifique, utilisez la commande suivante :

# dtrace -l -P fbt | more
   ID   PROVIDER            MODULE                          FUNCTION NAME
   16        fbt                bl                         bl_attach entry
   17        fbt                bl                         bl_attach return
   18        fbt                bl                         bl_detach entry
   19        fbt                bl                         bl_detach return
   20        fbt                bl                        bl_getinfo entry
   21        fbt                bl                        bl_getinfo return
   22        fbt                bl                           bl_open entry
   23        fbt                bl                           bl_open return
   24        fbt                bl                          bl_ioctl entry
   25        fbt                bl                          bl_ioctl return
   26        fbt                bl                             _info entry
   27        fbt                bl                             _info return
   28        fbt              kmdb                         kdrv_open entry
   29        fbt              kmdb                         kdrv_open return
   30        fbt              kmdb                     kdrv_activate entry
   31        fbt              kmdb                     kdrv_activate return
   32        fbt              kmdb                   kdrv_deactivate entry
   33        fbt              kmdb                   kdrv_deactivate return
   34        fbt              kmdb                        kdrv_ioctl entry
   35        fbt              kmdb                        kdrv_ioctl return
   36        fbt              kmdb                       kdrv_attach entry
   37        fbt              kmdb                       kdrv_attach return
   38        fbt              kmdb                       kdrv_detach entry
   39        fbt              kmdb                       kdrv_detach return
   40        fbt              kmdb                             _info entry
   41        fbt              kmdb                             _info return
   42        fbt               vni                           vniopen entry
   43        fbt               vni                           vniopen return
   44        fbt               vni                          vniclose entry
   45        fbt               vni                          vniclose return
   46        fbt               vni                           vniwput entry
--A suivre--

Module spécifie quel module du noyau contient le probe. Function spécifie la fonction dans le module qui contient le probe.

Predicates

Un Predicate est utilisé pour filtrer l'action du probe et se place juste après celui-ci. Prenons notre programme exemple1.d :

syscall:::
/execname != "dtrace"/
{
     printf("%d %s %s\n", pid, probefunc, execname);
}

Dans cet exemple, le probe est syscall::: et le predicate est execname != “dtrace”.

Actions

Une action définit le comportement quand le probe est déclenché. Prenons notre programme exemple1.d :

syscall:::
/execname != "dtrace"/
{
     printf("%d %s %s\n", pid, probefunc, execname);
}

Ce programme peut être maintenant représenté d'une manière générique par :

PROBE
/PREDICATE/
{
     ACTION;
}

Références


<html> <center> Copyright © 2011-2018 I2TCH LIMITED.<br><br> </center> </html>