On Wednesday 15 Aug 2012 18:54:24 Kevin Chadwick wrote:
Forking processes does not copy binaries.
Pulled out of silence for the very very last time.
It copies the parent which is much larger is what I meant. A real problem for embedded where memory fragmentation matters to the point that Google had code written just to handle it. The smaller the device, the greater the issue tends to be.
I don't think this is true. If I understand correctly, the code segment of the executable image is shared between forks, meaning that the binary size is irrelevant.
http://en.wikipedia.org/wiki/Fork_%28operating_system%29
Paul
Thanks for the link. I understand a little more. I'm not completely clear yet but it seems that it is not as significant as I thought for Android assuming the speed increase of parallelism is greater than the extra work in COW which may be on slow memory though Google have made a custom far more memory efficient init than SysV even, so I can't see it happening. http://www.netbsd.org/docs/kernel/vfork.html For deep/true embedded systems with only vfork and no COW it seems you are right and the simple explanation of vfork is actually inaccurate these days however the parent has to be blocked to utilise the parents memory but once the exec has happend which could be quick the parent is unblocked so maybe systemd could be made compatible with a kind of parallelism. I guess it would take a lot more work and absolutely required memory usage would have to be reduced significantly in any case. Lennart said systemd will only ever run on Linux and is only designed for a full fledged Fedora but is useful on embedded too. However I don't think he realised what level the Linux embedded world could expand to. -- _______________________________________________________________________ 'Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface' (Doug McIlroy) _______________________________________________________________________