国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

頭歌操作系統(tǒng)-課堂練習(xí)3.2:進(jìn)程的創(chuàng)建

這篇具有很好參考價(jià)值的文章主要介紹了頭歌操作系統(tǒng)-課堂練習(xí)3.2:進(jìn)程的創(chuàng)建。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

第1關(guān):進(jìn)程創(chuàng)建前后TR寄存器值的分析

編程要求

根據(jù)相關(guān)知識(shí),回答問(wèn)題:(將答案填寫在/data/workspace/myshixun/第一關(guān).txt中)

  • 0 號(hào)進(jìn)程的 fork 系統(tǒng)調(diào)用(main.c:147)中的陷入指令的地址是多少?
  • 0 號(hào)進(jìn)程執(zhí)行 fork 系統(tǒng)調(diào)用之前,TR 寄存器的值為多少?
  • 0 號(hào)進(jìn)程剛執(zhí)行完 fork 系統(tǒng)調(diào)用時(shí),TR 寄存器的值為多少?

準(zhǔn)備階段

本實(shí)訓(xùn)需要設(shè)置內(nèi)核版本 1 為調(diào)試分析的對(duì)象,用 gdb 調(diào)試內(nèi)核,內(nèi)核版本 1 的壓縮文件存放在/data/workspace/myshixun/exp1中。


首先先解壓內(nèi)核,敲熟悉的老鐵已經(jīng)形成手指肌肉記憶,秒搞定,還不會(huì)的友友可以跟著來(lái)。

?1.打開(kāi)終端,分別輸入以下指令。

cp /data/workspace/myshixun/exp1/1.tgz ~/os/
cd ~/os/linux-0.11-lab
tar -zxvf ../1.tgz 1
rm -rf cur
ln -s 1 cur
cd 1/linux 
make
cd ../..
./rungdb

2.環(huán)境配置完了。打開(kāi)另一個(gè)終端,輸入以下指令。前面一個(gè)不要關(guān)閉。

cd ~/os/linux-0.11-lab
./mygdb

3.接著我們會(huì)進(jìn)入到GDB DEBUGING,如圖所示。

頭歌操作系統(tǒng)-課堂練習(xí)3.2:進(jìn)程的創(chuàng)建

?輸入以下指令:

(gdb)b 145
(gdb)c
(gdb)n
(gdb)x/5i $eip
(gdb)si
(gdb)x/5i $eip
(gdb)quit
y
./rundbg
<bochs>b 0x68e8
<bochs>c
<bochs>sreg
<bochs>n
<bochs>sreg

頭歌操作系統(tǒng)-課堂練習(xí)3.2:進(jìn)程的創(chuàng)建

頭歌操作系統(tǒng)-課堂練習(xí)3.2:進(jìn)程的創(chuàng)建


第2關(guān):1 號(hào)進(jìn)程創(chuàng)建前后的GDT和PCB分析

編程要求

根據(jù)相關(guān)知識(shí),回答問(wèn)題:(將答案填寫在/data/workspace/myshixun/第二關(guān).txt中)
注:操作過(guò)程中只能出現(xiàn)一個(gè)0x0000690a。

  • 0 號(hào)進(jìn)程的進(jìn)程控制塊的起始地址是多少?0 號(hào)進(jìn)程的 TSS 的地址是多少?
  • 在 1 號(hào)進(jìn)程創(chuàng)建前,task 數(shù)組的前 2 項(xiàng)是多少?GDT 的 4~7 號(hào)描述符(64位)是多少?其中存儲(chǔ)的段起始地址分別是多少?
  • 在 1 號(hào)進(jìn)程創(chuàng)建后,task 數(shù)組的前 2 項(xiàng)是多少?GDT 的 4~7 號(hào)描述符(64位)是多少?其中存儲(chǔ)的段起始地址分別是多少?
  • 1 號(hào)進(jìn)程的進(jìn)程控制塊的起始地址是多少?1 號(hào)進(jìn)程的 TSS 的地址是多少?1 號(hào)進(jìn)程執(zhí)行的第一條語(yǔ)句的地址是多少?
  • 1 號(hào)進(jìn)程的核心棧棧底的位置是多少?該位置距離 1 號(hào)進(jìn)程的進(jìn)程控制塊的起始位置有多遠(yuǎn)(字節(jié)數(shù))?

