freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

linux操作系統(tǒng)分析(參考版)

2025-07-20 15:48本頁面
  

【正文】 ?能分析源代碼并動態(tài)維護符號數(shù)據(jù)庫,能自動顯示有用的上下文信息。 virtualbox ?SourceInsight ?相關(guān)工具介紹: GNU Tools等 2022/8/14 xlanchen: Linux OS Analysis 53/152 VMware ?模擬 x86硬件平臺 ?可以在 Windows、 Linux等平臺上運行 ?VMWare模擬出來的硬件包括: ?主板、內(nèi)存、硬盤 (IDE和 SCSI)、 DVD/CDROM、軟驅(qū)、網(wǎng)卡、聲卡、串口、并口和 USB口。只能在對應(yīng)級別允許的范圍內(nèi)活動 ?舉例: intel x86 CPU有四種不同的執(zhí)行級別 03, Linux只使用了其中的 0級和 3級分別來表示內(nèi)核態(tài)和用戶態(tài) 2022/8/14 xlanchen: Linux OS Analysis 46/152 ?如何區(qū)分一段代碼是核心態(tài)還是用戶態(tài) ? cs寄存器的最低兩位表明了當前代碼的特權(quán)級 ? CPU每條指令的讀取都是通過 cs:eip這兩個寄存器: 其中 cs是代碼段選擇寄存器, eip是偏移量寄存器。 }。 l ong e s p。 i nt x c s 。 l ong or i g_e a x。 i nt xd s 。 l ong e bp。 l ong e s i 。 l ong e c x。 movl $0x1,0xfffffff4(%ebp) y=2。 movb $0x61,0xfffffff3(%ebp) int x,y,z。 pushl 0xfffffff8(%ebp) pushl 0xfffffff4(%ebp) pushl 0xfffffffc(%ebp) push $0x8048510 call 80482b0 printfplt … p2的返回值是如何返回給 main的? 調(diào)用者 堆棧 框架 esp ebp y的值 x的值 高地址 低地址 被調(diào)用者 堆棧 框架 ebp cs:eip esp ebp esp esp 2022/8/14 xlanchen: Linux OS Analysis 35/152 ebp 觀察 main中的局部變量 int main(void) { push %ebp mov %esp,%ebp sub $0x18,%esp … char c=39。 mov 0xc(%ebp),%eax add 0x8(%ebp),%eax } pop %ebp ret 建立框架 拆除框架 ebp esp ebp 調(diào)用者 堆棧 框架 esp ebp y x 高地址 低地址 2022/8/14 xlanchen: Linux OS Analysis 34/152 觀察 main函數(shù)是如何傳遞參數(shù)給 p2的 … z=p2(x,y)。T匯編語言中指令的操作數(shù)順序與 Intel相反 ?ATamp。陷阱門,系統(tǒng)門 調(diào)用 exec系統(tǒng)調(diào)用將 ls的可執(zhí)行文件裝入內(nèi)存 內(nèi)存管理模塊,進程的地址空間,分頁機制,文件系統(tǒng) 從系統(tǒng)調(diào)用返回 如何做到正確的返回? 堆棧的維護,寄存器的保存與恢復(fù) Shell和 ls都得以執(zhí)行 進程的調(diào)度,運行隊列等待隊列的維護 什么是 shell? 終端解釋程序 2022/8/14 xlanchen: Linux OS Analysis 24/152 一些基本但很重要的概念 ?堆棧 ?內(nèi)核態(tài) vs 用戶態(tài) ?虛擬內(nèi)存 2022/8/14 xlanchen: Linux OS Analysis 25/152 堆棧 ?堆棧是 C語言程序運行時必須的一個記錄調(diào)用路徑和參數(shù)的空間 ? 函數(shù)調(diào)用框架 ? 傳遞參數(shù) ? 保存返回地址 ? 提供局部變量空間 ? 等等 ? C語言編譯器對堆棧的使用有一套的規(guī)則 ?了解堆棧存在的目的和編譯器對堆棧使用的規(guī)則是理解操作系統(tǒng)一些關(guān)鍵性代碼的基礎(chǔ) ?以 x86體系結(jié)構(gòu)為例 2022/8/14 xlanchen: Linux OS Analysis 26/152 堆棧寄存器和堆棧操作 ?堆棧相關(guān)的寄存器 ?esp,堆棧指針( stack pointer) ?ebp,基址指針( base pointer) ?堆棧操作 ?push 棧頂?shù)刂窚p少 4個字節(jié)( 32位) ?pop 棧頂?shù)刂吩黾?4個字節(jié) ?ebp在 C語言中用作記錄當前函數(shù)調(diào)用基址 esp ebp 高地址 低地址 esp 2022/8/14 xlanchen: Linux OS Analysis 27/152 利用堆棧實現(xiàn)函數(shù)調(diào)用和返回 ?其他關(guān)鍵寄存器 ?cs : eip:總是指向下一條的指令地址 ?順序執(zhí)行:總是指向地址連續(xù)的下一條指令 ?跳轉(zhuǎn) /分支:執(zhí)行這樣的指令的時候, cs : eip的值會根據(jù)程序需要被修改 ?call:將當前 cs : eip的值壓入棧頂, cs : eip指向被調(diào)用函數(shù)的入口地址 ?ret:從棧頂彈出原來保存在這里的 cs : eip的值,放入 cs : eip中 ?發(fā)生中斷時??? ????? 2022/8/14 xlanchen: Linux OS Analysis 28/152 補充知識 ?ATamp。 ?內(nèi)核(進程管理,進程調(diào)度,進程間通訊機制,內(nèi)存管理,中斷異常處理,文件系統(tǒng), I/O系統(tǒng),網(wǎng)絡(luò)部分) ?其他程序(例如函數(shù)庫, shell程序等等) ?操作系統(tǒng)的目的 ?與硬件交互,管理所有的硬件資源 ?為用戶程序(應(yīng)用程序)提供一個良好的執(zhí)行環(huán)境 2022/8/14 xlanchen: Linux OS Analysis 22/152 一個典型的 Linux操作系統(tǒng)的結(jié)構(gòu) ( th e u s e r s ) S h e ll s a n d c o m m a n d s C o m p i ler s a n d i n te r p r e te r s S y s te m li b r a r ie s S y s te m c a ll i n ter f a c e t o t h e k e r n e l S
點擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1