版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、內(nèi)核匯編1linux源代碼中匯編語言部分總是有.previous、.section、.long,這是一個(gè)ELF段堆棧操作命令。其他的段堆棧操作命令還有.section、.subsection、.pushsection、.popsection,本命令交換當(dāng)前段(及其子段)和最近訪問過的段(及其子段)。多個(gè)連續(xù)的.previous命令將使當(dāng)前位置兩個(gè)段(及其子段)之間反復(fù)切換。用段堆棧的術(shù)語來說,本命令使當(dāng)前段和堆頂段交換位置。我的理解:s
2、ection是elf文件中的一個(gè)節(jié),ELF文件中代碼、連接信息和注釋是以節(jié)(section)為單位存放的,并由一個(gè)節(jié)頭表(sectionheader)來控制組織。節(jié)頭表可以看作是一個(gè)ELF32_Shdr結(jié)構(gòu)的數(shù)組,其中每一項(xiàng)都對應(yīng)文件中的一個(gè)節(jié)。程序運(yùn)行讀入內(nèi)存時(shí),是以程序段(programsegment)為單位讀入的。程序段的內(nèi)容由若干節(jié)(section)組成,節(jié)的內(nèi)容組合在一起連成一片構(gòu)成程序段的內(nèi)容。所以.section是給gcc
3、或者ld等工具用來生產(chǎn)可執(zhí)行文件或者共享庫或者重定向文件用的。previous表示恢復(fù)到當(dāng)前.section定義之前的那個(gè)段作為當(dāng)前段。也就是說這個(gè)previous與它前面的那個(gè)section一般成對出現(xiàn)..long在哪里一個(gè)elf文件(例如動(dòng)態(tài)庫)一般來說在文本段有以下幾個(gè)section:.hash.dynsym.dynstr.gnu.version.gnu.version_d.gnu.version_r.rel.data.rel.g
4、ot.rel.plt.init.plt.text.fini.rodata數(shù)據(jù)段包括:.data.eh_frame.cts.dts.got.dynamic.bss:其他的還有:.comment.note.shstrtab.symtab.strtab等等[Col]內(nèi)核匯編3004行:將size4個(gè)4字節(jié)從from復(fù)制到to。為了提高速度,這里使用的是movsl,所以對size也要處理一下。005行:將size.section__ex_tab
5、le“a“將這兩個(gè).section和.previous中間的代碼匯編到各自定義的段中,然后跳回去,將這之后的的代碼匯編到.text段中,也就是自定義段之前的段。.section和.previous必須配套使用。(2)例子中__ex_table異常表的安排在用戶空間是不會(huì)得到執(zhí)行的,它只在內(nèi)核中有效。(3)將.fixup段和.text段獨(dú)立開來的目的是為了提高CPU流水線的利用率。熟悉體系結(jié)構(gòu)的讀者應(yīng)該知道,當(dāng)前的CPU引入了流水線技術(shù)來
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)核修改
- 內(nèi)核基礎(chǔ)
- linux內(nèi)核
- linux0.11內(nèi)核研究與內(nèi)核編程實(shí)踐
- 內(nèi)核編程筆記(一、內(nèi)核字符串處理)
- 內(nèi)核同步方法
- 去除內(nèi)核只讀
- linux4內(nèi)核升級到6內(nèi)核簡單過程
- linux內(nèi)核(kemel)版本
- 內(nèi)核路由模塊分析
- 內(nèi)核移植簡介
- 內(nèi)核編輯升級(1)
- 內(nèi)核網(wǎng)絡(luò)優(yōu)化
- 內(nèi)核中c++編程
- 內(nèi)核模塊的加載
- 內(nèi)核搶占機(jī)制及驅(qū)動(dòng)
- 平板電腦arm內(nèi)核說明
- 瀏覽器內(nèi)核介紹
- 第3章 內(nèi)核結(jié)構(gòu)
- linux內(nèi)核源代碼漫游
評論
0/150
提交評論