準(zhǔn)備階段

本實(shí)訓(xùn)需要設(shè)置內(nèi)核版本 1 為調(diào)試分析的對(duì)象,用 gdb 調(diào)試內(nèi)核,內(nèi)核版本 1 的壓縮文件存放在/data/workspace/myshixun/exp1中。


內(nèi)核環(huán)境配置不再說(shuō),可以看前面的。第一關(guān)過(guò)的到了第二關(guān)可以不用再解壓和修改內(nèi)核,如果重置環(huán)境則要。

打開(kāi)一個(gè)終端

cd ~/os/linux-0.11-lab
./rungdb

再打開(kāi)一個(gè)終端,前一個(gè)不要關(guān)閉.

cd ~/os/linux-0.11-lab
./mygdb
(gdb)b 145
(gdb)c
(gdb)n
(gdb)x/5i $eip
(gdb)si
(gdb)p &task[0]->tss
(gdb)ni 
(gdb)p task
(gdb)x/20wx gdt
(gdb)p &task[1]->tss
(gdb)p/x task[1]->tss

?頭歌操作系統(tǒng)-課堂練習(xí)3.2:進(jìn)程的創(chuàng)建


課堂練習(xí)3.2:進(jìn)程的創(chuàng)建的兩關(guān)就算全部搞定了,如果對(duì)這些指令運(yùn)行原理感興趣的話,或者是說(shuō)答案怎么從這些指令中找出,可以跟我交流噢!OK了,以上是本次文章的全部?jī)?nèi)容,stay tuned!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-425769.html

