• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            jake1036

            ubuntu9.10編譯運(yùn)行Linux0.01

                        前一陣子都在看源代碼,然后自己一行一行的敲上去,但是沒(méi)有辦法手動(dòng)的調(diào)試,
                        于是自己冒出個(gè)想法,我要在自己的機(jī)器上編譯并且運(yùn)行l(wèi)inux0.11。
                        vwmare虛擬機(jī)安裝的是ubuntu9.10。我想在9.10上利用bochs 來(lái)編譯并且運(yùn)行l(wèi)inux0.01。
                 
               (1)   下載的源代碼是 linux-0.11-081030.tar.gz ,這個(gè)源代碼是使用gcc 4.3編譯的。
                        但是ubuntu9.10及其之上的版本都安裝的是gcc4.4。
                      所以第一步就是要安裝gcc4.3 ,因?yàn)槿羰鞘褂胓cc4.4,那么源代碼可能會(huì)成功編譯,但是無(wú)法運(yùn)行。 
                       在控制臺(tái)上輸入 sudo apt-get install gcc4.3 。  然后把gcc4.3變成系統(tǒng)默認(rèn)的編譯器。 
                             ln -sf /usr/bin/gcc-3.3 /usr/bin/gcc  執(zhí)行此命令即可。

              (2) 將linux-0.11-081030.tar.gz  解壓,先使用gunzip解壓去掉gz。然后再使用tar xvf 解壓。 
                  進(jìn)入linux-0.11 ,然后make clean  , make 。
                 你會(huì)發(fā)現(xiàn)新生成了 Image 和  System.map 。
                執(zhí)行 dd bs=8192 if=Image of =/dev/fd0。(下面的配置文件我使用的是bootimage-0.11-hd,
                所以我用的是dd bs=8192 if=Image of =bootimage-0.11-hd)
                如果到這一步都沒(méi)問(wèn)題,那么就說(shuō)明你編譯正確。
                
                      (3) 下載linux-0.11-devel-060625.zip 。解壓并把文件夾內(nèi)的 hdc-0.11-new.img 移動(dòng)到與Imgae 相同的路徑下。
                                         
                      (4) 利用bochs2.4.2 來(lái)模擬運(yùn)行。 boch0.11.bxrc配置文件如下:
                          
                  

            megs: 16 
            romimage: file
            =/opt/bochs/gdbstub/share/bochs/BIOS-bochs-latest
            vgaromimage: file
            =/opt/bochs/gdbstub/share/bochs/VGABIOS-lgpl-latest
            #floppya: 1_44
            ="Image", status=inserted    #這個(gè)是啟動(dòng)盤。
            floppya: 1_44
            ="bootimage-0.11-hd", status=inserted 
            ata0
            -master: type=disk, path="hdc-0.11-new.img",   mode=flat, cylinders=410, heads=16, spt=38
            gdbstub: enabled
            =1, port=1234, text_base=0, data_base=0, bss_base=0 
            boot: floppy
            log: bochsout.txt 
            parport1: enable
            =0 
            vga_update_interval: 
            300000 
            keyboard_serial_delay: 
            200 
            keyboard_paste_delay: 
            100000 
            floppy_command_delay: 
            50000 
            ips: 
            4000000 
            mouse: enabled
            =0 
            private_colormap: enabled
            =0 
            fullscreen: enabled
            =0 
            screenmode: name
            ="sample" 
            i440fxsupport: enabled
            =0 


             (5) 運(yùn)行bochs ,然后選擇相應(yīng)的文件即可。下面講一下gdb與bochs聯(lián)合調(diào)試的方法
                  首先要在bochs的配置文件中增加一句 gdbstub:enabled=1 ,port=1234,text_base=0,data_base=0,bss_base=0
                  進(jìn)入源代碼中的tools文件夾,執(zhí)行 gdb system
                  然后接著輸入
                  break  main
                 target remote localhost:1234
                 cont
                 內(nèi)核代碼將在init.c中的main函數(shù)處停止。
                 在聯(lián)合調(diào)試的過(guò)程中,bochs會(huì)出現(xiàn)pae_fault的錯(cuò)誤,這時(shí)候就需要連續(xù)按 enter 鍵即可。

              經(jīng)驗(yàn)教訓(xùn) :
                 (1) 一定要選擇對(duì)應(yīng)的gcc版本,否則就算是編譯正確了,也無(wú)法運(yùn)行。我的gcc版本為 gcc 4.3 。
                 (2) http://oss.lzu.edu.cn/modules/newbb/viewtopic.php?topic_id=1403 這個(gè)網(wǎng)址上有對(duì)應(yīng)的源代碼。


                


                成功的圖片。








            posted on 2010-11-05 19:53 kahn 閱讀(1651) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            奇米综合四色77777久久| 国产情侣久久久久aⅴ免费| 99久久国产综合精品成人影院| 99国产精品久久| 国产精品青草久久久久福利99| 国产精品午夜久久| 99久久夜色精品国产网站| 久久精品99久久香蕉国产色戒| 亚洲成色999久久网站| 一级女性全黄久久生活片免费| 思思久久99热只有频精品66| 久久久久亚洲av无码专区喷水| 久久免费美女视频| 久久99热这里只有精品66| av午夜福利一片免费看久久| 欧美久久一区二区三区| 精品久久久久久中文字幕人妻最新| AA级片免费看视频久久| 亚洲AV无码一区东京热久久 | 久久这里的只有是精品23| 久久综合给合久久狠狠狠97色| 99久久国产热无码精品免费久久久久| 伊人久久国产免费观看视频| 国产香蕉97碰碰久久人人| 久久精品无码午夜福利理论片| 武侠古典久久婷婷狼人伊人| 国产成人精品免费久久久久| 无码任你躁久久久久久老妇| 狠狠色噜噜狠狠狠狠狠色综合久久| 无码国内精品久久综合88| 国产精品VIDEOSSEX久久发布| 精品久久777| av无码久久久久久不卡网站| 欧美精品久久久久久久自慰| 久久无码AV中文出轨人妻| 精品久久人人爽天天玩人人妻 | 久久综合九色综合97_久久久| 久久国语露脸国产精品电影| 无码国内精品久久综合88| 亚洲欧美久久久久9999| 亚洲国产日韩欧美久久|