El Goog
22.11.12, 00:00
Hallo,
ich lese gerade das Buch "Linux das umfassende Handbuch". Da dort auf dieses Forum verwiesen wird, hoffe ich mal, dass ich hier mit meiner Frage richtig bin.
Es geht um das Kapitel 5: "Prozesse, Tasks und Threads" und speziell um das Thema Stacks. http://openbook.galileocomputing.de/linux/linux_kap05_003.html#dodtp0276bdb0-9576-4677-a72e-2fafe62817f5
Ich versuche nun das Beispiel ("Hello World!"-Programm) nachzuvollziehen. Dazu habe ich mal eine kleine Paintgrafik angefügt (siehe Anhang). Meine Frage ist nun, ob der Stack etwa so aussieht wie in meiner Skizze?
Zuerst werden also die Daten aus der Funktion printf abgearbeitet und dann nach und nach zur main-Funktion bzw. dem Programmende zurückgesprungen.
Außerdem noch eine Frage zum gleichen Beispiel:
Dort steht bei "Aufruf von funktion1()", dass das Befehlsregister auf den Stack geschrieben wird. Das Befehlsregister kommt aber doch vom Prozessor. Das heißt der Prozessor hat bereits vom Programm einen Befehl erhalten und diesen in sein Befehlsregister aufgenommen. Wieso wird dieser Befehl jetzt wieder in einen (virtuellen) Speicherplatz abgelegt, statt ihn direkt zu verarbeiten?
Alles in allem ist das Kapitel über den Kernel ziemlich "harter Tobak" für mich. Ich frage mich, ob es zu diesem Thema nich eine einsteigerfreundlichere Lektüre gibt? Kann jemand ein gutes Buch/Internetlektüre empfehlen?
ich lese gerade das Buch "Linux das umfassende Handbuch". Da dort auf dieses Forum verwiesen wird, hoffe ich mal, dass ich hier mit meiner Frage richtig bin.
Es geht um das Kapitel 5: "Prozesse, Tasks und Threads" und speziell um das Thema Stacks. http://openbook.galileocomputing.de/linux/linux_kap05_003.html#dodtp0276bdb0-9576-4677-a72e-2fafe62817f5
Ich versuche nun das Beispiel ("Hello World!"-Programm) nachzuvollziehen. Dazu habe ich mal eine kleine Paintgrafik angefügt (siehe Anhang). Meine Frage ist nun, ob der Stack etwa so aussieht wie in meiner Skizze?
Zuerst werden also die Daten aus der Funktion printf abgearbeitet und dann nach und nach zur main-Funktion bzw. dem Programmende zurückgesprungen.
Außerdem noch eine Frage zum gleichen Beispiel:
Dort steht bei "Aufruf von funktion1()", dass das Befehlsregister auf den Stack geschrieben wird. Das Befehlsregister kommt aber doch vom Prozessor. Das heißt der Prozessor hat bereits vom Programm einen Befehl erhalten und diesen in sein Befehlsregister aufgenommen. Wieso wird dieser Befehl jetzt wieder in einen (virtuellen) Speicherplatz abgelegt, statt ihn direkt zu verarbeiten?
Alles in allem ist das Kapitel über den Kernel ziemlich "harter Tobak" für mich. Ich frage mich, ob es zu diesem Thema nich eine einsteigerfreundlichere Lektüre gibt? Kann jemand ein gutes Buch/Internetlektüre empfehlen?