4. Der Linux-Kernel. 4. weiterführendes Linuxtutorium 1

Ähnliche Dokumente
Operating System Kernels

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Dämon-Prozesse ( deamon )

Technische Informatik 1

Teil 3: Konzepte von Betriebssystemen

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

Prozesse und Logs Linux-Kurs der Unix-AG

Prozesse und Logs Linux-Kurs der Unix-AG

Systemsoftware (SYS) Fakultät für Informatik WS 2007/2008 Christian Baun. Übungsklausur

Grundlagen Rechnerarchitektur und Betriebssysteme

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Vortrag zum Seminar Konzepte und Techniken virtueller Maschinen und Emulatoren. Bruno Kleinert 20. Juni 2007

Prozesse, Logs und Systemverwaltung

Embedded-Linux-Seminare. Linux als Betriebssystem

Rechnernutzung in der Physik. Betriebssysteme

Threads and Scheduling

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

Echtzeitbetriebssysteme

Überlegungen beim Entwurf eines Betriebssystems

Speicher- und Cacheverwaltung unter Linux. Ralf Petring & Guido Schaumann

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

Übersicht. Virtuelle Maschinen Erlaubnisse (Permission, Rechte) Ringe. AVS SS Teil 12/Protection

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

5 Kernaufgaben eines Betriebssystems (BS)

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Prozesse: Prozesskontrollblock, -zustände, -umschaltung

Prozesse und Scheduling unter Linux (Kernel 2.4.XX)

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

Betriebssysteme. Tutorium 2. Philipp Kirchhofer

Geräteverwaltung: Einführung

Freispeicherverwaltung Martin Wahl,

Musterlösung Prüfung WS 01/02

Betriebssysteme Betriebssysteme und. Netzwerke. Netzwerke Theorie und Praxis

Proseminar KVBK : Scheduler unter Linux

Betriebssysteme Vorstellung

Betriebssysteme 1. Thomas Kolarz. Folie 1

Was machen wir heute? Betriebssysteme Tutorium 2. Organisatorisches. Frage 2.1.a. Theorieblätter Abgabe. Antwort. Probleme mit OS/161?

Microkernel-Betriebssysteme Mach, L4, Hurd

Konzepte von Betriebssystemkomponenten

Betriebssysteme. Thomas Fahringer. Institut für Informatik Universität Innsbruck. VO Betriebssysteme

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

Betriebssysteme Kapitel E : Prozesse

Linux Prinzipien und Programmierung

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Drucken und Löschen von angehaltenen Druckaufträgen Erkennen von Formatierungsfehlern Bestätigen von Druckaufträgen Reservieren von Druckaufträgen

Übersicht. Virtuelle Maschinen Erlaubnisse (Rechte) (Protection-)Ringe. AVS SS Teil 12/Protection

Computeranwendung in der Chemie Informatik für Chemiker(innen) 3. Software

Prozesse and Threads WS 09/10 IAIK 1

Betriebssysteme 1. Thomas Kolarz. Folie 1

Bereitstellung von Microservice mit dem OCCS

Betriebssysteme KU - Einführungstutorium

Allgemeines zu Unix (Solaris, Linux, MAC OS X, FreeBSD,Open BSD usw.)

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Freispeicherverwaltung

Systemprogramme bezeichnen alle Programme, die bestimmte Aufgaben unterstützen, die unabhängig von einer konkreten Anwendung sind

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/13

Symbian OS. OS für kleine Endgeräte: Sven Walter

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

2 2. Tag. 2.1 Das Dateisystem. das Dateisystem organisiert die Speicherung von Daten. viele Betriebssysteme haben verschiedene Dateisysteme

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

Der Scheduler von Windows 2000 Konzepte und Strategien

Systeme 1. Kapitel 5. Scheduling

e) Welche Aussage zu Speicherzuteilungsverfahren ist falsch?

Betriebssystembau (BSB)

Bibliotheks-basierte Virtualisierung

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren

Prozessarchitektur einer Oracle-Instanz

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

