>>8,9,10
I don't think you know what are you talking about. All modern OS give zeroed out pages, both for RAM and for disk (this is why for some filesystems creating a file and writing to position 10000000000 takes a very long time: they don't support sparse files and have to fill it with zeros up to that position). It would be a security hole if they didn't. Note that this has nothing to do with malloc()/free(). A malloc() can give you memory with garbage in it, but rest assured that it's garbage from your own process, not some random stuff that other processes left over.
In the likely case you still don't believe it, just check
http://download.microsoft.com/download/7/5/7/757a5c5c-1ad2-4774-9ffa-ec78052c42fb/scaling.doc (search for zero). As for Linux, see for example
http://jno.glas.net/data/prog_books/lin_kern_2.6/0596005652/understandlk-CHP-9-SECT-4.html ("Linux goes one step further in the spirit of demand paging. There is no need to assign a new page frame filled with zeros to the process right away, because we might as well give it an existing page called zero page , thus deferring further page frame allocation. The zero page is allocated statically during kernel initialization in the empty_zero_page variable (an array of 4,096 bytes filled with zeros).", and the following paragraphs).
What really scares me is how oblivious people is to this kind of stuff. It should be second nature, like memory isolation. How can anyone think it wasn't like that is beyond me.
IHBT