From: ··········@tfeb.org
Subject: Re: Lisp compilation
Date: 
Message-ID: <cg2ufs$epq@odah37.prod.google.com>
Joost Kremers wrote:

>
> well, it's only an illusion that you *can* do this with other
> languages. any compiled program (with the possible exception of
assembly)
> needs a runtime library. what usually happens with C is that after
your
> source is compiled, the linker combines this output with (part of)
the
> runtime library. why do you think the basic "Hello World!" program in
C
> gives you such a large binary? ;-)

assembly is not different.  The crucial factor is whether the program
is standalone or not: can it run on the bare metal rather than relying
on other software.  The Unix kernel is such a program - although for
many Unices even the kernel is not quite standalone - it relies on
other programs to get it into memory and possibly to do initial
configuration and hardware detection.  For instance the Solaris kernel
relies on boostrap code to read the filesystem on the boot device to
load device drivers and filesystem modules (even after the kernel is
running). After this point OS Unix kernels are generally standalong
however.

Very few programs are standalone - any program which does I/O on a Unix
box for instance - whatever the language - will be using the support
services of the kernel.

--tim