5.3. Verzeichnisse in /proc/

Allgemeine Informationsgruppen bezüglich des Kernels werden in Verzeichnisse und Unterverzeichnisse in /proc sortiert.

5.3.1. Prozess-Verzeichnisse

Jedes /proc/ Verzeichnis enthält einige Verzeichnisse mit numerischen Namen. Eine Liste mit solchen fängt ähnlich dieser Liste an:

dr-xr-xr-x    3 root     root            0 Feb 13 01:28 1
dr-xr-xr-x    3 root     root            0 Feb 13 01:28 1010
dr-xr-xr-x    3 xfs      xfs             0 Feb 13 01:28 1087
dr-xr-xr-x    3 daemon   daemon          0 Feb 13 01:28 1123
dr-xr-xr-x    3 root     root            0 Feb 13 01:28 11307
dr-xr-xr-x    3 apache   apache          0 Feb 13 01:28 13660
dr-xr-xr-x    3 rpc      rpc             0 Feb 13 01:28 637
dr-xr-xr-x    3 rpcuser  rpcuser         0 Feb 13 01:28 666

Diese Verzeichnisse heißen Prozess-Verzeichnisse, weil sie sich auf eine Prozess-ID beziehen und Informationen zu diesem Prozess enthalten. Der Eigentümer und die Gruppe jedes Prozess-Verzeichnisses wird auf die ID des Benutzers, der den Prozess ausführt, gesetzt. Wenn der Prozess beendet wird, verschwindet das zugehörige /proc Prozess-Verzeichnis.

Jedes Prozess-Verzeichnis enthält die folgenden Dateien:

5.3.1.1. /proc/self/

Das Verzeichnis /proc/self ist ein Link zum zur Zeit laufenden Prozess. Das erlaubt einem Prozess, sich selbst zu beobachten, ohne die eigene Prozess-ID zu kennen.

In einer Shell-Umgebung hat eine Auflistung des Verzeichnises /proc/self den gleichen Inhalt wie die Auflistung des Prozess-Verzeichnisses dieses Prozesses.

5.3.2. /proc/bus/

Dieses Verzeichnis enthält spezifische Informationen zu den verschiedenen Bussystemen, die auf einem System verfügbar sind. Zum Beispiel finden Sie auf einem Standard-PC mit PCI- und USB-Bussen, aktuelle Daten zu jedem dieser Bussysteme in einem Unterverzeichnis von /proc/bus, das den Namen des Busses hat, wie z.B. /proc/bus/pci/.

Die Unterverzeichnisse und Dateien im Verzeichnis /proc/bus/ hängen von den zum System verbundenen Geräten ab. Jeder Bustyp hat jedoch zumindest ein Verzeichnis. Innerhalb dieser Bus-Verzeichnisse befindet sich zumindest ein Unterverzeichnis mit einem numerischen Namen, wie 001, das Binärdateien enthält.

Das Verzeichnis /proc/bus/usb/ enthält Dateien, die zu Geräten an den USB-Bussen gehören, genauso wie die Treiber, die gebraucht werden, um die Geräte zu benutzen. Folgend ist ein Beispiel eines /proc/bus/usb/-Verzeichnisses:

total 0
dr-xr-xr-x    1 root     root            0 May  3 16:25 001
-r--r--r--    1 root     root            0 May  3 16:25 devices
-r--r--r--    1 root     root            0 May  3 16:25 drivers

Das Verzeichnis /proc/bus/usb/001 enthält alle Geräte am ersten USB-Bus. Wenn Sie sich den Inhalt der Datei devices ansehen, können Sie sehen, dass es sich um das USB root Hub auf dem Mainboard handelt:

Folgend ist ein Beispiel der Datei /proc/bus/usb/devices:

T:  Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#=  1 Spd=12  MxCh= 2
B:  Alloc=  0/900 us ( 0%), #Int=  0, #Iso=  0
D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
P:  Vendor=0000 ProdID=0000 Rev= 0.00
S:  Product=USB UHCI Root Hub
S:  SerialNumber=d400
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr=  0mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00 Driver=hub
E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl=255ms

5.3.3. /proc/driver/

Dieses Verzeichnis enthält Informationen zu bestimmten Treibern, die vom Kernel verwendet werden.

Eine häufig hier anzufindende Datei ist rtc, welche die Ausgabe des Treibers für die Echtzeituhr (RTC), ein Gerät zum Erhalten der Zeitangabe während der Rechner ausgeschaltet ist, darstellt. Eine Beispielausgabe von /proc/driver/rtc:

rtc_time        : 16:21:00
rtc_date        : 2004-08-31
rtc_epoch       : 1900
alarm           : 21:16:27
DST_enable      : no
BCD             : yes
24hr            : yes
square_wave     : no
alarm_IRQ       : no
update_IRQ      : no
periodic_IRQ    : no
periodic_freq   : 1024
batt_status     : okay

Weitere Informationen über RTC finden Sie in der folgenden, installierten Dokumentation:

/usr/share/doc/kernel-doc-<version>/Documentation/rtc.txt.

5.3.4. /proc/fs

Dieses Verzeichnis zeigt an, welche Dateisysteme exportiert werden. Arbeiten Sie mit einem NFS Server, geben Sie cat /proc/fs/nfs/exports ein, um die gemeinsam verwendeten Dateisysteme und die dafür gewährten Berechtigungen anzuzeigen. Weitere Informationen zur gemeinsamen Verwendung von Dateisystemen mit NFS finden Sie unter Kapitel 9.

5.3.5. /proc/ide/

Dieses Verzeichnis beinhaltet Informationen über IDE-Geräte auf diesem System. Jeder IDE-Kanal wird von einem separaten Verzeichnis wie z.B. /proc/ide/ide0 und /proc/ide/ide1 repräsentiert. Zusätzlich gibt es eine drivers-Datei, welche die Versionsnummer der verschiedenen, in diesem IDE-Kanal verwendeten Treiber darstellt:

ide-floppy version 0.99.newide
ide-cdrom version 4.61
ide-disk version 1.18

Viele Chipsätze bieten eine Informationsdatei in diesem Verzeichnis an, welche zusätzliche Daten betreffend der Festplatten, die über die Kanäle angebunden sind, ausgibt. Zum Beispiel gibt ein generischer Intel PIIX4 Ultra 33 Chipsatz eine Datei /proc/ide/piix aus, die Ihnen zeigt, ob DMA oder UDMA für Geräte an den IDE-Kanälen aktiviert sind:



                              Intel PIIX4 Ultra 33 Chipset.
------------- Primary Channel ---------------- Secondary Channel -------------
                 enabled                          enabled
------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------
DMA enabled:    yes              no              yes               no 
UDMA enabled:   yes              no              no                no 
UDMA enabled:   2                X               X                 X
UDMA
DMA
PIO