Round-Robin Scheduling (RR)

Der Scheduler von Windows Konzepte und Strategien

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

EINFÜHRUNG IN LINUX DR. MATTHIAS M. HÖLZL

Dateisysteme mit Plugin-Funktion

Filesystem in Userspace. Jens Spiekermann

Betriebssysteme 1. Thomas Kolarz. Folie 1

RealTime Linux. Paul Seidel Seminar Prozessteuerung und Robotik WS 08/09 Lehrstuhl BS und Middleware Prof. Polze Hasso-Plattner-Institut Potsdam

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Abschlussklausur. Betriebssysteme. Bewertung: 22. November Name: Vorname: Matrikelnummer:

Praktische Lernkarten zum Ausschneiden, Zusammenkleben und Sammeln :-) zur Prüfungsvorbereitung Diplomprüfung. Betriebssysteme

Das Arbeitsbuch. ÜK Modul 305. Aufgaben des Betriebssystems

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Polling vs Interrupts. SoSe bis P

Leichtgewichtsprozesse

Echtzeitscheduling (1)

Verwenden der Druck- und Zurückhaltefunktion

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

Speicherverwaltung III

Betriebssystemschichten ( )

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Prozesse. Netzwerk - Programmierung. Alexander Sczyrba Madis Rumming

CPU-Scheduling - Grundkonzepte

E Mikrocontroller-Programmierung

Rechnerarchitekturen und Betriebssysteme (CS201): Sicherheit: ACM und Passworte, OS-Timeline

Threads. Netzwerk - Programmierung. Alexander Sczyrba Jan Krüger

Transkript:

4. Der Linux-Kernel Geschichte des Kernels Die Aufgaben eines Kernels Kernelarten Implementierungsstrategien Bestandteile des Linux-Kernels Prozessverwaltung Prozesshierarchien Neuerungen im Kernel 2.6. 4. weiterführendes Linuxtutorium 1

Geschichte von Linux 1991 von Linus Torvalds unter den Namen Freaks freigegeben (Version 0.01) 1992 erfolgte die Unterstützung durch das GNU- Projekt, bei dem sich der Name GNU/Linux durchsetzte 1994 kam die Version 1.0 des Linux-Kernels heraus Der Kernel wird bis heute durch die GPL vertrieben und steht momentan unter GPL v.3 Jede neue Stable-Version wird von Linus Torvalds freigegeben 4. weiterführendes Linuxtutorium 2

Erscheinungstermine Erscheinungsdatum Version Codezeilen Aktuelle Version 17.09.1991 0.01 8 413-13.04.1994 1.0 170 581-09.06.1996 2.0 716 119 2.0.40 26.01.1999 2.2 1 676 182 2.2.26 04.01.2001 2.4 3.158.560 2.4.37.1 18.12.2003 2.6 5.475.685 2.6.29.4 4. weiterführendes Linuxtutorium 3

Kernelstruktur 4. weiterführendes Linuxtutorium 4

Kernelaufgaben Schnittstelle zu Anwenderprogrammen Zugriffskontrolle auf Speicher, Peripherie, Speicher Verteilung der Ressourcen, z.b. Prozessorzeit auf Anwenderprogramme Virtualisierung der Ressourcen Überwachung von Zugriffsrechten auf Dateien und Geräte bei Mehrbenutzersystemen 4. weiterführendes Linuxtutorium 5

Kernelarten 4. weiterführendes Linuxtutorium 6

Kernelarten monolithischer Kernel (1) Hier wird der gesamte Code des Kerns (Speicherverwaltung, Dateisysteme) in einer Datei verpackt Jede Funktion hat Zugriff auf andere Teile des Kerns Da die Leistung monolithischer Kernen momentan noch höher als von Microkerneln ist, wurde Linux in diesem Paradigma implementiert 4. weiterführendes Linuxtutorium 7

