Date: Mon, 1 Feb 1999 02:08:10 +0000 (GMT) From: Andrew Gordon <arg@arg1.demon.co.uk> To: Warner Losh <imp@village.org> Cc: small@FreeBSD.ORG Subject: Re: compressed executables in low memory environements Message-ID: <Pine.BSF.3.96.990131175231.10991A-100000@server.arg.sj.co.uk> In-Reply-To: <199901300852.BAA75275@harmony.village.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 30 Jan 1999, Warner Losh wrote: > > Has any thought (or work) been given to being able to run compressed > executables basically in place? Right now the gzip device in FreeBSD > does almost this, but requires the entire program to be decompressed > before running. What I had in mind would be something that would use > fixed length blocks (not optimal for compression, but not bad either) > so that they could be "paged" into uncompress memory easily? Other systems have done this, one example being Acorn RiscIX (4.3BSD on the early ARM processors). The scheme there was to compress each page (ie. hardware MMU page) of the file separately, with the expectation that the compressed version would fit in fewer filesystem blocks than the original. Hence a 'squeezed' executable would have exactly the same file length as the original, but its allocation of disc blocks would be 'sparse'. A 'squeezed' executable was distinguished from a normal one by having a different magic number in the a.out header. This worked particularly well on the hardware in question due to a number of factors: - The hardware MMU page size was an unusually large 32Kbyte. - Discs were small, hence small filesystem block sizes, so there was a good chance of saving one or more filesystem blocks when compressing the 32K chunks. - The machines had a fast (for its day) CPU coupled to a slow I/O system, so the overhead of decompressing the data was comparable to that of bringing in an extra disc block - possibly even a performance gain. - The disc supplied with the base model machine would not hold the full OS distribution unless most of the executables were squeezed! To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-small" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.990131175231.10991A-100000>