Im Verzeichnis eines IDE-Kanals, wie z.B. ide0 für den ersten Kanal, finden Sie noch mehr Informationen. Die Datei channel zeigt die Kanalnummer an, wohingegen die Datei model den Bustyp am Kanal anzeigt (z.B. pci).

5.3.5.1. Geräte-Verzeichnisse

In jedem IDE-Kanal-Verzeichnis befindet sich ein Geräte-Verzeichnis. Der Name des Geräte-Verzeichnisses entspricht dem Laufwerksbuchstaben im /dev-Verzeichnis. So ist z.B. das erste IDE-Laufwerk in ide0 hda.

AnmerkungAnmerkung
 

Für jedes dieser Geräte-Verzeichnisse gibt es einen symbolischen Link zum /proc/ide/ Verzeichnis.

Jedes Geräte-Verzeichnis enthält eine Sammlung von Informationen und Statistiken. Der Inhalt dieser Verzeichnisse verändert sich je nach angesprochenem Gerät. Einige der wichtigen Dateien, die bei verschiedenen Geräten vorhanden sind, umfassen unter anderem:

  • cache — Der Geräte-Cache.

  • capacity — Die Kapazität des Gerätes in 512 Byte Blöcken.

  • driver — Treiber und Treiberversion, die benutzt wird, um das Gerät anzusprechen.

  • geometry — Physische und logische Geometrie des Gerätes.

  • media — Der Geräte-Typ, wie zum Beispiel disk

  • model — Modellname oder Nummer des Gerätes

  • settings — Eine Liste von aktuellen Parametern eines Gerätes. Diese Datei enthält normalerweise einige wissenswerte, technische Informationen. Ein Beispiel einer settings-Datei für eine Standard IDE-Festplatte sieht ungefähr so aus:

    name                value          min          max          mode
    ----                -----          ---          ---          ----
    acoustic            0              0            254          rw
    address             0              0            2            rw
    bios_cyl            38752          0            65535        rw
    bios_head           16             0            255          rw
    bios_sect           63             0            63           rw
    bswap               0              0            1            r
    current_speed       68             0            70           rw
    failures            0              0            65535        rw
    init_speed          68             0            70           rw
    io_32bit            0              0            3            rw
    keepsettings        0              0            1            rw
    lun                 0              0            7            rw
    max_failures        1              0            65535        rw
    multcount           16             0            16           rw
    nice1               1              0            1            rw
    nowerr              0              0            1            rw
    number              0              0            3            rw
    pio_mode            write-only     0            255          w
    unmaskirq           0              0            1            rw
    using_dma           1              0            1            rw
    wcache              1              0            1            rw

5.3.6. /proc/irq/

Dieses Verzeichnis wird benutzt, um 'IRQ zu CPU'-Affinität einzustellen. Dies erlaubt Ihnen, einen bestimmten IRQ mit nur einer CPU zu verbinden. Alternativ dazu kann eine CPU z.B. auch vom IRQ-Handling entbunden werden.

Jeder IRQ hat sein eigenes Verzeichnis, was die individuelle Konfiguration jedes IRQ ermöglicht. Die Datei /proc/irq/prof_cpu_mask ist eine Bitmaske, die die Standardwerte für die Datei smp_affinity im IRQ-Verzeichnis enthält. Die Werte in smp_affinity legen fest, welche CPUs für diesen speziellen IRQ verantwortlich sind.

Für weitere Informationen zum Verzeichnis /proc/irq/ sehen Sie folgende, installierte Dokumentation:

/usr/share/doc/kernel-doc-<version>/Documentation/filesystems/proc.txt

5.3.7. /proc/net/

Dieses Verzeichnis bietet einen weitgehenden Einblick in verschiedene Netzwerk-Parameter und -Statistiken. Jede Datei deckt einen bestimmten Informationsbereich zum Systemnetzwerkbereich ab. Es folgt eine Teilliste des Verzeichnisses /proc/net/:

5.3.8. /proc/scsi/

Dieses Verzeichnis ist analog zum Verzeichnis /proc/ide/, kann aber nur für verbundene SCSI-Geräte verwendet werden.

Die wichtigste Datei hier ist /proc/scsi/scsi, welche eine Liste mit allen erkannten SCSI-Geräten enthält. Aus dieser Auflistung können Sie den Typ des Gerätes, den Modell-Namen, den Hersteller und die SCSI Kanal/ID-Daten abrufen.

Wenn ein System zum Beispiel ein SCSI CD-ROM, ein Bandlaufwerk, Festplatten und einen RAID-Controller beinhaltet, könnte die Datei ähnlich wie in diesem Beispiel aussehen:

Attached devices: 
Host: scsi1 Channel: 00 Id: 05 Lun: 00
  Vendor: NEC      Model: CD-ROM DRIVE:466 Rev: 1.06
  Type:   CD-ROM                           ANSI SCSI revision: 02
Host: scsi1 Channel: 00 Id: 06 Lun: 00
  Vendor: ARCHIVE  Model: Python 04106-XXX Rev: 7350
  Type:   Sequential-Access                ANSI SCSI revision: 02
Host: scsi2 Channel: 00 Id: 06 Lun: 00
  Vendor: DELL     Model: 1x6 U2W SCSI BP  Rev: 5.35
  Type:   Processor                        ANSI SCSI revision: 02
Host: scsi2 Channel: 02 Id: 00 Lun: 00
  Vendor: MegaRAID Model: LD0 RAID5 34556R Rev: 1.01
  Type:   Direct-Access                    ANSI SCSI revision: 02

Jeder SCSI-Treiber, der vom System benutzt wird, hat ein eigenes Verzeichnis in /proc/scsi/, welches spezifische Dateien für jeden Controller enthält. Für unser Beispiel oben gibt es die Verzeichnisse aic7xxx und megaraid, da diese beiden Treiber benutzt werden. Die Dateien in diesen beiden Unterverzeichnissen beinhalten typischerweise I/O-Adressbereiche, IRQ-Informationen und Statistiken für den SCSI-Controller, der den Treiber benutzt. Jeder Controller liefert Informationen in verschiedener Größe und Art. Die Datei des Adaptec AIC-7880 Ultra SCSI Hostadapter in unserem Beispiel erzeugt folgende Ausgabe:

Adaptec AIC7xxx driver version: 5.1.20/3.2.4
Compile Options:
  TCQ Enabled By Default : Disabled
  AIC7XXX_PROC_STATS     : Enabled
  AIC7XXX_RESET_DELAY    : 5

