It's pretty sad that after the basic IO system calls, there is very little information regarding the rest. For this reason, I had a lot of trouble finding out about sys_brk(), and if anyone here knows fully about it, or has seen a site which will answer most/all of the questions I'm asking, please share.
1. What exactly is brk()? The only thing I really know is that it extends some breakpoint, but that's about it. So basically, what is the breakpoint, and how does brk() relate to it?
2. How does dynamic memory allocation work then? Does it reserve the specified bytes in the heap/stack? (Speaking of which, how do we even use the heap in assembly?) I found an example of brk() on github here
https://gist.github.com/nikAizuddin/f4132721126257ec4345 and it was pretty useful, but it still doesn't explain how exactly we can access the memory we have reserved. Does it require some other syscall?
3. Are there any other uses of brk()?