If you're interested in the future of mathematical publishing, you should read the article that Douglas Arnold and I wrote about the Elsevier boycott for the Notices of the American Mathematical Society.
My principal research projects are currently on sphere packing, energy minimization, and fast matrix multiplication.
A rather conspicuous claim from a man working for an OS vendor that doesn't have that call.
Personally I think fork is a nice enough call and actually an advantage to have.
Why do the same beautiful structures occur in so many different contexts?
There is clearly far more going on here than we currently understand.Take any one part of it in isolation, and it looks obviously silly; incautiously import ideas from another system and everything falls apart.But the whole thing, when put together and kept intact, thrums along beautifully and achieves world domination.Your "large amount of cached data" could have been stored in memory allocated with mmap(MAP_PRIVATE | MAP_ANON), instead of regular malloc(), and then it wouldn't show up in the child after fork(). Typically you have a server that runs some kind of service.There doesn't need to be any RPC involved, the data-cruncher can & should be a child process forked from the driver. It's a single process - it makes sharing data between requests very easy.I've always been interested in understanding simple physical systems, ranging from the dimer model to hard spheres and soft-matter systems. disorder, for example in phase transitions or the study of defects in ground states. My preference is for a mixture of concrete and abstract mathematics.I love concrete problems, especially those arising in science and technology, and I'm particularly happy when abstract mathematics turns out to be useful.It's only the ugly half-way compromises that have a problem.) Separate your driver program (which handles forking of new processes) from your data-crunching (which has the large anonymous shared mappings), and all is well.And do note that it's only the _anonymous shared_ mappings that are a problem; file-backed mappings don't require COW, and nor do private anonymous mappings.Fun fact: you can share memory between distinct processes, by any of several means. Which is but one of the many reasons you shouldn't build a gigantic monolithic application server in the first place.Also, I'm not suggesting spinning off a separate process to handle each request (the xinetd model); just splitting up the workload into separate processes doing different aspects of the job. The Unix system philosophy is like the Westminster system of government.