[erlang-questions] Erlang VM: how clean is our memory?
Thu Apr 28 11:07:19 CEST 2011
I think a good starting point is to meditate over this page:
It seems to me that it would be _possible_ (with some work) to make use of the +Mym flag, substituting another malloc library for libc. In the old days, with non-SMP Erlang, this was entirely doable, and we played around with different allocators in the AXD 301 project, in order to see which one gave the least fragmentation over time.
The whole memory management subsystem in BEAM has become a *lot* more sophisticated since then, but it is designed to be quite configurable.
For less hand-wavy answers, I refer to the actual experts on the subject. :)
On 28 Apr 2011, at 10:46, Alex Arnon wrote:
> Hi All,
> We've recently been discussing the security of OS and VM stacks here, and several questions came up with regards to the Erlang VM. Specifically, the values of "new" and "old" memory.
> As an example, take the OpenBSD Unix-like OS. These guys are fanatics for security, and take various steps to ensure that the system is as unbreakable as possible, and in the event of breakage - to make life hard (if not impossible) for the intruder.
> This includes:
> - Randomization of integer handles, e.g. accepted socket ports.
> - Randomization of memory mapping location, e.g. DLLs (SO) will be loaded in random locations in memory.
> - Newly mapped memory pages are always zeroed before attachment to a process's virtual space.
> - Swap can be encrypted, or zeroed, on the fly.
> - The memory allocator also zeroes out freed space.
> In the context of the Erlang BEAM VM, we're interested in the contents of memory. What happens, for instance, when:
> - A process is garbage collected.
> - A process is terminated.
> Are the memory locations that have been "cleaned", zeroed out? Is it is, is it possible to control it?
> erlang-questions mailing list
Ulf Wiger, CTO, Erlang Solutions, Ltd.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions