On Sun, Jun 16, 2013 at 10:00 AM, Andy Farkas <andyf at andyit.com.au>
wrote:
> On 16/06/13 20:30, Jeremy Chadwick wrote:
> > * Output from: strings /boot/kernel/kernel | egrep ^option Thanks.
>
> I stumbled across this one about a week ago:
>
> strings /boot/kernel/kernel | head -1
>
> and was wondering about the history of where it came from / what it means.
>
> I can see it was added to Makefile.i386 in September 1998 but the commit
> comment mentions the defunct alpha port and searching SVN for things in the
> Attic is a PITA.
>
The key in the log message is that the kernel became a dynamic executable.
In order to launch typical dynamic executable kernel would actually launch
dynamic linker specified in the INTERP program header in the ELF file. By
default it's /libexec/ld-elf.so.1. Dynamic linker in turn would load the
app and the shared libraries it requires.
Kernel is, obviously, not a typical executable. My guess is that the idea
behind changing dynamic linker to /red/herring was to make it obvious that
the file is not a typical app and that despite being an ELF executable, it
should not be executed as a regular program.
It's just a guess, though.
--Artem