We put some effort in making busybox avoid using more memory than absolutely needed, including NOMMU systems. In order to show where we are now and what can (should?) be ultimately attained, I built several versions of busybox with nearly identical config, all against static uclibc, and collected pmap $PID output for 'busybox sleep 10'. What is important here is that code section is shared among all running busybox processes (even some NOMMU systems are capable of reusing code pages for all running instances), while [heap] and [stack] areas are private per-process areas. Therefore making them smaller is good, even if it makes code a bit larger. Last printout shows similar data for small, statically linked application (linked against dietlibc). This is probably as small memory usage as we can ever achieve. Judge for yourself how close we (busybox + uclibc) are to that. busybox-1.2.2.1/busybox sleep 10: text data bss dec hex filename 734976 7056 230396 972428 ed68c /.share/usr/srcdevel/bbox/comparison/busybox-1.2.2.1/busybox 08048000 720K r-xp /.share/usr/srcdevel/bbox/comparison/busybox-1.2.2.1/busybox 080fe000 224K rwxp [heap] 77cf1000 84K rw-p [ stack ] 080fc000 8K rwxp /.share/usr/srcdevel/bbox/comparison/busybox-1.2.2.1/busybox ffffe000 4K r-xp [vdso] busybox-1.3.2/busybox sleep 10: text data bss dec hex filename 739764 6576 74300 820640 c85a0 /.share/usr/srcdevel/bbox/comparison/busybox-1.3.2/busybox 08048000 724K r-xp /.share/usr/srcdevel/bbox/comparison/busybox-1.3.2/busybox 77c6f000 88K rw-p [ stack ] 080ff000 72K rwxp [heap] 080fd000 8K rwxp /.share/usr/srcdevel/bbox/comparison/busybox-1.3.2/busybox ffffe000 4K r-xp [vdso] busybox-1.4.2/busybox sleep 10: text data bss dec hex filename 720472 3504 67484 791460 c13a4 /.share/usr/srcdevel/bbox/comparison/busybox-1.4.2/busybox 08048000 704K r-xp /.share/usr/srcdevel/bbox/comparison/busybox-1.4.2/busybox 77ea6000 84K rw-p [ stack ] 080f9000 68K rwxp [heap] 080f8000 4K rwxp /.share/usr/srcdevel/bbox/comparison/busybox-1.4.2/busybox ffffe000 4K r-xp [vdso] busybox-1.5.1/busybox sleep 10: text data bss dec hex filename 720288 2640 41820 764748 bab4c /.share/usr/srcdevel/bbox/comparison/busybox-1.5.1/busybox 08048000 704K r-xp /.share/usr/srcdevel/bbox/comparison/busybox-1.5.1/busybox 77cfb000 88K rw-p [ stack ] 080f9000 40K rwxp [heap] 080f8000 4K rwxp /.share/usr/srcdevel/bbox/comparison/busybox-1.5.1/busybox ffffe000 4K r-xp [vdso] busybox-svn/busybox sleep 10: text data bss dec hex filename 710112 1392 25276 736780 b3e0c /.share/usr/srcdevel/bbox/comparison/busybox-svn/busybox 08048000 696K r-xp /.share/usr/srcdevel/bbox/comparison/busybox-svn/busybox 77eb1000 88K rw-p [ stack ] 080f7000 24K rwxp [heap] 080f6000 4K rwxp /.share/usr/srcdevel/bbox/comparison/busybox-svn/busybox ffffe000 4K r-xp [vdso] A small app (multilog) built against dietlibc: text data bss dec hex filename 14029 172 4560 18761 4949 /app/daemontools-0.76/bin/multilog 77c3b000 88K rwxp [ stack ] 08048000 16K r-xp /app/daemontools-0.76/bin/multilog 0804d000 4K rwxp [heap] 0804c000 4K rwxp /app/daemontools-0.76/bin/multilog ffffe000 4K r-xp [vdso] Script used for generation of the above output: #!/bin/sh for f in */busybox; do test -x $f || continue echo "$f sleep 10:" $f sleep 10 & pid=$! sleep 1 size `pwd`/$f pmap $pid | env - grep "^[0-9a-f][0-9a-f]* " | sort -r -t " " -k2,999 done echo "A small app (multilog) built against dietlibc:" pid=871 size /app/daemontools-0.76/bin/multilog pmap $pid | env - grep "^[0-9a-f][0-9a-f]* " | sort -r -t " " -k2,999