Adapter Configuration:
           SCSI Adapter: Adaptec AIC-7880 Ultra SCSI host adapter
                           Ultra Narrow Controller
    PCI MMAPed I/O Base: 0xfcffe000
 Adapter SEEPROM Config: SEEPROM found and used.
      Adaptec SCSI BIOS: Enabled
                    IRQ: 30
                   SCBs: Active 0, Max Active 1,
                         Allocated 15, HW 16, Page 255
             Interrupts: 33726
      BIOS Control Word: 0x18a6
   Adapter Control Word: 0x1c5f
   Extended Translation: Enabled
Disconnect Enable Flags: 0x00ff
     Ultra Enable Flags: 0x0020
 Tag Queue Enable Flags: 0x0000
Ordered Queue Tag Flags: 0x0000
Default Tag Queue Depth: 8
    Tagged Queue By Device array for aic7xxx host instance 1:
      {255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255}
    Actual queue depth per device for aic7xxx host instance 1:
      {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}

Statistics:


(scsi1:0:5:0)
  Device using Narrow/Sync transfers at 20.0 MByte/sec, offset 15
  Transinfo settings: current(12/15/0/0), goal(12/15/0/0), user(12/15/0/0)
  Total transfers 0 (0 reads and 0 writes)
             < 2K      2K+     4K+     8K+    16K+    32K+    64K+   128K+
   Reads:       0       0       0       0       0       0       0       0
  Writes:       0       0       0       0       0       0       0       0


(scsi1:0:6:0)
  Device using Narrow/Sync transfers at 10.0 MByte/sec, offset 15
  Transinfo settings: current(25/15/0/0), goal(12/15/0/0), user(12/15/0/0)
  Total transfers 132 (0 reads and 132 writes)
             < 2K      2K+     4K+     8K+    16K+    32K+    64K+   128K+
   Reads:       0       0       0       0       0       0       0       0
  Writes:       0       0       0       1     131       0       0       0

Dieser Bildschirm zeigt die Transfergeschwindigkeiten zu den verschiedenen SCSI-Geräten, die an den Controller angeschlossen sind, basierend auf der Channel-ID, sowie detaillierte Statistiken zu der Anzahl und Größe der Dateien, die von diesem Gerät gelesen oder geschrieben wurden. Der oben angegebenen Ausgabe entnehmen Sie, dass der Controller mit dem CD-ROM-Laufwerk mit 20 Megabyte pro Sekunde kommuniziert, während das Bandlaufwerk nur mit 10 Megabytes kommuniziert.

5.3.9. /proc/sys/

Das Verzeichnis /proc/sys/ unterscheidet sich von /proc, weil es nicht nur eine Menge Informationen über das System zeigt, sondern auch Administratoren erlaubt, Kerneleigenschaften sofort zu aktivieren oder zu deaktivieren.

AchtungAchtung
 

Versuchen Sie niemals, Ihre Kernel-Einstellungen auf einem Produktionssystem mit den Dateien in /proc/sys zu optimieren. Es kann in manchen Fällen passieren, dass eine Einstellung den Kernel instabil macht und damit ein Neustart erforderlich wird.

Überprüfen Sie daher unbedingt die Korrektheit der Syntax, bevor Sie eine Änderung in /proc/sys vornehmen.

Ob eine Datei konfiguriert werden kann oder nur Informationen liefern soll, findet man am besten heraus, indem man sie über -l an einem Shell-Prompt anzeigt. Wenn die Datei nicht schreibgeschützt ist, können Sie diese zum Konfigurieren des Kernels verwenden. Zum Beispiel sieht eine Auflistung von /proc/sys/fs so aus:

-r--r--r--    1 root     root            0 May 10 16:14 dentry-state
-rw-r--r--    1 root     root            0 May 10 16:14 dir-notify-enable
-r--r--r--    1 root     root            0 May 10 16:14 dquot-nr
-rw-r--r--    1 root     root            0 May 10 16:14 file-max
-r--r--r--    1 root     root            0 May 10 16:14 file-nr

Hier sind die Dateien dir-notify-enable und file-max nicht schreibgeschützt und können deshalb dazu benutzt werden, den Kernel zu konfigurieren. Die anderen Dateien geben nur Informationen zu den aktuellen Einstellungen des Kernels aus.

Ein Wert in einer Datei in /proc/sys wird geändert, indem der neue Wert in diese Datei geschrieben wird. Zum Beispiel benutzt man, um den System Request Key in einem laufenden Kernel zu aktivieren, folgenden Befehl:

echo 1 > /proc/sys/kernel/sysrq

Dies ändert den Wert der Datei sysrq von 0 (off) auf 1 (on).

Einige Konfigurationsdateien in /proc/sys/ enthalten mehr als einen Wert. Um neue Werte in solchen Dateien zu speichern, müssen Sie ein Leerzeichen zwischen jeden Wert setzen, den Sie übergeben. Sehen Sie die Anwendung mit dem Befehl echo hier:

echo 4 2 45 > /proc/sys/kernel/acct

AnmerkungAnmerkung
 

Konfigurationsänderungen, die Sie mit echo vornehmen, gehen automatisch verloren, wenn das System neu gestartet wird. Um Ihre Konfigurations-Änderungen nach dem Booten wirksam werden zu lassen, lesen Sie bitte Abschnitt 5.4.

Das Verzeichnis /proc/sys enthält verschiedene Unterverzeichnisse, die verschiedene Bereiche des laufenden Kernel überwachen.

5.3.9.1. /proc/sys/dev/

Dieses Verzeichnis bietet Parameter für bestimmte Geräte im System an. Die meisten Systeme haben mindestens die zwei Verzeichnisse cdrom und raid. Benutzerdefinierte Kernel können andere Verzeichnisse besitzen, wie z.B. parport, was die gemeinsame Nutzung eines parallelen Ports durch Multiple-Device-Treiber ermöglicht.

Das cdrom-Verzeichnis enthält eine Datei namens info, die einige wichtige CD-ROM-Parameter ausgibt:

CD-ROM information, Id: cdrom.c 3.20 2003/12/17
 
drive name:             hdc
drive speed:            48
drive # of slots:       1
Can close tray:         1
Can open tray:          1
Can lock tray:          1
Can change speed:       1
Can select disk:        0
Can read multisession:  1
Can read MCN:           1
Reports media changed:  1
Can play audio:         1
Can write CD-R:         0
Can write CD-RW:        0
Can read DVD:           0
Can write DVD-R:        0
Can write DVD-RAM:      0
Can read MRW:           0
Can write MRW:          0
Can write RAM:          0

Diese Datei kann benutzt werden, um die Fähigkeiten einer unbekannten CD-ROM herauszufinden. Wenn mehrere Laufwerke vorhanden sind, hat jedes Gerät seine eigene Informationsspalte.

Verschiedene Dateien in /proc/sys/dev/cdrom, wie z.B. autoclose und checkmedia, können benutzt werden, um das CD-ROM Laufwerk einzustellen. Mit dem Befehl echo können Sie ein Feature aktivieren oder deaktivieren.

