1.核心模組的檔案格式elf
elf分為三部分:頭部elf header ,中間section, 尾部section header table
(1).elf header部分 大小52位元組
e_type 表明檔案型別,驅動值為1
e_shoff 表明section header table部分在檔案中的偏移量
e_shentsize 表明section header table部分中每個entry的大小
e_shnum 表明entry的數量
e_shstrndx
(2).section部分
elf檔案主體,位於檔案檢視中間部分的乙個連續區域。但模組被核心載入時,會根據各自屬性被重新分配到新的記憶體區域
(3) section header table部分
e_entry
entry point address: 0x8048320
入口位址,規定elf程式的入口虛擬位址,作業系統在載入完成該程式後,從這個位址開始執行程序的指令。可重定位檔案一般沒有入口位址,則這個值為0
對這個欄位的理解不知道對不對,以後自己回頭驗證下。這個位址是個虛擬位址,所以不同模組可以有相同的address,在執行的時候他會對映到相同的虛擬位址上,但從虛擬位址對映到實體地址的時候,會由於分頁機制,把他們對映到不同的實體地址上(有可能相同)。所以不同的模組,這個位址相同也是沒關係的
第一章 Linux核心簡介
unix 中所有的東西都被當作檔案對待。unix 核心和相關的系統工具軟體是用 c 語言編寫而成。unix 程序建立非常迅速,並且有乙個非常獨特的 fork 系統呼叫。linux 是非商業化的產品,它使用 gnu 的 general public license gpl 第二版本作為限制條款。執行於...
第一章 Linux核心簡介
1.linux是類unix系統,但他不是unix。儘管linux借鑑了unix的許多設計並且實現了unix的api 由posix標準和其他single unix specification定義的 但linux沒有像其他unix變種那樣直接使用unix的原始碼。2.linux系統的基礎是核心 c庫 工...
python第一章筆記 第一章 基礎
參與除法的兩個數中有乙個數為浮點數,結果也為浮點數 如 1.0 2,1 2.0,1.0 2.0 python print 1.0 2 結果 0.5 print 1 2.0 結果 0.5 print 1.0 2.0 結果 0.5 整數 整數,計算結果的小數部分被截除,只保留整數部分 不會四捨五入 如 ...