Kernelarten monolithischer Kernel (2) Bei Linux kommt eine wichtige Erweiterung zum monolithischen Kern zum tragen: Module Module enthalten ebenfalls Kernelcode Diese können während des laufenden Betriebs zum System hinzugefügt werden Durch diese Funktion gleichen monolithische Kernel Nachteile zu Microkerne aus 4. weiterführendes Linuxtutorium 8

Kernelarten Microkernel Nur die elementarsten Funktionen im zentralen Kernel implementiert Die restliche Teile werden eigenständige Prozesse ausgelagert Diese können nur über klar definierte Schnittstellen mit dem Kernel kommunizieren Durch zusätzlichen Rechenaufwand, der Aufgrund der Komponentenkommunikation verrichtet werden muss, haben sich Microkernel noch nicht allzu-sehr in der Praxis durchgesetzt 4. weiterführendes Linuxtutorium 9

Bestandteile des Linux-Kernels Prozesse Scheduling Virtueller Adressraum Privilegstufen Systemcalls Module Caching Datentypen 4. weiterführendes Linuxtutorium 10

Start neuer Prozesse - fork Erzeugt eine exakte Kopie des aktuellen Prozesses, die sich lediglich in der PID unterscheidet Nach der Ausführung des System-Calls, existieren 2 Prozesse auf dem System Der Speicherinhalt des Ausgangsprozesses wird dupliziert (aus der Sicht des Programms) 4. weiterführendes Linuxtutorium 11

Start neuer Prozesse - exec Dient dazu ein neues Programm in einen bereits bestehenden Content zu laden Die vom alten Programm belegten Speicherseiten werden gelöscht Danach beginnt die Ausführung des neuen Programms Exec erzeugt keinen eigenen Prozess, sondern kann nur einen vorher durch fork erzeugten Prozess umwandeln 4. weiterführendes Linuxtutorium 12

Virtueller Adressraum (1) Da Speicherbereiche über Zeiger angesprochen werden, gibt die Wortbreite dieser Zeiger, die Größe des max. verwendbaren Adressraums an Auf 32-Bit-Systemen Systemen sind es 2³²-Bit, also 4GB Diese 4GB stehen auch zur Verfügung wenn weniger als diese 4GB an Ram vorhanden sind Weshalb der max. ansprechbare Adressraum als virtueller Adressraum bezeichnet wird 4. weiterführendes Linuxtutorium 13

Virtueller Adressraum (2) Jeder Benutzerprozess eines Systems verfügt über einen virtuellen Adressbereich der von 0 bis TASK_SIZE TASK_SIZE ist eine Architektur-spezifische Konstante die den Adressraum in einen bestimmten Verhältnis aufteilt Bei 32-Bit-Systemen wir der Split bei 3GB durchgeführt 4. weiterführendes Linuxtutorium 14

Virtueller Adressraum (3) 4. weiterführendes Linuxtutorium 15

Privilegstufen (1) Um die einzelnen Prozesse im System vor einander schützen zu können, bietet jede moderne CPU Privilegstufen Jeder Prozess befindet jeweils in einer Privilegstufe In jeder Stufe sind verschiedene Dinge verboten z.b. Die Ausführung bestimmter Assembleranweisungen oder Zugriff auf bestimmte Bereiche des Virtuellen Adressraums 4. weiterführendes Linuxtutorium 16

Privilegstufen 32-Bit und Linux 4. weiterführendes Linuxtutorium 17

Privilegstufen (2) Während moderne CPUs mehrere Privilegstufen unterscheiden können: 0 - Kern 1 - Systemdienste 2 - Systemerweiterungen 3 - Anwendungen Sind in Linux nur zwei Modi definiert: Usermode Kernelmode 4. weiterführendes Linuxtutorium 18

Privilegstufen (3) Im Usermode ist es verboten, auf dem Speicherbereich oberhalb von TASK_SIZE, also den Kerneladressraum zuzugreifen Benutzerprozesse können die darin enthaltenen Daten nicht manipulieren oder auslesen Es ist ihnen außerdem nicht möglich, Code aus diesem Speicherbereich auszuführen Der Mechanismus verhindert das sich Prozesse gegenseitig stören 4. weiterführendes Linuxtutorium 19

