Debugger entschlüsselt: Die Anatomie eines laufenden Programms
Dieser Artikel taucht tief in die Low-Level-Mechanik eines laufenden Programms ein. Am Beispiel einer Videospielkassette für ein NES wird erklärt, wie moderne Betriebssysteme die Programmausführung virtualisieren. Schlüsselkonzepte wie virtuelle Adressräume, Ausführungsthreads, ausführbare Images, Loader, Module und Prozesse werden detailliert beschrieben. Der Artikel erläutert, wie virtuelle Adressräume über Seitentabellen virtuelle Adressen auf physische Adressen abbilden, sodass mehrere Programme den physischen Speicher ohne gegenseitige Beeinträchtigung teilen können. Er behandelt auch Thread-Scheduling, ausführbare Image-Formate (PE und ELF), die Rolle des Loaders und das dynamische Laden/Entladen von Modulen. Schließlich fasst er das Konzept eines Prozesses zusammen, der Threads, Module und virtuelle Adressräume integriert.