Wenn RAID-Unterstützung in den Kernel integriert wurde, ist ein Verzeichnis /proc/sys/dev/raid/ mit mindestens zwei Dateien vorhanden: speed_limit_min und speed_limit_max. Diese Einstellungen legen die Beschleunigung eines RAID Gerät für besonders I/O intensive Aufgaben, wie z.B. beim Synchronisieren von Festplatten, fest.

5.3.9.2. /proc/sys/fs/

Dieses Verzeichnis enthält eine Liste von Optionen und Informationen zu verschiedenen Einstellungen des Dateisystems, inklusive Quoten, Datei-Handles, Inoden und dentry-Informationen.

Das Verzeichnis binfmt_misc wirt benutzt, um Kernel-Unterstützung für verschiedenste Binär-Formate anzubieten.

Die wichtigen Dateien in /proc/sys/fs sind:

  • dentry-state — Zeigt den Status des Verzeichnis-Caches an. Diese Datei sieht so ähnlich wie diese aus:

    57411	52939	45	0	0	0

    Die erste Zahl zeigt die Gesamtzahl der Verzeichnis-Cache Einträge an, die zweite Zahl zeigt die Anzahl der nicht benutzten Einträgen an. Die dritte Zahl zeigt die Sekunden zwischem dem Löschen und dem erneuten Aufnehmen eines Verzeichnisses an. Die vierte misst die Seiten, die gerade vom System angefordert werden. Die letzten zwei Zahlen werden nicht benutzt und zeigen nur Nullen an.

  • dquot-nr — Zeigt die maximale Anzahl von zwischengespeicherten Quoten-Einträgen an.

  • file-max — Listet die maximale Anzahl von Datei-Handles, die der Kernel zuweist. Diesen Wert anzuheben kann Fehler lösen, die durch einen Mangel an verfügbaren Datei-Handles entstehen können.

  • file-nr — Zeigt die Anzahl zugewiesener, benutzter, und die maximale Anzahl der Datei-Handles an.

  • overflowgid und overflowuid — Definiert die feste Benutzer- und Gruppen-ID, falls das System nur 16-bit Gruppen- und Benutzer-IDs unterstützt.

  • super-max — Überwacht die maximal verfügbare Anzahl von Superblöcken.

  • super-nr — Zeigt die aktuelle Anzahl der benutzten Superblöcke an.

5.3.9.3. /proc/sys/kernel/

