《Linux核心分析》第七周 讀書筆記

2022-08-01 07:42:11 字數 837 閱讀 2907

【學習內容:鏈結需要的**&資料;鏈結機制;鏈結生成的目標檔案】

定義:鏈結是將各種資料和**收集起來成並組合成為乙個單一檔案的過程(這個檔案可以被拷貝到儲存器並且執行)

場合:作用:

編譯驅動程式代表使用者呼叫語言預處理器、編譯器、彙編器和聯結器

預處理器將.c檔案翻譯成ascii碼中間檔案.i;

編譯器將.i檔案翻譯成ascii碼組合語言檔案.s;

彙編器將.s檔案翻譯成可重定位目標檔案.o;

鏈結器程式將.o檔案以及一些必要的檔案組合起來建立乙個可執行目標檔案;

載入器拷貝可執行檔案**和資料到儲存器然後將控制轉移到程式頭

目標檔案有三種形式:

可重定位目標檔案

節頭部表:描述目標檔案的節

可執行目標檔案

共享目標檔案(特殊的可重定位目標檔案)

鏈結器的兩個主要任務

符號解析:將每個符號引用剛好和乙個符號定義聯絡起來

重定位:鏈結器通過把每個符號定義與乙個儲存器位置聯絡起來

對於那些和引用定義在相同模組的本地符號;編譯器只允許每個模組中每個本地符號有乙個定義

對於全域性符號的解析

重定位由兩個步驟組成

重定位節和符號定義:鏈結器將所有相同型別的節合併為同一型別的新的聚合節

重定位條目:

無論何時彙編器遇到對最終位置的目標引用,它就會生成乙個重定位條目,告訴鏈結器將目標檔案合併成可執行檔案的時候如何修改這個引用

優點:圖示

載入器將可執行目標檔案中的**和資料從磁碟拷貝到儲存器中,然後通過跳轉到程式的第一條指令來執行程式

儲存器映像

每個unix程式都要加乙個執行時儲存器映像

第七周筆記

二叉排序樹 1 二叉排序樹定義與描述 二叉排序樹又稱為二叉查詢樹,它是一種特殊的二叉樹。其定義為 二叉樹排序樹或者是一棵空樹,或者是具有如 下性質的二叉樹 1 若它的左子樹非空,則左子樹.上所有結點的值均小於根結點的值 2 若它的右子樹非空,則右子樹上所有結點的值均大於 或大於等於 根結點的值 3 ...

第七周讀書筆記

pb16060002 余子昊 我是乙隻it小小鳥 讀書筆記 part2 這週有考試,讀的書不是特別多,繼續讀了一點這本書。發現每次讀這本書都有新的感悟。本週讀的這些主人公有各種各樣的人生經歷,有從小就開始接觸程式設計,但卻忽視高考沒有考上理想大學的 有高考前只知道學習,上了大學對未來很迷茫的 是我本...

Linux入門 第七周

1 bin bash 2 read p input pid value pid 讀取pid程序號 3 pid exist ps aux awk grep w pid 定義乙個字串,通過grep命令,顯示當前查詢所有使用者所有程式並列印出來 4if pid exist then 如果pid不存在,然後...