>
...
> : You'd be surprised how much of mmap() can be implemented without an MMU,
> : though. Shared anonymous maps just work out to be a sort of malloc().
> : Indeed, the user-level malloc() and free() routines are implemented in
> : terms of mmap() and munmap(), which is, in turn, implemented in terms of
> : the kernel's kmalloc() system.
> 
> That's not true for the Vr4650.  It's base and bounds registers were
> based on Physical addresses, not virtual ones.  It didn't have an MMU
> to create virtual addresses.  You had a base, and you had bounds. And
> you had only one.  That's it.  You couldn't map in parts of ROM, parts
> of this and parts of that.

Yes, that's the same as uClinux.  One flat address space with no remapping.
A port to Vr4650 would be trivial.  Since it's a MIPS machine the hard work
is mostly done, the arch specific stuff changes very little (rip stuff out
mostly) from a full VM linux.

> 
> : Actually, no, exec() is trivial, though you do need to use vfork() to
> : create the a new sub-process, instead of fork().
> 
> On the Vr4650 can't create a new address space.  There is only one.
> To do the exec, you'd have to copy the entire binary into a contiguous 
> chunk of memory, relocate it (it would have to be PIC code) and adjust
> the base and bounds.  And lord help you then if the previous process
> needed to grow in size.

Exactly describes what makes uClinux different than Linux.

> 
> I guess I should have said that the Vr4650 doesn't have a TLB
> either...

Give uClinux a try for Vr4650, it will port easily.

> 
> Warner
> 

cheers,
Jeff / VE3DJF  [EMAIL PROTECTED]   http://www.cgocable.net/~jdionne

Got one, got one, everybody's got one.  Oompah oompah, stick it up your jumper.
Got one, got one, everybody's got one.  Oompah oompah, stick it up your jumper.

--
To unsubscribe from this list, send a message to [EMAIL PROTECTED]
with the command "unsubscribe linux-embedded" in the message body.
For more information, see <http://waste.org/mail/linux-embedded>.

Reply via email to