kriegaex schrieb:
Daran, daß inetd zur Busybox gehört, hatte ich nicht gedacht. Dann nehmen wir den auch.
Noch ein Hinweis zum
inetd der Busybox bzw. zur Busybox allgemein.
Hier ein
size des Moduls:
Code:
> size source/ref-8mb_26/busybox-1.4.1/networking/inetd.o
text data bss dec hex filename
12924 188 1348 14460 387c source/ref-8mb_26/busybox-1.4.1/networking/inetd.o
Mir ist gerade aufgefallen, daß
BSS 1348 Bytes hat, davon 1024 für eine Variable
char line[1024] für das Einlesen einer Zeile. Das wirkt sich zwar nicht auf die Größe im Dateisystem aus, bedeutet aber, daß jeder einzelne Prozeß, der Busybox ausführt, 1348 Bytes extra belegt, und zwar unnütz, wenn er nicht gerade
inetd ausführt. Es wäre sinnvoll, das Programm so zu ändern, daß zumindest diese Variable nicht so viel Platz belegt, wenn sie nicht verwendet wird. Also entweder den Platz am Stack belegen oder mit
malloc beim Aufruf von
inetd.
Eine elegantere Lösung wäre, alle globalen Variablen eines Busybox Applets in eine eigene Struktur zu packen und diese nur zu belegen, wenn das entsprechende Applet aufgerufen wird. Noch schöner wäre es, wenn man den Linker dazu bewegen könnte, den Platz für die
BSS-Segmente aller Applets übereinander zu legen, da diese ja nicht gleichzeitig verwendet werden