Privilegstufen (4) Der wechsel vom User- im Kernelmodus wird in einem speziellen Übergang vollzogen Systemcall Wenn ein normaler Prozess-Kernelcode ausführen möchte, kann dies nur mit Hilfe eines Systemcalls geschehen Dieser prüft zunächst ob dem Prozess die gewünschten Aktionen gestattet sind, führt diese in seinen Namen aus und schaltet Zurück in den Usermode 4. weiterführendes Linuxtutorium 20

Systemcalls (1) Sind die klassische Methode, um Userspace- Prozessen mit dem Kernel zusammenarbeiten zu lassen Kategorien von Systemcalls: Prozessmanagement (erzeugen neuer Prozesse) Signale (Senden von Signalen, Zeitzählern...) Dateien (erzeugen, öffnen, schließen...) Verzeichnisse (erzeugen, Verzeichniswechsel) Schutzmechanismen (Auslesen und Verändern von User-ID und Group-ID) 4. weiterführendes Linuxtutorium 21

Systemcalls (2) Es ist nicht möglich diese Aufgaben in einem normalen Programm unterzubringen Da besondere Schutzmechanismen vorhanden sind Außerdem müssen viele Aufrufe, auf Kernelinterne Strukturen und Vorgänge Nach dem Aufruf eines Systemcalls muss der Prozessor die Privilegstufe ändern 4. weiterführendes Linuxtutorium 22

Module Module werden verwendet, um Funktionalitäten dynamisch zur Laufzeit des Kernels einzubinden (Gerätetreiber, Dateisysteme) Module sind im Prinzip nichts anderes als normale Programme, die anstatt im Usermode im Kernel-Adressraum ausgeführt werden Zusätzlich müssen sie bestimmte Abschnitte bereitstellen, die bei Initialisierung und Beendigung der Module ausgeführt werden 4. weiterführendes Linuxtutorium 23

Caching Der Kern verwendet Caches, um die Leistung des Systems zu erhöhen Dies geschieht in den von langsamen Blockgeräten (Festplatten, Disketten...) gelesene Daten im Ramspeicher vorgehalten werden Der Cache ist Seitenweise organisiert (es werden immer komplette Speicherseiten gecacht) 4. weiterführendes Linuxtutorium 24

Prozessverwaltung Prozessstruktur Prioritäten Lebenszyklus Repräsentation von Prozessen Systemaufrufe zur Prozessverwaltung Prozessverdopplung 4. weiterführendes Linuxtutorium 25

Linux-Prozessübersicht (1) Hierarchisches Prozessschema Dadurch bildet sich eine Baumstruktur 4. weiterführendes Linuxtutorium 26

Linux-Prozessübersicht (2) Der Kernel startet das Programm Init als ersten Prozess Von dem aus die weitere Initialisierung des Systems gestartet wird Init ist die Wurzel aller Prozesse (des Prozessbaumes) Die Entstehung dieser Baumstruktur hängt eng mit der Art und Weise zusammen, wie neue Prozesse erzeugt werden 4. weiterführendes Linuxtutorium 27

Prioritäten Nicht alle Prozesse auf dem System sind gleich wichtig Durch Prioritäten ist eine Gewichtung von Prozessen möglich Dadurch ist Gewährleistet das Systemprozesse bevorzugt behandelt werden 4. weiterführendes Linuxtutorium 28

Prioritäten - Zeitscheibenverfahren 4. weiterführendes Linuxtutorium 29

Lebenszyklus Zustände von Prozessen Laufend Der Prozess wird ausgeführt Wartend Der Prozess wartet auf Prozessorzeit Blockiert Der Prozess wartet auf ext. Ereignis Das System speichert alle Prozesse in einer Prozessliste unabhängig vom Prozesszustand Blockierte Prozesse sind allerdings spezielle markiert 4. weiterführendes Linuxtutorium 30

