在Linux中,運行一個程序時,首先由shell調用fork,然後在子進程中真正執行這個命令,首先是調用execve來加載可執行文件,然後將所需要的庫文件映射到進程的虛擬內存空間中,此時,進程執行上下文加載完成,開始執行代碼段。
Linux中程序是以可執行文件的形式存放在磁盤上,可執行文件既包括被執行函數的目標代碼,又包括被執行函數使用到的數據,它描述瞭如何初始化一個新的執行上下文。exec系列函數用來將可執行文件所描述的新上下文替代父進程的上下文。
參考資料:
1. 《Linux環境編程 從應用到內核》高峯。
2. 《深入理解Linux內核》
=============================================================================================
Linux應用程序、內核、驅動、後臺開發交流討論羣(745510310),感興趣的同學可以加羣討論、交流、資料查找等,前進的道路上,你不是一個人奧^_^。