到了這里,關(guān)于頭歌操作系統(tǒng)-課堂練習(xí)3.2:進(jìn)程的創(chuàng)建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 操作系統(tǒng)練習(xí):在Linux上創(chuàng)建進(jìn)程,及查看進(jìn)程狀態(tài)

    操作系統(tǒng)練習(xí):在Linux上創(chuàng)建進(jìn)程,及查看進(jìn)程狀態(tài)

    進(jìn)程在執(zhí)行過(guò)程中可以創(chuàng)建多個(gè)新的進(jìn)程。創(chuàng)建進(jìn)程稱為“父進(jìn)程”,新的進(jìn)程稱為“子進(jìn)程”。每個(gè)新的進(jìn)程可以再創(chuàng)建其他進(jìn)程,從而形成進(jìn)程樹(shù)。 每個(gè)進(jìn)程都有一個(gè)唯一的進(jìn)程標(biāo)識(shí)符(process identifier,pid)。在Linux中,init進(jìn)程是所有其他進(jìn)程的根進(jìn)程。 在Linux中,可以

    2024年02月12日
    瀏覽(25)
  • 頭歌課堂練習(xí)5:進(jìn)程的同步與互斥

    頭歌課堂練習(xí)5:進(jìn)程的同步與互斥

    *tidp 是 pthread_t 類型,也就是指向線程標(biāo)識(shí)符的指針 通俗來(lái)講,要開(kāi)一個(gè)新線程, 那么就得新定義一個(gè) pthread_t 類型的指針。 *arrt 是 pthread_arrt_t 類型 說(shuō)的是用來(lái)設(shè)置線程屬性,我還沒(méi)怎么接觸這個(gè) 一般用NULL *strat_rtn 是這里 (void*)(*hh)(void*) 類型 是線程運(yùn)行函數(shù)的起始地址

    2024年02月04日
    瀏覽(74)
  • 頭歌操作系統(tǒng) 課后作業(yè)3.1:進(jìn)程的描述與狀態(tài)

    頭歌操作系統(tǒng) 課后作業(yè)3.1:進(jìn)程的描述與狀態(tài)

    第1關(guān):1 號(hào)進(jìn)程的核心棧內(nèi)容分析 編程要求 根據(jù)相關(guān)知識(shí),回答問(wèn)題: (將答案填寫在 /data/workspace/myshixun/第三關(guān).txt 中) 1 號(hào)進(jìn)程的核心棧棧底的位置是多少? 1 號(hào)進(jìn)程(用 si)執(zhí)行函數(shù) task1 中的第一個(gè) int 0x81 指令后,核心棧棧頂?shù)奈恢檬嵌嗌??從棧底到棧頂依次放了?/p>

    2024年02月05日
    瀏覽(197)
  • 操作系統(tǒng)——MFC實(shí)現(xiàn)進(jìn)程創(chuàng)建和通信2

    操作系統(tǒng)——MFC實(shí)現(xiàn)進(jìn)程創(chuàng)建和通信2

    我接著上篇博客講,如果沒(méi)有構(gòu)建項(xiàng)目的童鞋請(qǐng)移步到操作系統(tǒng)——MFC實(shí)現(xiàn)進(jìn)程創(chuàng)建和通信1 實(shí)現(xiàn)進(jìn)程通信的方法有很多,我們先用一個(gè)比較簡(jiǎn)單的方法實(shí)現(xiàn)一下。 window.postMessage() 方法可以安全地實(shí)現(xiàn)跨源通信。通常,對(duì)于兩個(gè)不同頁(yè)面的腳本,只有當(dāng)執(zhí)行它們的頁(yè)面位于具

    2024年02月07日
    瀏覽(16)
  • 【Linux操作系統(tǒng)】深入探索Linux進(jìn)程:創(chuàng)建、共享與管理

    【Linux操作系統(tǒng)】深入探索Linux進(jìn)程:創(chuàng)建、共享與管理

    進(jìn)程的創(chuàng)建是Linux系統(tǒng)編程中的重要概念之一。在本節(jié)中,我們將介紹進(jìn)程的創(chuàng)建、獲取進(jìn)程ID和父進(jìn)程ID、進(jìn)程共享、exec函數(shù)族、wait和waitpid等相關(guān)內(nèi)容。 在Linux系統(tǒng)中,進(jìn)程的創(chuàng)建使用 fork() 系統(tǒng)調(diào)用。 fork() 系統(tǒng)調(diào)用會(huì)創(chuàng)建一個(gè)與當(dāng)前進(jìn)程相同的子進(jìn)程,子進(jìn)程會(huì)復(fù)制父進(jìn)

    2024年02月12日
    瀏覽(35)
  • [入門篇]Linux操作系統(tǒng)fork子進(jìn)程的創(chuàng)建以及進(jìn)程的狀態(tài) 超超超詳解!??!我不允許有人錯(cuò)過(guò)?。。? decoding=

    [入門篇]Linux操作系統(tǒng)fork子進(jìn)程的創(chuàng)建以及進(jìn)程的狀態(tài) 超超超詳解?。?!我不允許有人錯(cuò)過(guò)!??!

    目錄 0.前言 1.fork()創(chuàng)建子進(jìn)程講解 1.1fork()的簡(jiǎn)單介紹 1.2 創(chuàng)建子進(jìn)程詳解 1.2.1 如何理解fork創(chuàng)建子進(jìn)程 1.2.2 子進(jìn)程的PCB以及子進(jìn)程的代碼和數(shù)據(jù) 1.2.3為什么要共享寫時(shí)拷貝 1.2.4?什么時(shí)候發(fā)生寫時(shí)拷貝 1.3 fork函數(shù)返回值詳解 1.3.1引入fork返回值的作用 1.3.2 fork返回執(zhí)行邏輯剖析

    2024年03月21日
    瀏覽(32)
  • 大數(shù)據(jù):HDFS的Shell操作,進(jìn)程啟動(dòng)管理,文件系統(tǒng)操作命令,創(chuàng)建文件文件夾,下載上傳,復(fù)制移動(dòng),刪除,展示,追加內(nèi)容

    大數(shù)據(jù):HDFS的Shell操作,進(jìn)程啟動(dòng)管理,文件系統(tǒng)操作命令,創(chuàng)建文件文件夾,下載上傳,復(fù)制移動(dòng),刪除,展示,追加內(nèi)容

    2022找工作是學(xué)歷、能力和運(yùn)氣的超強(qiáng)結(jié)合體,遇到寒冬,大廠不招人,可能很多算法學(xué)生都得去找開(kāi)發(fā),測(cè)開(kāi) 測(cè)開(kāi)的話,你就得學(xué)數(shù)據(jù)庫(kù),sql,oracle,尤其sql要學(xué),當(dāng)然,像很多金融企業(yè)、安全機(jī)構(gòu)啥的,他們必須要用oracle數(shù)據(jù)庫(kù) 這oracle比sql安全,強(qiáng)大多了,所以你需要學(xué)

    2024年02月07日
    瀏覽(103)
  • 頭歌(Linux之進(jìn)程管理一):第2關(guān):進(jìn)程創(chuàng)建操作-fork

    頭歌(Linux之進(jìn)程管理一):第2關(guān):進(jìn)程創(chuàng)建操作-fork

    任務(wù)描述 在上一關(guān)我們學(xué)習(xí)如何獲取進(jìn)程的 pid 信息,本關(guān)我們將介紹如何編程創(chuàng)建一個(gè)新的進(jìn)程。 本關(guān)任務(wù):學(xué)會(huì)使用 C 語(yǔ)言在 Linux 系統(tǒng)中使用 fork 系統(tǒng)調(diào)用創(chuàng)建一個(gè)新的進(jìn)程。 相關(guān)知識(shí) 在 Linux 系統(tǒng)中創(chuàng)建進(jìn)程有很多函數(shù)可以使用,其中包括了系統(tǒng)調(diào)用也包括庫(kù)函數(shù)。

    2024年02月06日
    瀏覽(112)
  • 頭歌操作系統(tǒng)Linux實(shí)驗(yàn)

    Linux操作系統(tǒng) 第1關(guān) Linux初體驗(yàn) cd / ls -a 第2關(guān) Linux常用命令 touch newfile mkdir newdir cp newfile newdir/newfileCpy 第3關(guān) Linux 查詢命令幫助語(yǔ)句 man 3 fopen Linux文件/目錄管理 第1關(guān) Linux之文件創(chuàng)建/刪除 touch file1 file2 rm oldFile1 oldFile2 第2關(guān) Linux之目錄創(chuàng)建/刪除 mkdir newDir1 newDir2 rm oldDir1 -r old

    2024年02月10日
    瀏覽(22)
  • 頭歌操作系統(tǒng) 課后作業(yè)4.1:段式內(nèi)存管理 答案

    頭歌操作系統(tǒng) 課后作業(yè)4.1:段式內(nèi)存管理 答案

    第1關(guān):0號(hào)進(jìn)程和1號(hào)進(jìn)程的mynext變量的取值變化 編程要求 根據(jù)相關(guān)知識(shí),修改版本 1.3 內(nèi)核回答問(wèn)題: 通過(guò) gdb 調(diào)試查找答案,將第三關(guān)的答案填寫在 /data/workspace/myshixun/第三關(guān).txt 中。 1 號(hào)進(jìn)程的 output_char 函數(shù)調(diào)用會(huì)執(zhí)行幾次? 每次調(diào)用時(shí),1 號(hào)進(jìn)程和 0 號(hào)進(jìn)程的 mynext 變

    2024年02月06日
    瀏覽(136)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包