Re: about "size" from binutils
Jörg Sommer wrote:
> Unter dynamischem Speicher habe ich bisher malloc und sowas
> verstanden?
Ich auch ;)
> Kann man im Binary gleich angeben, dass zu Beginn des
> Programms ein malloc vom System gemacht wird?
Nicht in dem Sinn.
> Oder was ist der bss?
Im bss-Segment werden uninitialisierte Variablen zusammengefasst. Da
sie uninitialisiert sind, muss im Executable kein Platz für deren
Werte beim Programmstart reserviert werden. Deshalb wird der volle
Speicher für das bss-Segment erst kurz vor dem Starten vom
Betriebssystem bereitgestellt (und sollte genullt werden, was aber
bei Linux nicht der Fall ist).
Im Gegensatz dazu sind im data-Segment initialisierte Variablen samt
Anfangswerten. Deshalb braucht es den vollen Platz im Executable
und wird vor dem Starten nur in den Speicher kopiert.
Dynamisch zugeteilter Speicher (malloc/new) ist auf dem "Heap", das
ist ein davon getrennter Speicherbereich, der nach dem Starten je
nach Bedarf angelegt wird.
Grüße,
Björn
--
BOFH excuse #367:
Webmasters kidnapped by evil cult.
Reply to: