I'm working on a process loader for a Linux platform in C++; it's just a recreational project. Basically, I would like to load all the sections of an executable into memory manually and then execute it.

I asked a related but more specific question [here](https://stackoverflow.com/questions/11723758/simple-process-loader-memory-mapping) about a week ago. However, after doing more reading, I realized that memory mapping will be irrelevant until I learn how to actually create the process. So my question is, is there a way to create a "blank" new process on Linux with its own virtual address space (which I will be able to access to load in the code and data)?

Even general resources on process loader development would be useful, since I have yet to find any.