
Linux has used demand-loading of executables and shared objects for ages. This means that if an executable or shared object has some pages that happen to never get called (IE for corner conditions that don't happen in the usual case) then they never get read from disk. The same applies for debugging data when the object isn't being debugged. Even if you have unused data on the same pages as executable data thus increasing the number of executable pages loaded into RAM it shouldn't be a big deal as RAM keeps getting bigger so that only a small portion of the multi-gigabytes of RAM in a low-end system is used for executable pages. Disks are getting bigger all the time. Nowadays it would be silly to consider purchasing a disk for a desktop system that's less than 2TB in size and laptops have had hundreds of GB for ages. Currently the biggest root filesystem on a system I run is 12G, that is 0.6% of the space on a desktop disk you might purchase (*) and less than 10% of the low end laptop disks that were on sale a couple of years ago. If I had to make that 24G for the root filesystem it wouldn't be a big deal. In terms of reducing binary size there has been some discussion about a port of Linux that uses 32bit instructions with 64bit data operations and registers on an AMD64 architecture. The idea is to save RAM and TLBs by not using 64/64 while still getting some performance benefits of a 64bit CPU. But there is little interest in this and it seems that Debian won't support it due to no- one caring. So the question is, why strip binaries? Back in the days when we ran servers with 100MB hard drives there was a real need to save space. When a 128Kb/64Kb ADSL link was considered fast there was a real need to reduce download time. But now that most of us have ADSL links that allow 100KB/s (800Kb/s) UPLOAD speeds and significantly faster download speeds. The thing about the debugging symbol table is that you never know when you will need it. Having it always there seems to have no cost that matters but it can provide significant benefits. So why ship a program or shared object that's stripped? (*) The system in question has a 160G disk I got from a junk pile. But as half the disk space is on my /junk filesystem and there is still unallocated space I think this supports my general point. -- My Main Blog http://etbe.coker.com.au/ My Documents Blog http://doc.coker.com.au/