Schema des Lebenszyklus 4. weiterführendes Linuxtutorium 31

Repräsentation von Prozessen Alle Algorithmen im Linuxkernel die sich mit Prozessen und Programmen beschäftigen sind um eine zentrale Datenstruktur herum aufgebaut Es handelt sich um eine zentrale Struktur des Systems 4. weiterführendes Linuxtutorium 32

Die Struktur task_struct 4. weiterführendes Linuxtutorium 33

Aufbau der task_struct Status und Ausführungsinformationen, PID, Zeitinformationen, Pointer auf Eltern- und Geschwisterprozesse sowie Prioritätskennzahlen Informationen zum virtuellen belegten Speicher Prozesskennzahlen wie User- oder Group-ID und Sonderrechte Verwendete Dateien Threadinformationen (CPU-spezifische Laufzeitdaten) 4. weiterführendes Linuxtutorium 34

Verwandtschaftsverhältnisse zwischen Prozessen ELTERN-Prozess KIND - Prozess KIND - Prozess KIND - Prozess 4. weiterführendes Linuxtutorium 35

Prozessverdopplung (1) fork Ist der schwergewichtigste Aufruf, da er eine komplette Kopie des Elternprozess anlegt, um dem Aufwand zu senken, verwendet Linux das COW-Verfahren. vfork arbeitet ähnlich wie fork, legt aber keine Kopie der Daten an, sondern teilt die Daten unter beiden Prozessen auf. Jeder Prozess kann Daten manipulieren, der andere Prozess merkt dies allerdings. Vfork ist für den Fall angelegt, dass der erzeugte Kindprozess unmittelbar den exec-systemaufruf ausführt um ein neues Programm zu laden. 4. weiterführendes Linuxtutorium 36

Prozessverdopplung (2) vfork (Fortsetzung): clone: Außerdem Garantiert der Kernel, dass der Elternprozess nicht mehr ausgeführt wird, bis der Kindprozess entweder beendet wurde oder ein neues Programm gestartet hat. Wird zur Erzeugung von Threads verwendet. Dabei kann genau eingestellt werden, welche Elemente zwischen Eltern- und Kindprozess geteilt werden und welche Kopiert werden. 4. weiterführendes Linuxtutorium 37

Copy-On-Write Wird benutzt um das Kopieren aller Daten des Elternprozesses bei der Ausführung von fork zu vermeiden Sie beruht auf der Erkenntnis, das Prozesse nur einen geringen Teil der Speicherseiten ausnutzt Solange beide Prozesse nur lesend auf Ihre Speicherseiten zugreifen, können die Daten problemlos geteilt werden Sobald ein Prozess versucht die geteilte Seite zu schreiben, wird Sie exklusiv für ihn kopiert 4. weiterführendes Linuxtutorium 38

Neuerungen im Kernel 2.6 Der O(1)-Scheduler Der CFS-Scheduler Preemptiver Kernel Zugriffskontrolllisten Inotify Weitere wichtige Änderungen 4. weiterführendes Linuxtutorium 39

Der Scheduler Scheduler = Steuerprogramm, der die zeitliche Ausführung mehrere Prozesse regelt Non-preemptive lassen ein Prozess solange laufen, bis dieser von sich aus die CPU wieder freigibt Preemptive Scheduler arbeiten mit sog. Timeslices (Zeitscheiben), ein Prozess kann max. für die Dauer einer Zeitscheibe auf der CPU laufen, danach wird ein anderer Prozess ausgewählt 4. weiterführendes Linuxtutorium 40

Anforderungen an den Scheduler durch verschiedene Systemarten Beispiele für Systemarten: Batch Systeme: Keine hohe Anforderung an die Reaktionszeit Interaktive Systeme: möglichst kurze Reaktionszeit gewünscht Echtzeitsysteme (Realtimescheduling): hartes Zeitlimit für die max. Bearbeitungsdauer eines Prozesses 4. weiterführendes Linuxtutorium 41

