Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 24 Jun 2013 16:34:49 -0700
From:      Artem Belevich <art@freebsd.org>
To:        Andy Farkas <andyf@andyit.com.au>
Cc:        jdc@koitsu.org, freebsd-stable <freebsd-stable@freebsd.org>
Subject:   Re: FreeBSD history
Message-ID:  <CAFqOu6iX2LtEGA20FCrv%2BbWsqS%2BsNhijqLXdURpXzsifQDWPcA@mail.gmail.com>
In-Reply-To: <51BDEF40.4060001@andyit.com.au>
References:  <51BDEF40.4060001@andyit.com.au>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jun 16, 2013 at 10:00 AM, Andy Farkas <andyf@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFqOu6iX2LtEGA20FCrv%2BbWsqS%2BsNhijqLXdURpXzsifQDWPcA>