Das Prozessdateisystem

Das Prozessdateisystem stellt zur Laufzeit die Daten des Kernels in Form eines normalen Dateisystems dar. Als Mount-Point dient normalerweise /proc. Dieses Dateisystem existiert allein im Hauptspeicher und nicht auf der Festplatte!

Ein Blick in das Verzeichnis offenbart den Inhalt:

user@sonne> ls /proc
1    157  179  195  243  279  cmdline      kcore      misc        stat
105  160  180  196  244  281  cpuinfo      kcore_elf  modules     swaps
106  161  181  2    245  283  devices      kmsg       mounts      sys
112  162  182  205  246  3    dma          ksyms      net         tty
117  165  183  206  247  4    fb           loadavg    partitions  uptime
121  166  184  209  249  5    filesystems  locks      pci         version
136  171  185  227  252  6    fs           lvm        rtc
147  176  186  233  258  74   ide          mdstat     scsi
151  177  187  236  276  78   interrupts   meminfo    self
155  178  188  239  277  bus  ioports      memstat    slabinfo  

Sinn dieses Abbildes der Kerneldaten ist es, Programmen das Lesen dieser Daten zu ermöglichen, ohne auf den Kernelbereich zugreifen zu müssen (Sicherheit!!!). Im Einzelnen bedeuten die Einträge:

Name beinhaltet
1,105, ...

Diese Zahlen entsprechen den PIDs der laufenden Prozesse und sind Unterverzeichnisse, die wiederum die relevanten Daten der Prozesse beinhalten.

root@sonne> ls /proc/1
cmdline  cwd  environ  exe  fd  maps  mem  root  stat  statm  status

cwd ist das aktuelle Arbeitsverzeichnis und root das Wurzelverzeichnis. Im Unterverzeichnis fd stehen die Deskriptoren der geöffneten Dateien.

cmdline

Enthält die Bootzeile, mit der der Kernel gestartet wurde. In den Unterverzeichnissen zu den einzelnen Prozessen stehen hier die Optionen beim Start des jeweiligen Prozesses.

user@sonne> cat /proc/cmdline
auto BOOT_IMAGE=Linux
cpuinfo

Typ und Leistung der CPU findet man hier.

user@sonne> cat /proc/cpuinfo
processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 5
model           : 8
model name      : AMD-K6(tm) 3D processor
stepping        : 12
cpu MHz         : 451.034814
fdiv_bug        : no
hlt_bug         : no
sep_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr mce cx8 sep mtrr pge mmx 3dnow
bogomips        : 897.84
devices

Die Hauptgerätenummern (Major Number) der im Kernel geladenen Treiber stehen hier.

user@sonne> cat /proc/devices
Character devices:
  1 mem
  2 pty
  3 ttyp
  4 ttyS
  5 cua
  7 vcs
 10 misc
 29 fb
 36 netlink
 99 ppuser
128 ptm
136 pts
162 raw

Block devices:
  1 ramdisk
  2 fd
  3 ide0
  7 loop
  9 md
 22 ide1
filesystems

Die vom Kernel unterstützten Dateisysteme.

user@sonne> cat /proc/filesystems
        ext2
        minix
        umsdos
        msdos
        vfat
nodev   proc
nodev   nfs
        iso9660
nodev   devpts
interrupts

Liste der belegten Hardwareinterrupts mit Zugriffsstatistik.

user@sonne> cat /proc/interrupts
           CPU0
  0:    2381241          XT-PIC  timer
  1:      51482          XT-PIC  keyboard
  2:          0          XT-PIC  cascade
  8:          2          XT-PIC  rtc
 10:      26390          XT-PIC  eth0
 12:     337541          XT-PIC  PS/2 Mouse
 13:          1          XT-PIC  fpu
 14:     262940          XT-PIC  ide0
 15:          4          XT-PIC  ide1
kcore Zugang zum Arbeitsspeicher (nur für root).
locks

Liste der aktiven Dateisperren.

user@sonne> cat /proc/locks
1: POSIX  ADVISORY  WRITE 843 03:05:507930 0 2147483647 c652a920 00000000 c652a 740 00000000 c232bf44
1: -> POSIX  ADVISORY  WRITE 844 03:05:507930 0 2147483647 c232bf44 00000000 00 000000 00000000 c652a920
2: FLOCK  ADVISORY  WRITE 0 03:05:145478 0 2147483647 c652a740 c652a920 c652a620 00000000 00000000
3: FLOCK  ADVISORY  WRITE 0 03:05:155744 0 2147483647 c652a620 c652a740 c652a5c0 00000000 00000000
4: POSIX  ADVISORY  WRITE 133 03:05:145472 0 2147483647 c652a5c0 c652a620 00000000 00000000 00000000
meminfo

Speicher- und Swap-Auslastung.

user@sonne> cat /proc/meminfo
        total:    used:    free:  shared: buffers:  cached:
Mem:  130813952 124973056  5840896 56123392 17874944 33165312
Swap: 139821056   172032 139649024
MemTotal:    127748 kB
MemFree:       5704 kB
MemShared:    54808 kB
Buffers:      17456 kB
Cached:       32388 kB
BigTotal:         0 kB
BigFree:          0 kB
SwapTotal:   136544 kB
SwapFree:    136376 kB
stat

Statusinformation des Kernels.

user@sonne> cat /proc/stat
cpu  58798 1 10291 2329306
disk 38353 0 0 0
disk_rio 26383 0 0 0
disk_wio 11970 0 0 0
disk_rblk 52790 0 0 0
disk_wblk 23970 0 0 0
page 99771 32285
swap 5 64
intr 3085540 2398396 52805 0 0 0 0 90 0 2 0 26551 0 344639 1 263052 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 3408251
btime 950767448
processes 1311
sys

Verschiedene Informationen zum Laufzeitsystem stehen in diesem Unterverzeichnis.

user@sonne> ls /proc/sys
debug  dev  fs  kernel  net  proc  sunrpc
version

Kernelversion und Übersetzungsdatum des aktiven Kernels.

user@sonne> cat /proc/version
Linux version 2.2.14 (sonne@galaxis.de) (gcc version egcs-2.91.66 19990314/Linux
(egcs-1.1.2 release)) #1 Mon Feb 14 15:51:29 CET 2000