- Wenn man im Web nach PID 0 sucht, findet man meist falsche Informationen.
- Bei der Suche nach PID 0 mit Google, Bing, DuckDuckGo und Kagi war es schwierig, eine korrekte Antwort zu finden.
- Falsche Informationen aus Wikipedia haben sich 16 Jahre lang verbreitet, und viele Websites haben sie zitiert.
Die Geschichte von PID 0
- PID 0 ist an Scheduling und Energieverwaltung beteiligt und hat nichts mit Paging zu tun.
- PID 0 fungiert als Scheduler, der läuft, wenn ein CPU-Kern nichts zu tun hat.
- In frühem Unix führte PID 0 speicherverwaltungsbezogene Aufgaben aus, in modernem Unix jedoch nicht mehr.
Die tatsächliche Rolle von PID 0
- PID 0 startet den Kernel und übernimmt danach die Verwaltung der CPU-Kerne.
- Im Linux-Kernel ist PID 0 durch die Funktion
do_idle implementiert.
- Auch in anderen Kerneln wie FreeBSD erfüllt PID 0 eine ähnliche Rolle.
Die Verwirrung um PID 0
- Im Linux-Kernel und im Userspace hat PID eine unterschiedliche Bedeutung.
- Im Kernel stellt
task_struct einen einzelnen Thread dar, und PID bedeutet die Thread-ID.
- Im Userspace steht PID für einen Prozess und entspricht dabei der Thread-Gruppen-ID.
PID 0 in Multicore-Systemen
- In Multicore-Systemen gibt es für jeden CPU-Kern einen Idle-Thread.
- Diese Idle-Threads gehören alle zur Thread-Gruppe 0.
- Im Userspace werden sie als PID 0 erkannt.
Fazit
- PID 0 existiert und ist der Thread, der den Kernel startet.
- PID 0 führt die anfängliche Kernel-Initialisierung durch und wechselt anschließend in einen Idle-Thread.
- PID 0 hat nichts mit Speicherverwaltung zu tun.
- In Multicore-Systemen gibt es pro Kern einen Idle-Thread, und sie alle gehören zur Thread-Gruppe 0.
Meinung von GN⁺
- Die Bedeutung korrekter Informationen: Falsche Informationen haben sich über lange Zeit verbreitet, sodass viele Menschen sie als Tatsache akzeptiert haben. Das erinnert erneut daran, wie wichtig die Bereitstellung korrekter Informationen ist.
- Die Komplexität des Kernels: Der Initialisierungsprozess des Kernels und die Scheduling-Mechanismen sind sehr komplex, und ihr Verständnis ist für Softwareingenieure äußerst hilfreich.
- Die Verwirrung um PID: Da PID im Kernel und im Userspace Unterschiedliches bedeutet, ist es wichtig, dies klar zu verstehen.
- Multicore-Systeme: Das Verständnis der Rolle von PID 0 in modernen Multicore-Systemen hilft bei der Optimierung der Systemleistung.
- Der Einfluss von Wikipedia: Dies zeigt, wie stark Informationen aus Wikipedia viele Websites beeinflussen. Es unterstreicht, wie wichtig die Aktualisierung korrekter Informationen ist.
3 Kommentare
Da erinnere ich mich an den Vorfall von damals, als dieser Agent
kill -9 0ausgeführt hat ...Interessant.
Hacker-News-Kommentare
getppidden Wert 0 zurück, wenn sich der Elternprozess in einem anderen PID-Namespace befindet.ps -aux: Wenn man den Befehl „ps -aux“ eingibt, werden auch Informationen über andere Benutzer angezeigt. Sollten diese Informationen nicht standardmäßig privat sein?kill 0: Es wurde ein Skript geteilt, daskill 0nutzt, um einen Befehl für eine begrenzte Zeit auszuführen und anschließend zu beenden.