《深入瞭解電腦系統》第七章讀書筆記

來源:互聯網
上載者:User

標籤:

《深入瞭解電腦系統》第七章讀書筆記第一部分:連結

連結定義:連結是將各種代碼和資料部分收集起來並組合成為一個單一檔案的過程,這個檔案可被載入(或被拷貝)到儲存並執行。

第二部分:目標檔案

目標檔案:目標檔案用以存放目標代碼和由編譯器或彙編器產生的相關資料的電腦檔案格式稱為目標檔案格式。

目標檔案格式有許多不同的種類。最初每種類型電腦都擁有自身獨特的格式,但隨著Unix和其他可移植作業系統的問世,人們定義了例如COFF和ELF這些格式,並在不同的系統上使用它們。通常,連結器的輸入和輸出使用相同的檔案格式,庫檔案和可執行檔格式也是一樣使用相同的格式。包含格式:可重定位目標檔案,可執行目標檔案,共用目標檔案。格式:處理目標檔案常用工具:

STRINGS,NM,SIZE,OBJDUMP等

第三部分:符號

符號與符號表

結構C版本:

typedef struct{
    int name;   //字串表中的位元組位移,指向符號的以NULL結尾的名字
    int value;  //符號的地址,對於可重定位的模組是距定義目標的節起始位置的位移。
    int size;   //目標大小(單位:位元組)
    char type:4,    //資料或函數
         binding:4; //本地LOCAL/全域GLOBAL
    char reserved;
    char section;   //到節頭部表的索引
}Elf_Symbol;

符號解析:

運用方式大致為:

1 判斷檔案類型

2 對應表找符號解析

3 檔案掃描,是否需要重定位(是否能解析)構建可執行檔

4 庫運用(一般是將庫放在命令列的結尾),如果各個庫的成員是相互獨立(也就是說沒有成員引用另一個成員定義的符號),那麼這些庫就可以按照任何順序放置在命令列的結尾處

重定位:

重定位就是把程式的邏輯地址空間變換成記憶體中的實際物理地址空間的過程,也就是說在裝入時對目標程式中指令和資料的修改過程。他是實現多道程式在記憶體中同時啟動並執行基礎。重定位有兩種,分別是動態重定位與靜態重定位。重定位是由作業系統安排的。在裝入程式前,系統會計算未使用的記憶體,然後將程式裝入,並記下開始地址。在執行有相對位址的指令時,會將所有的地址加個剛才記下的開始地址,就叫重定位。1、靜態重定位:即在程式裝入記憶體的過程中完成,是指在程式開始運行前,程式中的各個地址有關的項均已完成重定位,地址變換通常是在裝入時一次完成的,以後不再改變,故成為靜態重定位。2、動態重定位:它不是在程式裝入記憶體時完成的,而是CPU每次訪問記憶體時 由動態地址變換機構(硬體)自動進行把相對位址轉換為絕對位址。動態重定位需要軟體和硬體相互配合完成。將邏輯地址空間重定位到物理地址空間的時機有三種:1、程式編譯串連時。2、程式裝入記憶體時。3、程式執行時。 總結:第一個階段預先處理在正式的編譯階段之前進行。預先處理階段將根據已放置在檔案中的預先處理指令來修改源檔案的內容。#include指令就是一個預先處理指令,它把標頭檔的內容添加到.cpp檔案中還有其他許多預先處理指令,第二個是連結程式階段把所有對象檔案中的機器碼組合在一起,並解析它們之間的交叉引用。它還整合了對象模組所使用的庫函數的代碼。實際上有些連結是動態,即這些連結是在程式執行時建立的。連結程式靜態地建立函數之間的連結,即在程式執行之前建立組成程式的源檔案中所包含的函數連結。 

《深入瞭解電腦系統》第七章讀書筆記

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.