Ich suche nach dem Prozess, der in Linux mit der Prozess-ID 0 gestartet wurde. Ich weiß, dass initPID 1 der erste Prozess in Linux ist. Gibt es einen Prozess mit PID 0?
Von der Wikipedia-Seite mit dem Titel: Prozess-ID :
Es gibt zwei Tasks mit speziell definierten Prozess-IDs: swapper
oder sched hat die Prozess-ID 0 und ist für das Paging verantwortlich. Sie sind eher Teil des Kernels als ein normaler Prozess im Benutzermodus . Die Prozess-ID 1 ist normalerweise der Initialisierungsprozess , der hauptsächlich für das Starten und Herunterfahren des Systems verantwortlich ist. Ursprünglich war die Prozess-ID 1 durch keine technischen Maßnahmen speziell für init reserviert: Sie hatte lediglich diese ID als natürliche Folge des ersten vom Kernel aufgerufenen Prozesses. Neuere Unix-Systeme haben in der Regel zusätzliche Kernel-Komponenten, die als "Prozesse" angezeigt werden. In diesem Fall ist PID 1 aktiv für den Init-Prozess reserviert, um die Konsistenz mit älteren Systemen zu gewährleisten.
Sie können den Beweis dafür sehen, wenn Sie sich die übergeordneten PIDs (PPIDs) von initund ansehen kthreadd:
kthreaddist der Kernel-Thread-Daemon. Alle kthreads werden von diesem Thread gegabelt. Sie können Beweise dafür sehen, wenn Sie sich andere Prozesse ansehen ps, die ihre PPID verwenden und sehen, wer sie ist:
Also, wenn PID 0 Swapper ist, was ist dann kswapd[0-9]*, welche auf meinem System hat PID 52 derzeit? Es scheint auch für das Paging verantwortlich zu sein.
Ruslan
1
@ Ruslan - Wenn Sie Fragen haben, stellen Sie sie bitte auf der Hauptseite. Kommentare sind nicht dazu gedacht. Verweisen Sie in Ihrer neuen Frage auf diese Frage.
slm
Nun, aber wenn wir einen neuen Prozess mit Fork Child-Prozess erstellen , bekommen wir PID 0 ?
Roottraveller
@roottraveller nicht unbedingt, was auch immer die PID der Eltern ist, wo die Gabelung aufgetreten ist, wird das sein, was auftaucht.
Es gibt zwei Tasks mit speziell definierten Prozess-IDs: swapper oder sched hat die Prozess-ID 0 und ist für das Paging verantwortlich. Sie sind eher Teil des Kernels als ein normaler Prozess im Benutzermodus.
Antworten:
Von der Wikipedia-Seite mit dem Titel: Prozess-ID :
Sie können den Beweis dafür sehen, wenn Sie sich die übergeordneten PIDs (PPIDs) von
init
und ansehenkthreadd
:kthreadd
ist der Kernel-Thread-Daemon. Alle kthreads werden von diesem Thread gegabelt. Sie können Beweise dafür sehen, wenn Sie sich andere Prozesse ansehenps
, die ihre PPID verwenden und sehen, wer sie ist:Beachten Sie, dass sie alle sind
2
.quelle
kswapd[0-9]*
, welche auf meinem System hat PID 52 derzeit? Es scheint auch für das Paging verantwortlich zu sein.Aus dem Prozessidentifikator- Wiki:
quelle
Der Prozess mit
pid 0
ist der Scheduler,quelle