Nếu tôi biên dịch một chương trình bằng gcc và cố gắng thực thi nó từ bash shell, trình tự chính xác của các bước tiếp theo là bash để thực thi nó là gì?
Tôi biết fork()
, execve()
, loader
, dynamic linker
(và những thứ khác) đều được tham gia, nhưng có thể một người nào đó đưa ra một chuỗi chính xác các bước và một số tài liệu tham khảo đọc phù hợp?
Biên tập:
Từ các câu trả lời, có vẻ như câu hỏi có thể ngụ ý nhiều khả năng. Tôi muốn thu hẹp vào một trường hợp đơn giản:
(test.c chỉ in hello world)
$ gcc test.c -o test
$ ./test
Điều gì sẽ là các bước trong trường hợp trên ( ./test
), cụ thể liên quan đến chương trình bắt đầu bash trong một số quy trình con, thực hiện tải, liên kết, v.v.?