> Second, I wonder if it would make sense to jump straight to using mmap() instead of the classic brk()/sbrk().
Yes, it will. brk/sbrk are terrible ways to allocate anything but more stack. Use mmap instead, both for more control over the layout in memory, and for more portability.