Re: Would Linux still be Linux if it didn't have an MMU was Re: Linux Port to NS486? (without MMU)

Ray Lehtiniemi (rayl@crosskeys.com)
Thu, 17 Oct 1996 12:41:58 -0400 (EDT)


On Thu, 17 Oct 1996, David Dyck wrote:

> When I read the man page for mmap it states that
> "Linux 0.99.11 can't map files etc., and can't do
> other things documented here" -- I probably have
> old manpages. This leads me to think that early
> linux didn't have much support for mmap.
>
> Do these other OS's support mmap? If they can
> work around it, would Linux workarounds still be Linux?
>
> Many of the mmap calls that I've seen seem to be
> mostly to malloc and read files.
>
> If the kernel were to 'simulate' mmap for the simple
> cases - to allow some applications to work, would
> it still be "linux"?
>
> I grep'ed for mmap in the posix test cases
> and didn't find any test's for it, so I guess
> that POSIX doesn't require mmap either.
> ftp://tsx-11.mit.edu/pub/linux/sources/test_suites/NIST-PCTS.tar.gz
>

hi

i believe you are confusing MMU and mmap().

MMU is a memory management unit. it's a chunk of hardware that allows
you to access physical pages of RAM by various logical addresses,
depending on the mappings you load into the MMU page tables. you can
also protect various sections of RAM (readonly, no access, writeonly, etc)

mmap() is a system call that causes segments of a process's address space
to be backed by disk store. it works by protecting pages of memory, and
loading the section of the file into memory when you access the mmap()d
chunk, and writing it back to the file if you change it.

i can't see how you would 'simulate' mmap() without an MMU. you can
definitely write a unix that runs on systems without MMUs (unix was
around way before MMUs), but you'd lose a lot of the nice functionality
of 'modern' unices such as linux. (paging vs. process swapping, memory
protection, memory mapping)

---------------------------------------------------------------------------
Ray Lehtiniemi <rayl@crosskeys.com>