Dieses Verzeichnis enthält eine Vielzahl von verschiedenen Konfigurationsdateien, die direkt die Kernelfunktion beeinflussen. Einige der wichtigsten Dateien sind unter anderem:

  • acct — Überwacht die Aufhebung von Prozess Accounting, basierend auf der Prozentzahl des verfügbaren freien Speichers, der auf dem Dateisystem, das den Log enthält, verfügbar ist. Dieser Log sieht gewöhnlich so aus:

    4	2	30

    Der erste Wert schreibt den Prozentsatz an freiem Speicher vor, der erforderlich ist, um das Logging wiederaufzunehmen, wogegen der zweite Wert den prozentualen Grenzwert an freiem Speicher setzt, an dem das Protokollieren unterbrochen wird. Der dritte Wert setzt das Intervall in Sekunden, in dem der Kernel das Dateisystem abfragt, um zu entscheiden, ob das Logging wieder aufgenommen oder unterbrochen werden soll.

  • cap-bound — Überwacht die Capability Bounding Einstellungen. Diese bieten eine Liste von Möglichkeiten, die jeder Prozess auf dem System benutzten kann. Wenn eine Möglichkeit hier nicht aufgelistet ist, dann kann kein Prozess, egal mit welchen Privilegien, diese benutzen. Dies macht das System dadurch sicherer, dass bestimmte Dinge nicht ausgeführt werden können, zumindest nicht nach einem bestimmten Punkt im Boot-Prozess.

    Für eine gültige Liste von Werten für diese virtuelle Datei sehen Sie bitte nachfolgende, installierte Dokumentation:

    /lib/modules/<kernel-version>/build/include/linux/capability.h.

  • ctrl-alt-del — Überwacht ob die Tastenkombination [Strg]-[Alt]-[Entf] den Rechner mittels des init Befehls (Wert 0) neu startet oder einen sofortigen Neustart ohne Puffer-Synchronisation erzwingt; (Wert 1).

  • domainname — Erlaubt es, den Domainnamen des Systems zu konfigurieren, wie z.B. example.com.

  • exec-shield — Konfiguriert das Exec-Shield Feature des Kernels. Exec-Shield bietet Schutz vor verschiedensten Typen von Buffer-Overflow-Angriffen.

    Für diese virtuelle Datei gibt es zwei mögliche Werte:

    • 0 — Deaktiviert Exec-Shield.

    • 1 — Aktiviert Exec-Shield. Dies ist der Standardwert.

    WichtigWichtig
     

    Auf Sicherheit beruhende Applikationen, die gestartet wurden, während Exec-Shield deaktiviert war, müssen nach Aktivierung von Exec-Shield neu gestartet werden.

  • exec-shield-randomize — Aktiviert die zufallsmäßige örtliche Verteilung verschiedener Gegenstände im Speicher. Dies kann helfen Eindringlinge davon abzuhalten, Programme und Deamons im Speicher zu lokalisieren. Jedes mal wenn ein Programm oder ein Daemon startet, wird ihm jedes mal duch die Herstellung einer Zufallsordnung unerschiedlicher Speicherplatz zugewiesen. Dies geschieht niemals in einer statischen oder absoluten Speicheradresse.

    Für diese virtuelle Datei gibt es zwei mögliche Werte:

    • 0 — Deaktiviert die Randomisierung von Exec Shield. Dies kann für Debugging-Zwecke hilfreich sein.

    • 1 — Aktiviert Randomisierung von Exec Shield. Dies ist der Standardwert. Hinweis: Die Datei exec-shield muss also auf 1 gesetzt sein, sodass exec-shield-randomize wirksam ist.

  • hostname — Erlaubt es, den Hostnamen des Systems zu konfigurieren, wie z.B. www.example.com.

  • hotplug — Konfiguriert das Programm, das benutzt wird, wenn eine Konfigurationsänderung vom System erkannt wird. Dies wird vor allem mit dem USB und dem Cardbus PCI benutzt. Der Standardwert /sbin/hotplug sollte nicht geändert werden, außer wenn Sie ein neues Programm testen, dass diese Rolle ausfüllt.

  • modprobe — Stellt den Speicherort des Programms ein, das Kernel-Module bei Bedarf lädt. Der Standardwert von /sbin/modprobe zeigt an, dass kmod dieses Programm aufruft, wenn ein Kernel Thread kmod aufruft, um ein Modul zu laden.

  • msgmax — Setzt die maximale Größe von gesendeten Mitteilungen von einem Prozess zum anderen, wobei der Standardwert 8192 Bytes ist. Mit dem Erhöhen dieses Wertes sollten Sie vorsichtig sein, weil zwischengespeicherte Werte in nicht auslagerbarem Kernel-Speicher abgelegt werden, und jede Erhöhung in msgmax die RAM-Erfordernisse im System erhöhen.

  • msgmnb — Setzt die maximale Anzahl von Bytes in einer einzelnen Mitteilungs-Queue. Standard ist hier 16384.

  • msgmni — Setzt die maximale Anzahl von Mitteilungs-Queue-IDs. Standard ist 16.

  • osrelease — Listet die Linux-Kernel Releasenummer auf. Diese Datei kann nur durch Neuübersetzung und Neukompilierung des Kernels verändert werden.

  • ostype — Zeigt den Typ des Betriebssystems an. Diese Datei zeigt normalerweise Linux an; dieser Wert kann nur durch Ändern der Kernel-Quellen und Neukompilieren geändert werden.

  • overflowgid und overflowuid — Definiert die feste Gruppen- und Benutzer-ID, die für Systemaufrufe bei Architekturen, die nur 16-bit Gruppen- und Benutzer-IDs unterstützen, benutzt werden.

  • panic — Definiert die Anzahl von Sekunden, um die der Kernel den Neustart verschiebt, wenn ein "Kernel-Panik" auftritt. Dieser Wert steht normal auf 0, was einen automatischen Neustart nach einer "Kernel-Panik" deaktiviert.

  • printk — Diese Datei überwacht eine Vielzahl von Einstellungen zum Anzeigen und Loggen von Fehlermitteilungen. Jede Fehlermeldung vom Kernel hat einen loglevel, der die Wichtigkeit der Mitteilung wiedergibt. Die Loglevel-Werte teilen sich wie folgt auf:

    • 0 — Ein Kernel Notfall. Das System ist nicht benutzbar.

    • 1 — Kernel-Alarm, es müssen sofort Gegenmaßnahmen eingeleitet werden.

    • 2 — Der Kernel ist in kritischem Zustand.

    • 3 — Allgemeiner Kernel-Fehler.

    • 4 — Allgemeine Kernel-Warnung.

    • 5 — Kernel-Mitteilung zu einem normalen, jedoch ernstzunehmendem Zustand.

    • 6 — Kernel Informations-Mitteilung.

    • 7 — Kernel Debugging-Mitteilung.

    Vier Werte finden sich in der Datei printk:

    6     4     1     7

    Jeder dieser Werte definiert eine andere Regel zum Verarbeiten von Fehlermeldungen. Der erste Wert, Konsolen-Loglevel genannt, definiert die niedrigste Priorität von Mitteilungen, die auf die Konsole ausgegeben werden (je niedriger die Priorität, desto höher die Loglevel-Nummer). Der zweite Wert setzt den Standart-Loglevel für Mitteilungen, welche keinen Loglevel gesetzt haben. Der dritte Wert setzt den niedrigsten Loglevel Konfigurationswert für den Konsolen Loglevel. Der letzte Wert setzt den Standardwert für den Konsolen-Loglevel.

  • random/ Verzeichnis — Listet eine Anzahl von Werten, die zum Erzeugen von Zufallszahlen im Kernel verwendet werden.

  • rtsig-max — Konfiguriert die maximale Anzahl an POSIX-Echtzeitsignalen, die das System zu irgendeinem Zeitpunkt gepuffert haben kann. Der Standardwert ist: 1024.

  • rtsig-nr — Listet die aktuelle Anzahl von POSIX-Echzeitsignalen, die zur Zeit vom Kernel gepuffert werden.

  • sem — Diese Datei konfiguriert die Semaphore-Einstellungen im Kernel. Eine semaphore ist ein System V IPC-Objekt, das benutzt wird, um den Einsatz eines bestimmten Prozesses zu überwachen.

  • shmall — Zeigt den Gesamtwert des gemeinsam verwendeten Speichers in Bytes an, der gleichzeitig im System benutzt werden kann. Dieser Wert ist normalerweise: 2097152.

  • shmmax — Stellt die größte Speichersegmentgröße in Bytes ein, die vom Kernel erlaubt wird. Dieser Wert ist normalerweise 33554432. Der Kernel unterstützt allerdings viel größere Werte.

  • shmmni — Stellt die maximale Anzahl von gemeisam genutzten Speichersegmenten für das ganze System ein. Dieser Wert hat den Standardwert 4096.

  • sysrq — Aktiviert den System-Request-Key, wenn dieser Wert nicht auf das standardmäßige 0 gesetzt ist.

    Der Sinn des System-Request-Key ist es, Ihnen zu erlauben, dem Kernel direkte Anweisungen mit einer simplen Tastenkombination zu geben, um den Rechner z.B. direkt herunter zu fahren, das System neu zu starten, alle Dateisystempuffer zu schreiben oder wichtige Informationen auf Ihre Konsole zu schreiben. Um den System-Request-Key zu aktivieren, drücken Sie [Alt]-[SysRq]-[<system request code>]. Ersetzen Sie <system request code> mit einem der folgenden System-Request-Codes:

    • r — Deaktiviert Raw-Mode für die Tastatur und setzt dieses auf XLATE (ein eingeschränkterer Tastaturmodus, der die Modifikatoren wie z.B. [Alt], [Ctrl] oder [Shift] für keine Tasten erkennt).

    • k — Vernichtet alle Prozesse, die in der virtuellen Konsole aktiv sind. Auch Secure Access Key (SAK) genannt, wird dieser oft verwendet, um zu prüfen, dass der Login-Prompt von init gestartet wird, und nicht eine trojanische Kopie, die darauf aus ist, Benutzernamen und Passwörter zu sammeln.

    • b — Startet den Kernel neu, ohne dabei zuerst einen Unmount auf Dateisysteme durchzuführen, oder einen Sync zu Platten, die an das System angebunden sind.

    • c — Verursacht einen Absturz des Systems, ohne dabei zuerst einen Unmount auf Dateisysteme durchzuführen, oder einen Sync zu Platten, die an das System angebunden sind.

    • o — Fährt das System herunter.

    • s — Versucht einen Sync auf Platten, die an das System angebunden sind.

    • u — Versucht einen Unmount und Remount in Read-Only für alle Dateisysteme.

    • p — Gibt alle Flags und Register zur Konsole aus.

    • t — Gibt eine Liste der Prozesse zur Konsole aus.

    • m — Gibt Speicherstatistiken zur Konsole aus.

    • 0 bis 9 — Setzt den Log-Level für die Konsole.

    • e — Die Verwendung von SIGTERM vernichtet alle Prozesse, ausser init.

    • i — Die verwendung von SIGKILL vernichtet alle Prozesse, ausser init.

    • l — Die Verwendung von SIGKILL vernichtet alle Prozesse, einschließlich init. Das System ist nach Ausführen dieses System-Request-Key-Code unbrauchbar.

    • h — Gibt Hilfetext aus.

    Dieses Feature ist sehr nützlich bei der Verwendung eines Entwicklungskernel oder wenn ein System-Freeze auftritt.

    AchtungAchtung
     

    Das System-Request-Key Feature wird als Sicherheitsrisiko angesehen, da eine unbewachte Konsole einem Angreifer Zugriff zum System ermöglichen könnte. Aus diesem Grund ist es standardmäßig ausgeschaltet.

    Weitere Informationen zum System-Request-Key finden Sie unter /usr/share/doc/kernel-doc-<version>/Documentation/sysrq.txt.

  • sysrq-key — Bestimmt den Key-Code für den System-Request-Key (standardmäßige 84).

  • sysrq-sticky — Bestimmt, ob der System-Request-Key ein Akkord (Tastenkombination) ist. Die angenommenen Werte sind wie folgt:

    • 0[Alt]-[SysRq] und der System-Request-Code müssen gleichzeitig gedrückt werden. Dies ist die Vorgabe.

    • 1[Alt]-[SysRq] müssen gleichzeitig gedrückt werden, der System-Request-Code kann jedoch jederzeit, innerhalb der in /proc/sys/kernel/sysrq-timer angegebenen Sekunden gedrückt werden.

  • sysrq-timer — Gibt die Anzahl von Sekunden an, die Ablaufen können, bevor der System-Request-Code gedrückt werden muss. Der Standardwert ist 10.

  • tainted — Zeigt an, ob ein Nicht-GPL Modul geladen ist.

    • 0 — Keine non-GPL Module sind geladen.

    • 1 — Wenigstens ein Modul ohne GPL-Lizenz (einschließlich Module ohne Lizenz) ist geladen.

    • 2 — Zumindest ein Modul wurde mit dem Befehl insmod -f zwangsweise geladen.

  • threads-max — Stellt die maximale Anzahl von Threads, die vom Kernel genutzt werden können, ein. Standardwert: 4095.

  • version — Zeigt Datum und Zeit der letzten Kernel-Kompilierung an. Das erste Feld in dieser Datei, wie z.B. #3 zeigt an, wie oft ein Kernel aus den Quellen neukompiliert wurde.

