>
...
> : 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>.