Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Mar 2016 15:23:28 -0800
From:      John Clark <jeclark2006@aim.com>
To:        Ian Lepore <ian@freebsd.org>
Cc:        Markus Hitter <mah@jump-ing.de>, freebsd-embedded@freebsd.org
Subject:   Re: ? about kernel size..
Message-ID:  <06F91A0C-648B-49B2-88C1-86FDD5D8B30F@aim.com>
In-Reply-To: <1457478889.1406.50.camel@freebsd.org>
References:  <CAPKZHbVyPji-bZwDzM77TN6qybjRcf%2BZe5r6WZmbG98LkhT-rg@mail.gmail.com> <CANCZdfriqr24Lh9ZuptaC0gEm6gAV6LN9XHcVAJtbyaBejEgNg@mail.gmail.com> <CAPKZHbW%2BG7WnSU__yeYBVPqs8MPmFm-5q_wM4sm9FxHhEEgPDg@mail.gmail.com> <1457473674.1406.46.camel@freebsd.org> <CAPKZHbX8BXKC_=8PPvtasqE%2BRj96_mPQkqdRt=hqU6fazxpPfA@mail.gmail.com> <56DF513E.9000405@jump-ing.de> <938133EE-CCEE-4F08-BB78-8227D9D0C6EC@aim.com> <1457478889.1406.50.camel@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

On Mar 8, 2016, at 3:14 PM, Ian Lepore <ian@freebsd.org> wrote:

> Jeez, really?  This thread is going to be hijacked to discuss the
> theoretical possiblity of running on 40 year old hardware?
>=20
> Unbelievable.
>=20
> =97 Ian

Some one trying to run something like FreeBSD on a non-MMU processor, is =
going =85 40 years back in time(technically the 286 is a 35 or so year =
old design=85)=85

Demand the project has at least a serviceable MMU=85

A few years ago, the boss got the big idea to use an 8051 based =
processor board for a system controller unit=85 ugh=85
I started my career using the 8048 and the =91graduated=92 to the 8051=85 =
then moved to a different company to work on =91real=92 machines=85 =
PDP-11s=85

In way the system controller was an not so pleasant walk down memory =
lane=85

John Clark.


>=20
> On Tue, 2016-03-08 at 15:09 -0800, John Clark via freebsd-embedded
> wrote:
>> Not to barge in to your discussion=85 but yes there were Unix =
variants
>> that worked on the 286. Xenix was one such OS. Xenix being
>> Microsoft=92s idea of avoiding the Unix name=85
>>=20
>> Originally Xenix ran on PDP-11, and was ported to other machines that
>> have long passed into the oblivion of technological Hell.
>>=20
>> As for =91preemetive multitasking=85 of course one can run a =
preemptive
>> scheduler on almost any CPU that has a clock interrupt.
>>=20
>> I wrote one for the 286 based on the kernel described in Douglas
>> Comer=92s =93Xinu=94 book.
>>=20
>> Products with that hack where produced for about 8 years=85 in the
>> early-mid-80s. I wrote it such that it would run in a DOS box and
>> allow for machine control of various robotic systems for industrial
>> inspection machines.
>>=20
>> In any case one can develop a multitasking kernel to run in a non-MMU
>> based system=85 just lends itself to crapping out on the least
>> provocation=85
>>=20
>> What an MMU provides is hardware =91address translation=92 such that =
the
>> application can run in an =91virtual absolute=92 addressing space,
>> have memory protection such that errant code can=92t clobber other
>> tasks or the kernel, and also given appropriate devices,
>> have =91swapping=92 for larger than real memory applications.
>>=20
>> The 286 =91segment=92 registers gave a bit of =91translation=92 =
capability in
>> that one could address relative to the segment registers, and so,
>> code and data could be place in available member and context switched
>> would update the segment registers.
>>=20
>> The segment registers were a crappy way of accessing memory if one
>> had long linear arrays of data to process=85 such as image =
processing=85
>> which happened to be the application of my work at the time=85
>>=20
>> And one could always implement an external MMU which was popular with
>> the Motorola M68K which was sort of the contemporary alternative to
>> the Intel x86 line.
>>=20
>> John Clark.
>>=20
>> On Mar 8, 2016, at 2:25 PM, Markus Hitter <mah@jump-ing.de> wrote:
>>=20
>>> Am 08.03.2016 um 22:56 schrieb Brad Walker:
>>>> But, are you saying that no engineering has been done on this yet
>>>> OR no
>>>> amount of engineering could make it work?
>>>=20
>>> If I recall correctly from some 25 years ago, memory address
>>> mapping
>>> (which is what a MMU does) is mandatory for preemtive multitasking.
>>> An
>>> i286 can't run a Unix-like OS either.
>>>=20
>>>=20
>>> In 2008 I tried to get FreeBSD down to its minimum, too. The
>>> success
>>> post is about all what's left today:
>>>=20
>>> https://lists.freebsd.org/pipermail/freebsd-embedded/2008-October/0
>>> 00604.html
>>>=20
>>> The task to get there is simple and straightforward, but time
>>> consuming:
>>> go step by step through the kernel configuration to disable
>>> whatever you
>>> can spare. Configure, build, try, repeat. If you need a small
>>> entire
>>> system, do the same for packages and every single file you copy
>>> into
>>> your system image.
>>>=20
>>>=20
>>> Markus
>>>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?06F91A0C-648B-49B2-88C1-86FDD5D8B30F>