5.3.9.4. /proc/sys/net/

Dieses Verzeichnis enthält Unterverzeichnisse über verschiedene Netzwerk-Themen. Verschiedene Konfigurationen zur Kernel-Kompilierung erzeugen hier verschiedene Verzeichnisse, wie z.B. appletalk, ethernet, ipv4, ipx und ipv6. In diesen Verzeichnissen können Sie verschiedene Netzwerk-Einstellungen für diese Konfiguration am laufenden System ändern.

Aufgrund der vielfältigen Netzwerk-Optionen, die in Linux verwendet werden können, werden wir nur die wichtigsten Verzeichnisse in /proc/sys/net/ vorstellen.

Das Verzeichnis /proc/sys/net/core/ enthält eine Vielzahl von Einstellungen, die die Interaktion zwischen Kernel und Netzwerkschichten beeinflussen. Die wichtigsten Dateien sind hier:

  • message_burst — Legt eine bestimmte Zeitspanne in Zehntelsekunden fest, die dazu benötigt werden, um eine neue Warnungsmitteilung zu schreiben. Das wird benutzt, um Denial of Service (DoS) Angriffe zu vermeiden; die Standardeinstellung ist: 50.

  • message_cost — Wird auch verwendet, um DoS Angriffe zu vermeiden, indem ein Cost-Faktor auf jede Warnung gesetzt wird. Je höher der Wert dieser Datei (Standard ist 5), desto eher wird die Warnung ignoriert. Diese Einstellung wird in Bezug auf DoS-Angriffe verwendet.

    Eine DoS-Attacke bedeutet, dass ein Angreifer Ihr System mit Anfragen überhäuft, die Fehler erzeugen und ihre Diskpartitionen mit Logdateien füllen oder Ihre Systemressourcen zum Fehlerloggen verbrauchen. Die Einstellungen in message_burst und message_cost sind dazu da, um auf der Basis von akzeptablem System-Risiko versus der Notwendigkeit nach umfassendem Logging modifiziert zu werden.

  • netdev_max_backlog — Setzt die maximale Anzahl von Paketen, die in die Warteschlange gestellt werden, wenn eine Schnittstelle Pakete schneller empfängt, als der Kernel diese verarbeiten kann. Der Standardwert hier ist: 300.

  • optmem_max — Konfiguriert die maximale zusätzliche Puffergröße pro Socket.

  • rmem_default — Setzt die Standardgröße für den Empfangspuffer in Byte.

  • rmem_max — Setzt die Maximalgröße des Empfangspuffers in Byte.

  • wmem_default — Setzt die Standardgröße für den Sendepuffer in Byte.

  • wmem_max — Setzt die Maximalgröße für den Sendepuffer in Byte.

Das Verzeichnis /proc/sys/net/ipv4/ enthält weitere Netzwerkeinstellungen. Viele dieser Einstellungen, die zusammen verwendet werden, sind sehr hilfreich bei der Verhinderung von Angriffen auf das System oder bei der Verwendung des Systems als Router.

AchtungAchtung
 

Eine irrtümliche Änderung dieser Dateien kann die Netzwerkverbindungen beeinträchtigen.

Folgend ist eine Liste einiger der wichtigeren Dateien im Verzeichnis /proc/sys/net/ipv4/:

  • icmp_destunreach_rate, icmp_echoreply_rate, icmp_paramprob_rate und icmp_timeexeed_rate — Stellt die maximale ICMP Send-Paket Rate in 1/100 Sekunden an Hosts unter verschiedenen Bedingungen ein. Eine Einstellung von 0 entfernt alle Verzögerungen und sollte nicht eingestellt werden.

  • icmp_echo_ignore_all und icmp_echo_ignore_broadcasts — Erlaubt dem Kernel, ICMP ECHO Pakete von allen Hosts oder nur solche von Broadcast- oder Multicast-Adressen zu ignorieren. Eine 0 erlaubt dem Kernel zu antworten, eine 1 ignoriert diese Pakete.

  • ip_default_ttl — Stellt die Standard Time To Live (TTL) ein, die die Anzahl von Sprüngen limitiert, bevor ein Paket sein Ziel erreicht. Eine Erhöhung dieses Wertes kann unter Umständen die Systemleistung beeinträchtigen.

  • ip_forward — Erlaubt Schnittstellen im System, Pakete zu einer anderen weiterzuleiten. Standardmäßig ist diese Datei auf 0 gesetzt, um das Weiterleiten auszuschalten. Eine 1 aktiviert die Paketweiterleitung.

  • ip_local_port_range — Legt die Ports fest, die von TCP oder UDP benutzt werden, wenn ein lokaler Port gebraucht wird. Die erste Zahl ist der niedrigste Port und die zweite Zahl steht für den höchsten benutzten Port. Jedes System, für das erwartet wird, dass es mehr als die Standard Ports 1024 bis 4999 benötigt, sollte die Werte 32768 bis 61000 verwenden.

  • tcp_syn_retries — Limitiert die Häufigkeit der Neu-Übertragung eines SYN-Paketes beim Versuch eine Verbindung herzustellen.

  • tcp_retries1 — Legt die Anzahl von zugelassenen Neu-Übertragungen fest, wenn versucht wird einer eingehenden Verbindung zu antworten. Standardwert ist hier 3.

  • tcp_retries2 — Stellt die Anzahl von erlaubten Neu-Übertragungen von TCP Paketen ein. Standardwert ist 15.