Ziele des Scheduler Der Scheduler ist bestrebt, möglicht allen Anforderungen der Systemarten gerecht zu werden Allgemeine Ziele: Fairness und Balance Batch Systeme: hohe Ø-CPU-Last, hoher Durchsatz Interaktive Systeme: schnelle Antwortzeiten Echtzeitsysteme: Deadlines einhalten 4. weiterführendes Linuxtutorium 42

Der O(1) - Scheduler Wurde mit Kernel 2.6. eingeführt, aber ab Version 2.6.23 von Completely Fair Scheduler abgelöst Er erhielt seinen Namen durch die Komplexität 01, das bedeutet, das die vom Scheduler benötigte Zeit um einen nächsten Prozess auszuwählen, unabhängig von der Anzahl der verwalteten Prozessen war 4. weiterführendes Linuxtutorium 43

Completely Fair Scheduler Der Completely Fair Scheduler garantiert eine faire Aufteilung der Prozessorzeit Er verzichtet im Gegensatz zu O(1)-Scheduler auf Statistiken und Heuritiken Im Idealfall läuft beim CFS jeder Task quasiparallel in gleicher Geschwindigkeit Ab Kernel 2.6.24 wird CFS-Taskgroups unterstützt. Sinnvoll wenn mehrere Benutzer an einen System arbeiten, da die Tasks von einen Benutzer zu einer Gruppe zusammengefasst werden können 4. weiterführendes Linuxtutorium 44

CFS-Funktionsweise Der CFS kennt keine Timeslices und keine Runqueue Stattdessen ist jedem Prozess ein wait_runtime-wert zugeordnet Dieser bestimmt auf Nanosekundengenau wielange der Prozess auf seine Ausführung wartet Der Prozess mit höchster wait_runtime wird gewählt 4. weiterführendes Linuxtutorium 45

4. weiterführendes Linuxtutorium 46

Preemptiver Kernel Preemptives Scheduling ist jetzt auch im Kernelmodus möglich Somit kann ein Programm aus dem Usermode, wenn es eine dringende Anfrage hat, ein Programm aus dem Kernelmode unterbrechen Der Kernelmodus nimmt dann wieder den Betrieb auf, wenn die Timeslice vom Usermode -Prozess abgelaufen ist oder der Kernelmodus ein Re-Scheduling anfordert (mit Dringlichkeit) 4. weiterführendes Linuxtutorium 47

Zugriffskontrolllisten Mit dem Kernel 2.6 werden für Linux erstmals Zugriffskontrolllisten (access control lists) nativ eingeführt Eine ACL legt fest, welcher Benutzer welche Dienste und Dateien nutzen darf Im Unterschied zu einfachen Zugriffsrechten sind ACLs feiner einstellbar Unter Linux unterstützen dabei die Dateisysteme ext2, ext3, JFS, XFS und ReiserFS ACLs vollständig 4. weiterführendes Linuxtutorium 48

Inotify Mit dem Kernel 2.6.13 hält erstmals Inotify Einzug in den Kernel Dies ermöglicht das permanente Überwachen von Dateien und Ordnern Wird eines der überwachten Objekte geändert oder ein neues Objekt im Überwachungsraum erschaffen, gibt Inotify eine Meldung aus Dies wiederum kann andere Programme zu definierten Tätigkeiten veranlassen kann 4. weiterführendes Linuxtutorium 49

Weitere wichtige Änderungen In Linux 2.6 wurde die Maximalzahl für bestimmte Ressourcen angehoben Die Anzahl von möglichen Benutzern und Gruppen erhöhte sich von 65.000 auf über 4 Milliarden Ebenso wie die Anzahl der Prozess-IDs (von 32.000 auf 1 Milliarde) Und die Anzahl der Geräte (Major/Minor-Nummern) Außerdem wurde für die Verwaltung der I/O-Gerätedateien devfs durch udev ersetzt, was Unzulänglichkeiten, wie z.b. ein zu großes /dev/-verzeichnis, beseitigt 4. weiterführendes Linuxtutorium 50