Rex Ballard wrote:
> A key difference between Windows and Linux is that Windows needs to do
> regular garbage collection that often causes the system to "hang" or
> pause for as long as 30 seconds. Linux on the other hand, uses a
> memory allocation scheme that eliminates most of the needs to do as
> much garbage collection, making much more effective uses of memory
> mapping.
What are you talking about? Do you have any sources for that?
> When Linus first started working on Linux, he was fascinated by the
> MMU on the 80386, and as a result, made it a key part of his kernel,
> it's also one of the key distinctions between UNIX and Linux. The
> result is that Linux can make optimal use of whatever memory is
> available, and at the same time, can make both large and small blocks
> of memory available almost instantly.
The Intel processors that Linux initially targeted have 4 protection ring
levels. Unix has run on a lot of hardware and only needs 2. Linux also
runs on some hardware that does not support 4 ring levels. Linux can also
run on hardware without an MMU. Some of the VM design in Linux has adapted
to work with other hardware (painfully at times). Linus Torvalds was not
intending to write a portable system when he started Linux.
I hope that future software eliminates the need for protection rings, TLB,
and virtual addressing. At the moment we use ring levels for address space
protection, and TLB for translating virtual addresses to physical addresses,
and the cost is enormous. The MIT Exokernel demonstrated how fast a system
can be without such protections. Microsoft's Singularity operating system I
think may be a good direction, and evolution of that, because it runs
primarily only safe code, and the patterns that could potentially cause
problems are checked.
http://research.microsoft.com/en-us/projects/singularity/
http://en.wikipedia.org/wiki/Singularity_(operating_system)
Perhaps a research OS along these lines for GNU would be more useful than
HURD running on top of Mach or L4. On the other hand though, it might
require drastic rewrites or a lot of runtime pointer checks to safely use a
lot of existing GNU software.
There have been other systems than those I mentioned. Wikipedia lists some
more here:
http://en.wikipedia.org/wiki/Single_address_space_operating_system
There was also an Unununium OS-like thing that was written in Python at one
point. It was somewhat interesting, but the project ended.
The open source Squeak Smalltalk implementation can also run without a host
OS on some hardware.
-George
|
|