People not following development too closely may not be aware of it,
but we've had a lot of fun with amd64 recently.

Specifically, Ariane committed a new vmmap implementation that tends to
actually use the 64 bits address space, in userland.  She even has some
more nasty diff that does its best to put allocations far apart in that
address space.

Not surprisingly, a lot of software that claims to be 64 bits-ready isn't.
This touches all web navigators, most jit engines, and probably lots more
of software (our ports tree version of gnu-grep, for instance).

How comes nobody in other OSes noticed ? Well, people probably did, and 
tweaked their allocators to "work", by using preferably the low address space,
and having addresses that increase slowly, so that a lot of pointers are below
4GB, and a lot of pointer diffs are under 4GB.

This is yet another example of the patheticness that is modern software
development. Instead of going headfront and fixing the actual problems,
most systems cope out and just sweep the problem under the carpet, hoping
no-one will notice.

So, a lot of developers are hard at work figuring the problems, getting the
word upstream.

In case you're wondering about the stakes, well:
1/ this software will break elsewhere eventually. It's just a question of
processing enough data to break thru the 32 bits barrier consistenly.
2/ 64 bits is good for security. When you use the full address range and
randomness, exploiting heap buffer overflows becomes much harder.


Disclaimer: opinion and message my own, Theo, Ariane, Naddy, Robert will
probably chime in, and correct stupid things I've said.

Reply via email to