Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 13 Jun 1998 20:50:10 -0400
From:      "Duncan, John" <jddst19@srg.psych.pitt.edu>
To:        "'Mike Smith'" <mike@smith.net.au>, "'freebsd-small@freebsd.org'" <freebsd-small@FreeBSD.ORG>
Subject:   RE: FreeBSD for PalmPilot/Palm III 
Message-ID:  <B57B47656446D111BDCE0060B01A8CAE05D12A@srg.psych.pitt.edu>

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


> -----Original Message-----
> From:	Mike Smith [SMTP:mike@smith.net.au]
> Sent:	Saturday, June 13, 1998 7:05 PM
> To:	Duncan, John
> Subject:	Re: FreeBSD for PalmPilot/Palm III 
> 
> I presume this was meant to be a reply...
> 
> > > The version of "Linux" that runs on the Pilot has no VM.  Unlike
> > > Linux, 
> > > where the VM is still more or less an afterthought, FreeBSD lives
> and 
> > > breathes through the VM system.
> > > 
> > > Motorola's Dragonball (the CPU in the Pilot) has no PMMU, so no
> VM.
> > > 
> > > [-- ]  Yes, it has no PMMU. It does have support for segmented
> memory.
> > > The Macintosh used segmented memory extensively. What is lacking
> on
> > > the Dragonball is memory protection hardware. What is notable
> about
> > > segmented memory is that it is possible to do the protection in
> > > software.
> > > (OS2 1.0) This is not desirable with paging.
> 
> It's not a question of memory protection, but rather demand-related
> activities, and the ability for one piece of physical memory to appear
> in several locations in a disjoint fashion.  You can't do this
> equivalen
> tly with segmentation.
> 
> [-- ]  Demand-segmentation models have been around at least as long
> as demand-paging models. Segmentation, though, views memory with
> larger chunks and different attributes. This means that the memory
> model
> doesn't translate identically from a paged system to a segmented
> system,
> but it doesn't rule them out... Segmented systems can, in fact, share
> memory with differing addresses. This is especially possible when
> there
> is a large address space and very little physical memory.
> 
> > > There is little reason why VM can't be done with segmentation.
> There
> > > is
> > > also little reason why VM is entirely necessary in a machine with
> no
> > > swap.
> 
> Here you make it clear that you didn't grasp the importance if what I 
> said above - FreeBSD lives and breathes through the VM system.  VM is 
> not something "just for swap"; it's critical for almost everything 
> involving communications between the kernel and userspace, not to 
> mention interprocess communications and the filesystem.
> 
> [-- ]  Why do you have to attack my knowledge of computer science?
> Most
> operating systems require their memory systems; and some require
> features
> in their memory systems to be available. I wouldn't disagree with
> anyone who
> insisted that FreeBSD is an advanced operating system.
> 
> VM is, essentially, a product of a memory model that allows
> non-existant
> addresses to function. This is usually for swap, but it also has other
> purposes.
> One can have a paged or a segmented address space that provides all of
> the features of protected memory; and the protection does not have to
> occur
> in hardware. This just makes it faster. VM is not shared memory, it is
> not
> protected memory. VM is virtual memory. We look at a virtual memory
> model
> as one that provides protection mechanisms and uses them in such a way
> that memory does not have to be in the same place. It is possible, and
> feasible,
> to segment memory such that one can reference memory he does not
> own, and such that the operating system can move memory where it wants
> it. Certain features are interesting to embedded systems. Certain
> others are
> not. In a slow machine with never more than one user, why would it be
> desirable
> to provide a full-featured memory model? It wouldn't. To provide a
> compatible
> one would be a good move. 
> 
> If code requires certain memory structures to be available, then it is
> probably
> bad code, or platform-specific code. How could a program be a good one
> if, 
> for example, it required 4k pages? What would happen if someone were
> to
> run the thing on a different machine? Writing too much code like that
> can only
> cripple an OS's utility on other platforms.
> 
> The major limitation to a segmented memory model is the loss of a flat
> address space. I don't think that most programs people intend to run
> on a little
> palm-pilot would beg for more than the avg. segment size anyway. If
> they do,
> then I'd worry about the programmers who wrote the code.
> 
> Even so, using demand-segmentation it is still possible to assign
> different-
> sized segments to a requestor. Provided that code does not rely on a
> pointer
> being in the same place after a realloc(), the code should work on
> either a
> paged or segmented model.
> 
> > > The resultant system cannot be called FreeBSD, but it can look
> very
> > > similar.
> > > Honestly, the core features of FreeBSD are the system calls and
> the 
> > > unix-like interface to everything. Many other things are
> > > afterthoughts; if not
> > > to FreeBSD, they are afterthoughts to 4.4Lite, 3.0BSD, or V7,
> > > somewhere
> > > along the line.
> 
> This puts the hypotheis that BSD has not changed fundamentally since 
> v7, which is a major error.
> 
> [-- ]  You failed to grasp my point. UN*X as it is now is one big
> afterthought. The system was created as a quick and dirty testbed
> for Dennis Ritchie's programs. Then it became a little operating
> system used internally on DEC machines at Bell Labs. Through
> modification after modification, the thing became the behemoth that
> it is now. Even though Linux's VM system is obviously an afterthought
> compared to Minix's lack of one, FreeBSD's VM is only an extension
> of BSD's VM which was an afterthought to Bell's lack thereof.
> 
> If you'd like a look at a system that was designed from the ground up
> to have advanced features like VM, IPC, etc, then look at Mach. Unix's
> fs and drivers are the afterthought to Mach's microkernel.
> 
> For an interesting experiment into the necessity of even VM on an
> operating system you should look at SPIN, which has VM included
> as an extension, and OSF's kernel interface as an extension as well.
> This doesn't mean that SPIN doesn't have a memory model, but the
> VM is included separately for a number of reasons.
> 
> If you seriously want to put an alternative operating system on a 
> Pilot, I would go looking at Minix, which is designed to work (and
> work 
> well) on small, non-VM systems.  It's now freely available for 
> downloading, and is not a bad place to start if you're porting for the
> 
> first time.
> 
> [-- ]  Perhaps, but why not a larger and more usable system? Minix is
> extremely limited. MachTen implemented 4.3BSD that ran on a 68k
> without
> memory hardware. What was so special about their system that couldn't
> be done with FreeBSD?
> 
> > > > We could also go into versions for WindowsCE machines. After
> all,
> > > who
> > > > really wants WindowsCE? It's junk. What could be really cool
> would
> > > be to
> > > > create a FreeBSD EEPROM for some of those CE machines and let
> people
> > > > replace it.
> > > 
> > > Most CE machines are too short-lifed and closed architecture-wise
> to
> > > be 
> > > worth porting to.  By the time you'd worked out how they were laid
> > > out, 
> > > the few of the model you had still in existence would be in the
> bottom
> > > 
> > > of 10-year-old kids' sock drawers. 8(
> > > 
> > > [-- ]  Yes. But there must be a kernel of WCE machines with nicer
> > > vendors. Why not look into it?
> 
> There must?  What makes you think this?  And what makes you think that
> 
> I haven't already looked into it?
> 
> The core issue is that there is no such thing as "a WinCE machine".
> WinCE is relatively portable, and each vendor buys a source license
> and
> then ports it to their own platform.  In many cases, the production
> version of this platform lacks the basic support for new OS
> development.
> 
> > > OTOH, for less than twice the cost of a Palm-III you can buy an 
> > > easily-overclockable Toshiba Libretto 50, which runs FreeBSD, has
> a 
> > > 640x480 colour screen, a keyboard and takes honkin' big disks.
> > > 
> > > [-- ]  Doesn't fit into my shirt pocket. I tried.:) 
> 
> Put it in your jacket.  You won't fit a Palm III and a Ricochet in
> your 
> pocket either, so the point is somewhat moot.  8)
> 
> -John

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



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