Jeśli kompiluję program za pomocą gcc i próbuję go uruchomić z powłoki bash, jaka jest dokładna sekwencja kroków, po których następuje bash, aby go wykonać?
Wiem fork()
, execve()
, loader
, dynamic linker
(i inne rzeczy) są zaangażowane, ale może ktoś podać dokładną sekwencję kroków i trochę odpowiedniego odniesienia do czytania?
Edytować:
Z odpowiedzi wynika, że pytanie może sugerować wiele możliwości. Chcę zawęzić do prostej sprawy:
(test.c po prostu drukuje hello world)
$ gcc test.c -o test
$ ./test
Jakie będą kroki w powyższym przypadku ( ./test
), szczególnie związane z uruchomieniem programu bash w niektórych procesach potomnych, ładowaniem, łączeniem itp.?