No Linux, um novo processo é criado via fork() , o que torna um processo filho quase idêntico para o processo pai. Para criar um novo processo cujo programa é diferente do que o programa do processo original, o novo processo filho chama imediatamente execve() , que é basicamente o processo que diz "substitua meu programa atual por outro programa". .
brk(NULL) é o processo perguntando onde está memória de heap termina. Muitos programas chamam isso como sua primeira chamada de sistema (que será exibida logo após execve() ) porque eles usam malloc() imediatamente (ou uma chamada de biblioteca que usam usa malloc() internamente). Se o programa e suas chamadas de biblioteca não precisarem chamar malloc() por algum tempo, algo além de brk(NULL) será a segunda chamada de sistema.