Die Datei /usr/src/linux-2.4/Documentation/networking/ip-sysctl.txt enthält eine komplette Liste der im Verzeichnis /proc/sys/net/ipv4/ verfügbaren Dateien und Optionen.

Es gibt eine Anzahl von anderen Verzeichnissen in /proc/sys/net/ipv4/, wobei jedes einen anderen Aspekt des Netzwerk-Stacks abdeckt. Das Verzeichnis /proc/sys/net/ipv4/conf/ erlaubt jeder der Systemschnittstellen eine unterschiedliche Konfiguration und lässt Standardwerte für nicht-konfigurierte Schnittstellen (im Unterverzeichnis /proc/sys/net/ipv4/conf/default/) und Einstellungen zu, die alle anderen Konfigurationen überschreiben (im Verzeichnis /proc/sys/net/ipv4/conf/all/).

Die Datei /proc/sys/net/ipv4/neigh/ beinhaltet Einstellungen zur Kommunikation mit einem Host, der direkt mit dem System verbunden ist (Netzwerk-Nachbar genannt) und beinhaltet ebenfalls verschiedene Einstellungen für Systeme, die mehr als einen Hop entfernt sind.

Das Routen über IPV4 besitzt auch ein eigenes Verzeichnis /proc/sys/net/ipv4/route/. Im Gegensatz zu conf und neigh, enthält das /proc/sys/net/ipv4/route/ Verzeichnis Spezifikationen, die das Routing auf allen Systemschnittstellen beeinflusst. Viele dieser Einstellungen, wie z.B. max_size, max_delay und min_delay, hängen mit der Einstellung des Routing Caches zusammen. Um den Routing Cache zu löschen, schreiben Sie einen beliebigen Inhalt in die Datei flush.

Zusätzliche Informationen über diese Verzeichnisse und die möglichen Werte zur Konfiguration finden Sie unter:

/usr/share/doc/kernel-doc-<version>/Documentation/filesystems/proc.txt

5.3.9.5. /proc/sys/vm/

Dieses Verzeichnis erleichtert die Konfiguration des virtuellen Speicher-Subsystems des Linux Kernels (VM). Der Kernel macht ausgiebigen und intelligenten Gebrauch von virtuellem Speicher, der auch Swap-Space genannt wird.

