日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

第七周linux内核分析

發布時間:2023/12/19 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第七周linux内核分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

可執行程序的裝載


作者 黎靜+ 原創作品轉載請注明出處 + 《Linux內核分析》MOOC課程http://mooc.study.163.com/course/USTC-1000029000

可執行程序是怎么來的

目標文件的格式ELF

?

靜態鏈接的ELF可執行文件和進程的地址空間

  • 程序的入口 :Entry point address:0x8048300

  • 一般靜態鏈接會將所有代碼放在一個代碼段

  • 動態鏈接的進程會有多個代碼段

裝載可執行程序之前的工作

  • 可執行程序的執行環境

shell命令行、main函數的參數與execve的參數 Shell會調用execve將命令行參數和環境參數傳遞給可執行程序的main函數,先函數調用參數傳遞,再系統調用參數傳遞。

  • execve和fork都是特殊一點的系統調用:一般的都是陷入到內核態再返回到用戶態。 fork父進程和一般進程調度一樣,子進程返回到一個特定的點retfromfork,子進程是從retfromfork開始執行然后返回到用戶態;

  • 一般是地址空間為0x8048000或0x8048300;

  • execve特殊:執行到可執行程序--陷入內核--構造新的可執行文件--覆蓋掉原可執行程序--返回到新的可執行程序,作為起點(也就是main函數) ,需要構造他的執行環境;

  • 靜態鏈接:elfentry指向可執行文件的頭部,一般是main函數;2. 動態鏈接:elfentry指向ld的起點

可執行程序測裝載

淺析動態鏈接的可執行程序的裝載

(1)可以關注ELF格式中的interp和dynamic。

(2)動態鏈接庫的裝載過程是一個圖的遍歷。

(3)裝載和連接之后ld將CPU的控制權交給可執行程序。

轉載于:https://www.cnblogs.com/heiguirenxi/p/5366146.html

總結

以上是生活随笔為你收集整理的第七周linux内核分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。