Wie würde ein Diagramm für (ls) aussehen?

Wie würde ein Diagramm für (ls) aussehen?

Dies ist ein Diagramm, das zeigt, was passiert, nachdem man die Bash aufgerufen lsund ausgeführt hat: Bildbeschreibung hier eingeben

Der erste Teil zeigt die Situation vor lsder Ausführung.Schlagist ein Kindprozess des Terminalemulatorsxtermund sie haben die gleiche Aura, die gleiche Umgebung um sich herum. DiexxMarkierungen zeigen an, dass beideXtermUndSchlag, da Vater- und Sohnprozesse den identischen Satz an Umgebungsvariablen besitzen.

Der zweite Teil zeigt, was passiert, nachdem man einen neuen Prozess, nämlich ls, gestartet hat.

  1. Bash erzeugt einen Kindprozess, der eine exakte Kopie von sich selbst ist, deshalb habe ich ihnBash_c(Kurzform für Bash_copy).
  2. Dann,Bash_cwird durch das ls-Verfahren ersetzt.

Ich denke, dieses Diagramm ist unkompliziert, selbsterklärend, intuitiv und eindeutig.

Ich habe jedoch kein Diagramm für gezeichnet (ls), weil ich nicht weiß, wie es aussieht. Mir fallen ein paar verschiedene Szenarien ein, wie es aussehen könnte, aber hier beginnt der Fragenteil: Wie würde ein Diagramm für (ls)aussehen? Bitte zeichnen und kommentieren.

Antwort1

Die Prozesshierarchie für (ls)ist die gleiche wie für ls, d. h. → bash → ls, aber wenn Sie eine Liste von Befehlen in die Klammern setzen: (ls; ls), dann startet bash eine Subshell und führt die Befehle in dieser Subshell aus. Die resultierende Prozesshierarchie sieht folgendermaßen aus: → bash → bash → ls(die beiden ls-Prozesse werden nacheinander ausgeführt).

Sie können dies visualisieren, indem Sie cat ohne Argumente anstelle von ls: verwenden . Der erste Cat-Prozess wartet auf Eingaben und gibt Ihnen die Möglichkeit, zu sehen, was mit oder in einem anderen Terminal (cat; cat)passiert .pstreetop

verwandte Informationen