Die folgenden Dateien findet man normalerweise im Verzeichnis /proc/sys/vm/:

  • block_dump — Konfiguriert Debugging von I/O-Blöcken, falls aktiviert. Alle Lese-/Schreib-Operationen, die an Dateien durchgeführt wurden, werden dementsprechend protokolliert. Dies kann bei der Diagnose von Festplatten Spin-Up und Spin-Downs zur Akkukonservierung von Laptops nützlich sein. Jegliche Ausgabe, wenn block_dump aktiviert ist, kann mittels dmesg wiederaufgefunden werden. Der Standardwert ist 0.

    TippTipp
     

    Wenn block_dump zur selben Zeit wie Kernel-Debugging aktiviert ist, ist es darauf bedacht den klogd-Daemon zu stoppen, da dieser aufgrund von block_dump irrtümliche Plattenaktivität erzeugt.

  • dirty_background_ratio — Startet den den Vorgang Background-Writeback, wobei als 'dirty' markierte Daten (Seiten, die den Inhalt von Disk-Blöcken enthalten und modifiziert wurden) zu diesem Prozentsatz des Gesamtspeichers auf die Platte vom pdflush-Daemon zurückgeschrieben werden. Der Standardwert ist 10.

  • dirty_expire_centisecs — Legt den Intervall fest, wann als 'dirty' markierte Daten alt genug sind, zurückgeschrieben zu werden. Sobald Daten dieses vorgegebene Intervall überschritten haben, können diese, sobald der pdflush-Daemon wieder überprüft, ob als 'dirty' markierte Daten vorhanden sind, zurückgeschrieben werden.Der Standardwert ist 3000, in hundertstel Sekunden ausgedrückt.

  • dirty_ratio — Startet das aktive Zurückschreiben von als 'dirty' markierten Daten zu diesem Prozentsatz des Gesamtspeichers für den Erzeuger dieser Daten via pdflush. Der Standardwert ist 40.

  • dirty_writeback_centisecs — Legt die Intervalle zwischen dem periodischen Zurückschreiben der als 'dirty' markierten Daten auf Platte via pdflush-Daemon fest. Der Standardwert ist 500, ausgedrückt in hundertstel Sekunden.

  • laptop_mode — Mimimiert die Häufigkeit, in der die Festplatte hochfahren muss, indem man versucht, dass die Platte solange als möglich heruntergefahren bleibt (Festplattenshutdown), wodurch höhere Akkulaufzeiten auf Laptops erzielt werden können. Dies führt zu einer Steigerung der Effizienz, indem alle zukünfigen I/O-Prozesse zusammengefügt werden, was die Häufigkeit des Hochfahrens der Platte reduziert. Der Standardwert ist 0, wird jedoch automatisch aktiviert, sobald ein Laptop auf Batteriebetrieb geht.

    Dieser Wert wird automatisch vom acpid-Daemon überprüft, sobald ein Benutzer darüber informiert wird, dass der Batterieversorgung des Laptops aktiviert wurde. Dabei sind weder Benutzermodifikationen noch die Mitwirkung des Benutzers in irgendeiner Form notwendig, wenn der Laptop die ACPI (Advanced Configuration and Power Interface) Spezifikationen unterstützt.

    Für weitere Informationen siehe folgende, installierte Dokumentation:

    /usr/share/doc/kernel-doc-<version>/Documentation/laptop-mode.txt

  • lower_zone_protection — Legt fest, wie aggresiv der Kernel die unteren Speicherbereiche verteidigt, welches im Zusammenhang mit Maschinen, welche mit highmem konfiguriert wurden, besonders nützlich ist. Der Standardwert ist 0, also kein Schutz. Der hier optionell angegebene Wert ist die Speichergröße des lowmem Speichers in MegaByte, welcher vor der Freigabe für Benutzer geschützt werden soll.

    Für weitere Informationen siehe folgende, installierte Dokumentation:

    /usr/share/doc/kernel-doc-<version>/Documentation/filesystems/proc.txt

  • max_map_count — Konfiguriert die maximale Anzahl von Speicher-Map-Bereichen, die ein Prozess haben darf. In den meisten Fällen ist ein Standardwert von 65536 angemessen.

  • min_free_kbytes — Zwingt den Linux VM (Virtual Memory Manager) eine Mindestanzahl an Kilobytes freizuhalten. Der VM benutzt diese Zahl, um einen pages_min-Wert für jede lowmem -Zone im System zu berechnen. Der Standardwert steht in Bezug zum Gesamtspeicher auf dem Rechner.

  • nr_hugepages — Stellt die gegenwärtige Anzahl an konfigurierten hugetlb-Seiten im Kernel dar.

    Für weitere Informationen siehe folgende, installierte Dokumentation:

    /usr/share/doc/kernel-doc-<version>/Documentation/vm/hugetlbpage.txt

  • nr_pdflush_threads — Stellt die Anzahl der pdflush-Daemons dar, die gegenwärtig ablaufen. Diese Datei ist nur leseberechtigt und sollte nicht vom Benutzer geändert werden. Bei starken I/O-Belastungen wird der Standardwert von zwei vom Kernel angehoben.

  • overcommit_memory — Konfiguriert die Bedingungen, unter denen große Speicheranforderungen akzeptiert oder abgelehnt werden. Die folgenden drei Modi sind verfügbar:

    • 0 — Der Kernel führt ein heuristisches "Memory Over Commit Handling" durch und schätzt einen verfügbaren Speicherumfang und lässt Anfragen scheitern, die eindeutig ungültig sind. Da bei der Speicherzuordnung eher ein heuristischer, als ein genauer Algorithmus verwendet wird, kann es manchmal zu einer Überlastung des Systems kommen. Dies ist die Vorgabe.

    • 1 — Der Kernel führt kein "Memory Over Commit Handling" aus. Diese Einstellung erhöht das Potenzial einer Speicherüberlastung. Das gleiche gilt jedoch auch für die Performance von speicherintensiven Aufgaben (wie die, die von einigen wissenschaftlichen Softwareprogrammen verwendet werden).

    • 2 — Der Kernel lässt Anfragen nach Speicher scheitern, die sich auf die gesamte Menge des Swap plus dem physikalischen RAM, festgelegt in /proc/sys/vm/overcommit_ratio, belaufen. Diese Einstellung ist am Besten für diejenigen, die ein geringeres Risiko an "memory overcommitment" wünschen.

      AnmerkungAnmerkung
       

      Diese Einstellung ist nur für Systeme empfohlen, deren Swap größer als deren physikalischer Speicher ist.

  • overcommit_ratio — Gibt den Prozentanteil an physikalischem RAM an, der berücksichtigt wird, wenn /proc/sys/vm/overcommit_memory auf 2 gesetzt ist. Der Standardwert ist 50.

  • page-cluster — Stellt die Anzahl von Seiten, die auf einmal gelesen werden sollen, ein. Der Standardwert 3, der sich eigentlich auf 16 Seiten bezieht, reicht für die meisten Systeme aus.

  • swappiness — Bestimmt wie oft auf einem Rechner Swapping stattfindet. Je höher der Wert, desto mehr Swapping findet statt. Der Standardwert, als Prozentsatz dargestellt, ist auf 60 gesetzt.

Sämtliche Kernel-bezogene Dokumentation kann in folgendem lokal installiertem Speicherort gefunden werden:

Zusätzliche Informationen hierzu finden Sie in /usr/share/doc/kernel-doc-<version>/Documentation/.

5.3.10. /proc/sysvipc/

Dieses Verzeichnis enthält Informationen über die System V IPC-Ressourcen. Die Dateien in diesem Verzeichnis hängen mit den System V IPC-Aufrufen zusammen (msg), Semaphores (sem) und gemeinsam benutzter Speicher (shm).

5.3.11. /proc/tty/

Dieses Verzeichnis enthält Informationen über die verfügbaren und zur Zeit benutzten TTY-Geräte im System. Früher teletype device genannt, werden heute alle auf zeichenorientierten Daten-Terminals als TTY-Geräte bezeichnet.

Unter Linux gibt es drei verschiedene Arten von TTY-Geräten. Serielle Geräte werden mit seriellen Verbindungen benutzt, wie z.B. mit Modems oder seriellen Kabeln. Virtuelle Terminals erzeugen die normalen Konsolenverbindungen, wie die virtuellen Konsolen, die verfügbar sind, wenn Sie [Alt]-[<F-key>] auf einer Systemkonsole drücken. Pseudo Terminals erzeugen eine zwei-Wege Kommunikation, die von einigen höherrangigen Applikationen, wie z.B. XFree86 verwendet werden. Die Datei drivers enthält eine Liste der TTY-Geräte, die zur Zeit benutzt werden:

serial               /dev/cua        5  64-127 serial:callout
serial               /dev/ttyS       4  64-127 serial
pty_slave            /dev/pts      136   0-255 pty:slave
pty_master           /dev/ptm      128   0-255 pty:master
pty_slave            /dev/ttyp       3   0-255 pty:slave
pty_master           /dev/pty        2   0-255 pty:master
/dev/vc/0            /dev/vc/0       4       0 system:vtmaster
/dev/ptmx            /dev/ptmx       5       2 system
/dev/console         /dev/console    5       1 system:console
/dev/tty             /dev/tty        5       0 system:/dev/tty
unknown              /dev/vc/%d      4    1-63 console

Die Datei /proc/tty/driver/serial listet die Nutzungs-Statistik und den Status jedes der seriellen TTY-Geräte auf.

Damit TTY-Geräte ähnlich wie Netzwerk-Geräte benutzt werden können, stellt der Kernel line discipline für das Gerät ein. Das erlaubt dem Treiber, einen bestimmten Headertyp mit jedem Datenblock, der über das Gerät geht, zu transferieren; dieser Header macht das Paket zu einem Paket in einem Stream. SLIP und PPP sind allgemein bekannte Line Disciplines und werden vor allem benutzt, um Systeme über eine serielle Verbindung zu koppeln.

Registrierte Line Disciplines werden in der Datei ldiscs gespeichert; detaillierte Informationen finden Sie im Verzeichnis ldisc/.