亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bochs1.txt

?? 一個虛擬機平臺的介紹bochs是完全模擬硬件的
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
為了配合Linux 0.11內核工作原理的學習,本章介紹了利用PC機仿真軟件和在實際計算機上運行Linux 0.11系統的方法。其中包括內核的編譯過程、PC仿真環境下文件的訪問和復制、引導盤和根文件系統的制作方法以及Linux 0.11系統的使用方法。最后還說明了如何對內核代碼作少量語法修改,使其在現有的RedHat 9系統(gcc 3.x)下能順利通過編譯。
在開始進行實驗之前,首先準備好一些有用的工具軟件。在Windows平臺上,可以準備以下幾個軟件:
?Bochs 2.x開放源代碼的PC機仿真軟件包。
?UltraEdit超級編輯器。可用來編輯二進制文件。
?WinImageDOS格式軟盤映象文件讀寫軟件。
http://oldlinux.org/download/clk-ch14-expriment.pdf
*注意: 請下載本站最新的相關Image文件配合使用。
*注意2:請__先閱讀__書本大部分章節之后再開始實驗。
*獨立給出的新添內容:
(1) 集成盤的制作方法:
http://www.oldlinux.org/oldlinux/viewthread.php?tid=4751 
(原http://www.oldlinux.org/cgi-bin/ ... opic=238&show=0)


(2) 內核調試方法
http://www.oldlinux.org/oldlinux/viewthread.php?tid=3773 
(原http://www.oldlinux.org/cgi-bin/topic.cgi?forum=4&topic=171)


(3) 從硬盤啟動Linux 0.11
http://www.oldlinux.org/oldlinux/viewthread.php?tid=3828 
(原http://www.oldlinux.org/cgi-bin/topic.cgi?forum=4&topic=214)


(4) 如何運行Linux 0.11系統
http://www.oldlinux.org/oldlinux/viewthread.php?tid=3878 
(原http://www.oldlinux.org/cgi-bin/ ... opic=619&show=0)


(5) quinn 的 0.11實驗環境(Linux和Windows),帶Flash教程
http://www.oldlinux.org/oldlinux/viewthread.php?tid=3850 
(原http://www.oldlinux.org/cgi-bin/ ... pic=1065&show=0)
http://www.quinnli.com/blog/

(6) 在VMware中運行Bochs磁盤映像文件的方法
http://www.oldlinux.org/oldlinux/viewthread.php?tid=4490 
(原http://www.oldlinux.org/cgi-bin/ ... pic=1114&show=0)


(7) 用gdb和bochs調試內核
http://www.oldlinux.org/oldlinux/viewthread.php?tid=3809 
(原http://www.oldlinux.org/cgi-bin/topic.cgi?forum=4&topic=893)








1111
圖14-6 加載根文件系統到內存虛擬盤區域的流程圖
14.1內核引導啟動+根文件系統組成的集成盤
本節內容主要說明制作由內核引導啟動映像文件和根文件系統組合成的集成盤映像文件的制作原理和方法。主要目的是了解Linux 0.11內核內存虛擬盤工作原理,并進一步理解引導盤和根文件系統盤的概念。加深對kernel/blk_drv/ramdisk.c程序運行方式的理解。在制作這個集成盤之前,我們需要首先下載或準備好以下實驗軟件:
http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-040923.zip
http://oldlinux.org/Linux.old/images/rootimage-0.11-for-orig
linux-0.11-devel是運行在Bochs下的帶開發環境的Linux 0.11系統,rootimage-0.11是1.44MB軟盤映像文件中的Linux 0.11根文件系統。后綴'for-orig'是指該根文件系統適用于未經修改的Linux 0.11內核源代碼編譯出的內核引導啟動映像文件。當然這里所說的“未經修改”是指沒有對內核作過什么大的改動,因為我們還是要修改編譯配置文件Makefile,以編譯生成含有內存虛擬盤的內核代碼來。
14.1.1集成盤制作原理
通常我們使用軟盤啟動Linux 0.11系統時需要兩張盤(這里“盤”均指對應軟盤的Image文件):一張是內核引導啟動盤,一張是基本的根文件系統盤。這樣必須使用兩張盤才能引導啟動系統來正常運行一個基本的Linux系統,并且在運行過程中根文件系統盤必須一直保持在軟盤驅動器中。而我們這里描述的集成盤是指把內核引導啟動盤和一個基本的根文件系統盤的內容合成制作在一張盤上。這樣我們使用一張集成盤就能引導啟動Linux 0.11系統到命令提示符狀態。集成盤實際上就是一張含有根文件系統的內核引導盤。
為了能運行集成盤系統,該盤上的內核代碼中需要開啟內存虛擬盤(RAMDISK)的功能。這樣集成盤上的根文件系統就能被加載到內存中的虛擬盤中,從而系統上的兩個軟盤驅動器就能騰出來用于加載(mount)其他文件系統盤或派其他用途。下面我們再詳細介紹一下在一張1.44MB盤上制作成集成盤的原理和步驟。
14.1.1.1引導過程原理
Linux 0.11的內核在初始化時會根據編譯時設置的RAMDISK選項判斷在系統物理內存是否要開辟虛擬盤區域。如果沒有設置RAMDISK(即其長度為0)則內核會根據ROOT_DEV所設置的根文件系統所在設備號,從軟盤或硬盤上加載根文件系統,執行無虛擬盤時的一般啟動過程。
如果在編譯Linux 0.11內核源代碼時,在其linux/Makefile配置文件中定義了RAMDISK的大小,則內核代碼在引導并初始化RAMDISK區域后就會首先嘗試檢測啟動盤上的第256磁盤塊(每個磁盤塊為1KB,即2個扇區)開始處是否存在一個根文件系統。檢測方法是判斷第257磁盤塊中是否存在一個有效的文件系統超級塊信息。如果有,則將該文件系統加載到RAMDISK區域中,并將其作為根文件系統使用。從而我們就可以使用一張集成了根文件系統的啟動盤來引導系統到shell命令提示符狀態。若啟動盤上指定磁盤塊位置(第256磁盤塊)上沒有存放一個有效的根文件系統,那么內核就會提示插入根文件系統盤。在用戶按下回車鍵確認后,內核就把處于獨立盤上的根文件系統整個地讀入到內存的虛擬盤區域中去執行。這個檢測和加載過程見圖14-6所示。


 
 引用  報告 回復   
 
redgrid 

版主

Member



UID 12108
精華 35 
積分 6766
帖子 6938
閱讀權限 100
注冊 2003-9-5
來自 上海
狀態 離線  #2使用道具  發表于 2004-10-20 22:19  資料  個人空間  主頁 短消息  加為好友   
集成盤的制作方法


圖14-7 集成盤上代碼結構

14.1.1.2集成盤的結構
對于Linux 0.1x內核,其代碼加數據段的長度很小,大約在120KB左右。在開發Linux系統初始階段,即使考慮到內核的擴展,Linus還是認為內核的長度不會超過256KB,因此在1.44MB的盤上可以把一個基本的根文件系統放在啟動盤的第256個磁盤塊開始的地方,組合形成一個集成盤片。一個添加了基本根文件系統的引導盤(即集成盤)的結構示意圖見圖14-7所示。其中文件系統的詳細結構請參見文件系統一章中的說明。

如上所述,集成盤上根文件系統放置的位置和大小主要與內核的長度和定義的RAMDISK區域的大小有關。Linus在ramdisk.c程序中默認地定義了這個根文件系統的開始放置位置為第256磁盤塊開始的地方。對于Linux 0.11內核來講,編譯產生的內核Image文件(即引導啟動盤Image文件)的長度在120KB左右,因此把根文件系統放在盤的第256磁盤塊開始的地方肯定沒有問題,只是稍許浪費了一點磁盤空間。還剩下共有1440 - 256 = 1184 KB空間可用來存放根文件系統。當然我們也可以根據具體編譯出的內核大小來調整存放根文件系統的開始磁盤塊位置。例如我們可以修改ramdisk.c第75行block的值為130把存放根文件系統的開始位置往前挪動一些以騰出更多的磁盤空間供盤上的根文件系統使用。

 
 引用  報告 回復   
 
redgrid 

版主

Member



UID 12108
精華 35 
積分 6766
帖子 6938
閱讀權限 100
注冊 2003-9-5
來自 上海
狀態 離線  #3使用道具  發表于 2004-10-20 22:19  資料  個人空間  主頁 短消息  加為好友   
集成盤的制作方法


14.1.2集成盤的制作過程
在不改動內核程序ramdisk.c中默認定義的根文件系統開始存放磁盤塊位置的情況下,我們假設需要制作集成盤上的根文件系統的容量為1024KB(最大不超過1184KB)。制作集成盤的主要思路是首先建立一個1.44MB的空的Image盤文件,然后將新編譯出的開啟了RAMDISK功能的內核Image文件復制到該盤的開始處。再把定制的大小不超過1024KB的文件系統復制到該盤的第256磁盤塊開始處。具體制作步驟如下所示。
14.1.2.1重新編譯內核
重新編譯帶有RAMDISK定義的內核Image文件,假定RAMDISK區域設置為2048KB。方法如下:
在Bochs系統中運行linux-0.11-devel系統。編輯其中的/usr/src/linux/Makefile文件,修改以下設置行:
RAMDISK = -DRAMDISK = 2048
ROOT_DEV = FLOPPY
然后重新編譯內核源代碼生成新的內核Image文件。
make clean; make
14.1.2.2制作臨時根文件系統
制作大小為1024KB的根文件系統Image文件,假定其文件名為rootram.img。制作方法如下:
(1) 利用本章前面介紹的方法制作一張大小為1024KB的空Image文件。假定該文件的名稱是rootram.img。可使用在現在的Linux系統下執行下面命令生成:
dd bs=1024 if=/dev/zero of=rootram.img count=1024
(2) 在Bochs系統中運行linux-0.11-devel系統。然后在Bochs主窗口上把驅動盤分別配置成:A盤為rootimage-0.11-orign;B盤為rootram.img。
(3) 使用下面命令在rootram-0.11盤上創建大小為1024KB的空文件系統。然后使用下列命令分別把A盤和B盤加載到/mnt和/mnt1目錄上。若目錄/mnt1不存在,可以建立一個。
mkfs /dev/fd1 1024
mkdir /mnt1
mount /dev/fd0 /mnt
mount /dev/fd1 /mnt1
(4) 使用cp命令有選擇性地復制/mnt上rootimage-0.11-orign中的文件到/mnt1目錄中,在/mnt1中制作出一個根文件系統。若遇到出錯信息,那么通常是容量已經超過了1024KB了。利用下面的命令或使用本章前面介紹的方法來建立根文件系統。
首先精簡/mnt/中的文件,以滿足容量不要超過1024KB的要求。我們可以刪除一些/bin和/usr/bin下的文件來達到這個要求。關于容量可以使用df命令來查看。例如我選擇保留的文件是以下一些:
[/bin]# ll
total 495
-rwx--x--x   1 root     root        29700 Apr 29 20:15 mkfs
-rwx--x--x   1 root     root        21508 Apr 29 20:15 mknod
-rwx--x--x   1 root     root        25564 Apr 29 20:07 mount
-rwxr-xr-x   1 root     root       283652 Sep 28 10:11 sh
-rwx--x--x   1 root     root        25646 Apr 29 20:08 umount
-rwxr-xr-x   1 root     4096       116479 Mar  3  2004 vi
[/bin]#[/bin]# cd /usr/bin
[/usr/bin]# ll
total 364
-rwxr-xr-x   1 root     root        29700 Jan 15  1992 cat
-rwxr-xr-x   1 root     root        29700 Mar  4  2004 chmod
-rwxr-xr-x   1 root     root        33796 Mar  4  2004 chown
-rwxr-xr-x   1 root     root        37892 Mar  4  2004 cp
-rwxr-xr-x   1 root     root        29700 Mar  4  2004 dd
-rwx--x--x   1 root     4096        36125 Mar  4  2004 df
-rwx--x--x   1 root     root        46084 Sep 28 10:39 ls
-rwxr-xr-x   1 root     root        29700 Jan 15  1992 mkdir
-rwxr-xr-x   1 root     root        33796 Jan 15  1992 mv
-rwxr-xr-x   1 root     root        29700 Jan 15  1992 rm
-rwxr-xr-x   1 root     root        25604 Jan 15  1992 rmdir
[/usr/bin]#
然后利用下列命令復制文件。另外,可以按照自己的需要修改一下/etc/fstab和/etc/rc文件中的內容。
cd /user
for i in bin dev etc usr tmp 
do
cp +recursive +verbose /$i $i
done
sync
(5) 使用umount命令卸載/dev/fd0和/dev/fd1上的文件系統,然后使用dd命令把/dev/fd1中的文件系統復制到Linux-0.11-devel系統中,建立一個名稱為rootram-0.11的根文件系統Image文件:
dd bs=1024 if=/dev/fd1 of=rootram-0.11 count=1024
此時在Linux-0.11-devel系統中我們已經有了新編譯出的內核Image文件/usr/src/linux/Image和一個簡單的容量不超過1024KB的根文件系統映像文件rootram-0.11。
14.1.2.3建立集成盤
組合上述兩個映像文件,建立集成盤。修改Bochs主窗口A盤配置,將其設置為前面準備好的1.44MB名稱為bootroot-0.11的映像文件。然后執行命令:
dd bs=8192 if=/usr/src/linux/Image of=/dev/fd0
dd bs=1024 if=rootram-0.11 of=/dev/fd0 seek=256
sync;sync;sync;
其中選項bs=1024 表示定義緩沖的大小為1KB。seek=256 表示寫輸出文件時跳過前面的256個磁盤塊。然后退出Bochs系統。此時我們在主機的當前目錄下就得到了一張可以運行的集成盤映像文件bootroot-0.11

 
 引用  報告 回復   
 
redgrid 

版主

Member



UID 12108
精華 35 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久你懂得1024| 欧美日韩国产一级| 美洲天堂一区二卡三卡四卡视频| 国产丝袜在线精品| 久久久不卡网国产精品一区| 日韩午夜电影在线观看| 欧美一区二区在线免费播放| 国产aⅴ综合色| 国产精品网站在线观看| 色综合亚洲欧洲| 欧美卡1卡2卡| 极品少妇一区二区三区精品视频 | 欧美一区二区三区啪啪| 欧美日韩视频不卡| 欧美一区二区三区免费在线看| 8x8x8国产精品| 欧美成人伊人久久综合网| 日韩欧美国产一区二区三区 | 欧美电视剧免费全集观看| 日韩一本二本av| 久久久综合视频| 国产精品国产自产拍高清av | 蜜臀av性久久久久蜜臀aⅴ| 日本aⅴ免费视频一区二区三区| 美女视频黄久久| 国产999精品久久久久久| 色综合一区二区| 欧美一二三区在线| 国产精品天天摸av网| 一区二区三区在线视频免费观看| 亚洲成人7777| 成人影视亚洲图片在线| 欧美视频一区在线| 国产日韩欧美综合在线| 亚洲国产成人porn| 国产福利一区二区三区视频在线 | 在线视频欧美精品| 日韩一区二区免费在线电影| 国产精品每日更新在线播放网址| 亚洲国产精品久久一线不卡| 国产激情一区二区三区| 3atv在线一区二区三区| 国产精品久久久久四虎| 蜜臀va亚洲va欧美va天堂| 懂色av一区二区三区蜜臀| 欧美日韩在线播放| 国产精品久久久久久妇女6080| 天堂成人国产精品一区| 成人av第一页| 精品国产伦一区二区三区观看体验| 中文字幕一区二区三区视频| 久久电影国产免费久久电影| 91美女在线观看| 精品99999| 日韩国产在线观看| 欧美性生交片4| 亚洲欧美偷拍另类a∨色屁股| 国产制服丝袜一区| 91麻豆精品91久久久久久清纯 | 日本电影亚洲天堂一区| 久久色在线观看| 日本一不卡视频| 欧美无乱码久久久免费午夜一区| 久久久久国产精品麻豆| 看电视剧不卡顿的网站| 91精品国产综合久久久蜜臀粉嫩| 亚洲精品国产高清久久伦理二区| 高清不卡在线观看| 国产午夜精品一区二区三区四区| 青青草国产成人av片免费| 欧美日韩日日夜夜| 午夜日韩在线观看| 欧美剧情电影在线观看完整版免费励志电影 | 夜色激情一区二区| 91欧美激情一区二区三区成人| 久久综合给合久久狠狠狠97色69| 蜜臀久久99精品久久久久宅男 | 亚洲一线二线三线久久久| av爱爱亚洲一区| 中文字幕亚洲一区二区av在线 | 亚洲欧美在线另类| 成人在线视频首页| 日本一二三四高清不卡| 成人av高清在线| 一区二区三区四区精品在线视频| 色婷婷综合久久久久中文一区二区| 亚洲欧美另类久久久精品| 色天天综合色天天久久| 亚洲综合清纯丝袜自拍| 欧美日韩大陆一区二区| 日本中文字幕不卡| 久久久久久夜精品精品免费| 国产一区福利在线| 亚洲婷婷综合色高清在线| 在线观看亚洲一区| 青青青爽久久午夜综合久久午夜| 日韩三级精品电影久久久| 国产一区二区免费看| 欧美激情一区二区三区不卡| 91玉足脚交白嫩脚丫在线播放| 亚洲影视在线播放| 欧美tickle裸体挠脚心vk| 国产一区二区精品久久| 一色桃子久久精品亚洲| 欧美精品在线一区二区| 国产精品一线二线三线| 一区二区在线观看免费视频播放| 欧美日韩国产三级| 国内精品伊人久久久久av一坑| 日韩一区在线看| 欧美丝袜自拍制服另类| 麻豆精品精品国产自在97香蕉 | 亚洲国产精品一区二区久久| 日韩欧美不卡在线观看视频| 福利一区二区在线| 亚洲国产日韩a在线播放性色| 欧美tickle裸体挠脚心vk| thepron国产精品| 久久狠狠亚洲综合| 亚洲乱码国产乱码精品精的特点| 日韩一卡二卡三卡四卡| 色综合婷婷久久| 国产成人免费xxxxxxxx| 日韩综合一区二区| 亚洲欧美激情一区二区| 久久先锋影音av鲁色资源网| 欧美人牲a欧美精品| 成人av在线一区二区三区| 免费成人深夜小野草| 亚洲制服丝袜av| 亚洲欧洲另类国产综合| 精品国产伦理网| 日韩午夜在线影院| 欧美日韩一区二区三区高清 | 欧美亚一区二区| 成人丝袜18视频在线观看| 久久成人久久鬼色| 日日摸夜夜添夜夜添亚洲女人| 日韩美女视频一区二区| 亚洲精品在线电影| 日韩视频一区二区三区| 欧美视频在线播放| 欧美体内she精高潮| 色噜噜狠狠色综合中国| 丁香另类激情小说| 国产在线精品一区二区不卡了| 日韩av一区二区三区四区| 亚洲国产中文字幕在线视频综合| 自拍偷在线精品自拍偷无码专区| 国产性天天综合网| 国产精品久久毛片a| 国产精品传媒在线| 亚洲视频一二三| 最好看的中文字幕久久| 国产精品久久久久久久久久久免费看 | 国产欧美一区二区精品性色 | 成人性生交大片免费看在线播放 | 欧美女孩性生活视频| 欧美在线三级电影| 91久久线看在观草草青青 | 欧美一级久久久| 日韩一区二区免费在线观看| 91精品国产高清一区二区三区 | 午夜精品在线看| 亚洲午夜影视影院在线观看| 亚洲与欧洲av电影| 日韩成人一区二区三区在线观看| 婷婷成人激情在线网| 午夜av一区二区| 老汉av免费一区二区三区| 精久久久久久久久久久| 国产伦精品一区二区三区视频青涩 | 亚洲一区二区三区四区中文字幕| 一区二区三区欧美日| 亚洲国产另类av| 蜜臀av一级做a爰片久久| 国产一区视频导航| 成人午夜激情片| 欧美性感一类影片在线播放| 欧美一区二区视频在线观看| 久久中文娱乐网| 亚洲色图视频网| 亚洲国产一区二区三区青草影视 | 成人激情图片网| 日本大香伊一区二区三区| 欧美一卡二卡在线观看| 国产欧美日韩视频一区二区| 亚洲一区二区三区四区在线观看| 久久国产婷婷国产香蕉| 97超碰欧美中文字幕| 91精品国产一区二区三区| 久久久久9999亚洲精品| 亚洲国产综合91精品麻豆| 国产在线观看一区二区| 日本韩国精品在线| 久久久久久久久久久黄色| 亚洲一区视频在线| 国产大陆亚洲精品国产| 欧美日本在线播放| 中文字幕五月欧美|