Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Nov 1998 12:52:02 +0100
From:      Marius Bendiksen <Marius.Bendiksen@scancall.no>
To:        Robert Nordier <rnordier@nordier.com>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: FreeBSD on i386 memory model
Message-ID:  <3.0.5.32.19981117125202.00916bb0@mail.scancall.no>
In-Reply-To: <199811171111.NAA09173@ceia.nordier.com>
References:  <3.0.5.32.19981117103136.009058a0@mail.scancall.no>

next in thread | previous in thread | raw e-mail | index | archive | help
>As Marius says, it's mainly down to what the instructions point at,
>rather that the instructions themselves.  Though, that said, an

In fact, implementing multiple calling conventions would be possible
without too much work, I think. Changing the existing ones shouldn't be too
hard. I've not looked at the source code, though.

>interrupt rather than a far call is also just a more "natural" way to

I've not looked upon interrupts beyond hardware handling, but I seem to
recall call gates being preferrable for isolation reasons, but I'm not
sure, so don't flame me if I'm wrong ;)

>In fact, almost all initialization is done in the kernel.  Some basic
>(unavoidable) initialization takes place in the bootstrap (on the i386,
>getting into protected mode, enabling the A20 line, etc) but as little
>as possible.

Yeah. That's what I'd assume. The bootstrap initializes protected mode, and
basically gets the kernel ready to go, while the kernel does have
initialization code.

>There has been some discussion about moving more of the initialization
>into the bootstrap code, but I won't really agree that doing it in the
>kernel is "stupid".  Just as writing almost everything in C (rather
>than assembler) is part of the UNIX philosophy, convenience and
>maintainability are often more important than merely saving bytes.

That's a point. Doing it in the kernel only costs a few additional kb.
OTOH, moving it to the bootstrap would be yet another step in the process
of moving away from a monolithic kernel. IIRC, people expressed a desire to
do so some time ago.

>If you're interested in this stuff, you probably want to look at many
>of the files in src/sys/i386/i386, starting with locore.s (where the
>actual interaction with the bootstrap takes place).

In truth, I can't stand AT&T syntax, and I was merely attempting to clarify
this. If there is an ongoing effort towards moving things out of the
kernel, or changing the syscall interface, I'd be interested in having a
look at it, to see if it's anything I'd be able to help with.

Obtw; am I correct in assuming that moving to an interrupt-based syscall
interface makes linux-emulation easier?

---
Marius Bendiksen, IT-Trainee, ScanCall AS <marius@scancall.no>

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3.0.5.32.19981117125202.00916bb0>