青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-80  評(píng)論-24  文章-0  trackbacks-0
終于跳轉(zhuǎn)到main.c文件中的cbegin()函數(shù)執(zhí)行了,這是從boot到loader再到內(nèi)核,第一次執(zhí)行c代碼的地方。我們先看main.c都做了什么。

 1 #include <type.h>
 2 #include <asm/system.h>
 3 #include <winixj/clock.h>
 4 #include <winixj/mm.h>
 5 #include <winixj/hdd.h>
 6 #include <winixj/sys_call.h>
 7 #include <winixj/process.h>
 8 #include <getpid.h>
 9 
10 //指向在loader.s中保存的系統(tǒng)參數(shù)表
11 //包括顯示卡參數(shù)、硬盤參數(shù)等等
12 void *sys_param = (void *)0xf0000;
13 volatile int cursor_pos = 0;
14 
15 
16 //這個(gè)函數(shù)是真正的第一個(gè)C函數(shù),從_start函數(shù)中跳入
17 //最好將cbegin函數(shù)用volatile關(guān)鍵字修飾,這樣做的好處
18 //是:用volatile修飾函數(shù)的話則是告訴gcc編譯器該函數(shù)
19 //不返回(可能是函數(shù)內(nèi)含有exit()或者死循環(huán)之類的),這樣
20 //gcc在函數(shù)優(yōu)化的時(shí)候就不會(huì)將返回值壓入堆棧,這樣,起到
21 //優(yōu)化的作用,在cbegin中start_proc0()啟動(dòng)了第一個(gè)init進(jìn)程
22 //下面的for循環(huán)永遠(yuǎn)不可能執(zhí)行到,就算執(zhí)行到那cbegin()也不會(huì)
23 //返回
24 void cbegin()
25 {
26     //初始化系統(tǒng)調(diào)用,包括將0x30號(hào)中斷與自陷框架sys_call函數(shù)掛鉤
27     //以及安裝對(duì)用系統(tǒng)調(diào)用號(hào)的中斷入口函數(shù)
28     init_sys_call();
29     //初始化proc_list進(jìn)程鏈表以及對(duì)init和sys進(jìn)程進(jìn)行初始化
30     init_proc_list();
31     //初始化心跳值為0,以及打開時(shí)鐘中斷、初始化開機(jī)時(shí)間等
32     init_clock();
33     init_mm();
34 
35     //這里調(diào)試了很久!!!!!!!!!!
36     //注意這里一定要開中斷,因?yàn)楫?dāng)前中斷是關(guān)閉的
37     //init_hd()中有涉及到硬盤中斷的操作
38     //如果中斷關(guān)閉那么將響應(yīng)不到硬盤中斷
39     sti();
40     init_hd();
41     cli();
42 
43     //啟動(dòng)第一個(gè)進(jìn)程也即0號(hào)init進(jìn)程
44     start_proc0();
45 
46     //下面的代碼應(yīng)該永遠(yuǎn)不會(huì)被執(zhí)行,因?yàn)閟tart_proc0()函數(shù)不會(huì)返回,
47     //start_proc0()函數(shù)執(zhí)行完iretd命令后便啟動(dòng)了第一個(gè)init進(jìn)程,
48     //自此系統(tǒng)便開始了多進(jìn)程的運(yùn)行
49     for(;;){}
50 }
51 
52 //proc0
53 //第一個(gè)進(jìn)程
54 void init()
55 {
56     int i;
57     uint8 *= (uint8 *)(0xb8000);
58     *= (uint8)getpid() + '0';
59 
60     for(;;)
61     {
62         for ( i = 0; i < 1000000++i);
63 
64         if (*< '9')
65         {
66             *= ++(*p);
67         }
68     };
69 }
70 
71 //proc1
72 //第二個(gè)進(jìn)程
73 void sys()
74 {
75     int i;
76     //這里由sys進(jìn)程調(diào)用partition()系統(tǒng)調(diào)用來完成硬盤的初始化
77     //之所以在不在內(nèi)核中完成硬盤的初始化是因?yàn)檫@里需要讀取硬盤
78     //MBR的內(nèi)容,而讀取硬盤需要將當(dāng)前進(jìn)程睡眠,而內(nèi)核是不允許
79     //睡眠的,因此選擇在sys進(jìn)程中初始化硬盤
80     //這里的工作包括獲取硬盤柱面、柱頭、磁道、每磁道扇區(qū)數(shù)等的
81     //信息
82     uint8 *= (uint8 *)(0xb8002);
83     *= (uint8)getpid() + '0';
84 
85     for(;;)
86     {
87         for ( i = 0; i < 1000000++i);
88 
89         if (*< '9')
90         {
91             *= ++(*p);
92         }
93     };
94 }
95 

代碼量并不多,但是完成的事情其實(shí)并不少,主要的函數(shù)以及功能如下:
1、init_sys_call 初始化系統(tǒng)調(diào)用
2、init_proc_list 初始化進(jìn)程控制塊數(shù)組
3、init_clock 初始化時(shí)鐘中斷
4、init_mm 初始化告訴緩沖區(qū)
5、init_hd 初始化硬盤及硬盤中斷
6、start_proc0 啟動(dòng)第一個(gè)進(jìn)程init進(jìn)程
其中每一項(xiàng)功能的實(shí)現(xiàn)都不簡(jiǎn)單,之后的章節(jié)再一一詳細(xì)論述。
這里有必要將內(nèi)存分配的情況展示一下:
在boot執(zhí)行過程中:
1、首先BIOS將自動(dòng)從軟盤第一扇區(qū)讀取boot代碼(共512B),然后將其加載到內(nèi)存物理地址0x7c00處,開始執(zhí)行第一條代碼,boot開始執(zhí)行。
2、我們的boot程序完成從軟盤的第二個(gè)扇區(qū)開始將loader和kernel Image加載到物理地址0x80000開始的地方,然后便急切的跳轉(zhuǎn)到0x80000地址處去執(zhí)行l(wèi)oader。
3、loader此時(shí)開始執(zhí)行,它首先分析kernel Image,將其各個(gè)段(包括若干代碼段、數(shù)據(jù)段等)復(fù)制到內(nèi)存合適的地址處(我們編譯內(nèi)核的時(shí)候指定了內(nèi)核起始虛擬地址為0x0,由于我們的分段機(jī)制使得虛擬地址等于線性地址,所以內(nèi)核開始執(zhí)行時(shí)的線性地址也是0x0,又由于此時(shí)分頁(yè)機(jī)制是地址對(duì)等映射,所以物理地址也同樣是0x0,所以我們是將內(nèi)核搬運(yùn)到內(nèi)存起始物理地址0x0開始運(yùn)行的);然后從BIOS ROM區(qū)獲取一些系統(tǒng)參數(shù),將參數(shù)保存在物理地址0xf0000開始的地方;之后準(zhǔn)備GDT,并填充適當(dāng)?shù)腉DT描述符項(xiàng),然后通過打開A20地址線和置cr0寄存器最后一位PE位為1來打開保護(hù)模式,然后跳轉(zhuǎn)到保護(hù)模式運(yùn)行;而進(jìn)入保護(hù)模式之后loader什么也不干,畢竟我們想盡快的到內(nèi)核世界去旅行,所以這里只簡(jiǎn)單的跳轉(zhuǎn)到kernel去執(zhí)行。
至此為止,boot運(yùn)行完成時(shí)的內(nèi)存分布如下:



而當(dāng)loader執(zhí)行完畢后的內(nèi)存分布如下:



之后內(nèi)存分布不會(huì)有太大的變化。
posted on 2012-02-14 13:01 myjfm 閱讀(629) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 操作系統(tǒng)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            激情综合在线| 亚洲欧美日韩综合一区| 亚洲高清自拍| 久久久精品一品道一区| 国产精品99久久久久久久vr| 欧美国产一区二区| 亚洲三级影院| 亚洲欧美精品| 一级日韩一区在线观看| 欧美日韩一区二区在线视频| 亚洲乱亚洲高清| 91久久精品一区| 久久资源av| 136国产福利精品导航网址| 久久字幕精品一区| 一区二区三区视频在线看| 欧美日韩日本国产亚洲在线| 一区二区三区毛片| 一本色道久久综合亚洲精品不 | 欧美福利视频| 久久亚洲综合色| 亚洲国产综合在线| 亚洲第一中文字幕在线观看| 裸体一区二区三区| 亚洲精品乱码久久久久| 欧美高清视频一区二区| 欧美aⅴ99久久黑人专区| 亚洲啪啪91| 夜夜夜精品看看| 国产精品三级久久久久久电影| 小黄鸭精品aⅴ导航网站入口| 午夜久久美女| 亚洲高清资源| 中日韩美女免费视频网站在线观看| 国产精品青草久久| 久久一区免费| 欧美伦理视频网站| 欧美一站二站| 久久久夜精品| 一区二区三区四区五区精品| 一本大道久久a久久综合婷婷 | 伊人久久大香线蕉综合热线| 欧美成人精品影院| 欧美日韩一区在线观看视频| 欧美一区二区私人影院日本| 久久九九久精品国产免费直播| 亚洲人成久久| 亚洲欧美视频在线观看| 亚洲欧洲三级电影| 亚洲无线视频| 亚洲视频欧美在线| 久久网站热最新地址| 一区二区精品| 午夜一区二区三区在线观看| 亚洲精品一区二区三区樱花| 亚洲专区国产精品| 亚洲国产日韩欧美在线动漫| 一本一本久久a久久精品综合妖精| 国产日韩欧美一区二区| 亚洲激情av| 国产综合婷婷| 亚洲欧美激情视频| 99精品视频免费观看| 欧美在线短视频| 亚洲性人人天天夜夜摸| 久久久在线视频| 久久高清福利视频| 欧美日韩一区在线观看视频| 欧美成人影音| 国产性猛交xxxx免费看久久| 亚洲国产一区二区三区青草影视| 国产日韩在线一区| 一二三四社区欧美黄| 亚洲美女一区| 老司机精品视频网站| 久久久久久九九九九| 欧美视频网址| 亚洲乱码国产乱码精品精天堂 | 欧美日韩在线视频观看| 欧美国产精品人人做人人爱| 国产欧美在线播放| 亚洲特色特黄| 一区二区三区www| 欧美第十八页| 欧美黑人多人双交| 最新日韩在线| 蜜臀av一级做a爰片久久 | 亚洲手机在线| 亚洲视频中文| 欧美高清在线| 亚洲高清不卡在线| 亚洲激情在线视频| 久久亚洲国产成人| 免费一级欧美片在线观看| 1024成人| 蜜桃av久久久亚洲精品| 美女精品视频一区| 亚洲高清在线播放| 久热精品视频在线| 欧美二区乱c少妇| 亚洲激情在线激情| 欧美另类高清视频在线| 91久久精品国产91久久性色| 99re热这里只有精品视频| 欧美成人综合一区| 亚洲欧洲日本国产| 正在播放欧美视频| 国产精品久久久久av| 午夜精品在线看| 免费观看在线综合色| 91久久久一线二线三线品牌| 欧美精品一区二区三区视频| 久久看片网站| 国产精品qvod| 午夜精品久久久久久久久久久久久 | 玖玖综合伊人| 亚洲国产精品高清久久久| 一级成人国产| 欧美视频一区二区三区在线观看 | 一区二区三区 在线观看视频| 亚洲国产综合视频在线观看| 久久综合激情| 好看的亚洲午夜视频在线| 亚洲精品视频在线观看网站 | 亚洲视频免费看| 在线欧美不卡| 亚洲免费在线电影| 欧美一区视频| 久久精品亚洲一区二区三区浴池| 亚洲免费成人av| 国产精品高清免费在线观看| 99精品国产热久久91蜜凸| 国产一区二区日韩精品| 日韩亚洲一区二区| 亚洲精品一品区二品区三品区| 影音先锋久久资源网| 欧美日韩一二三四五区| 久久这里只有| 国产精品久久久久久亚洲调教| 亚洲在线日韩| 亚洲一区久久久| 狠狠色丁香久久婷婷综合丁香| 久久久久久久一区| 久久视频这里只有精品| 国产精品自拍在线| 欧美中文在线字幕| 久久久av网站| 亚洲精品久久久久久久久久久| 欧美承认网站| 亚洲人成在线观看| 亚洲欧美变态国产另类| 国内精品免费在线观看| 欧美在现视频| 亚洲精品欧洲| 欧美一区二区三区视频免费播放| 红桃视频一区| 久久综合久久久久88| 亚洲国产小视频| 亚洲精品一区中文| 欧美黄色免费网站| 亚洲国产欧美国产综合一区| 亚洲图片你懂的| 好吊妞这里只有精品| 亚洲欧美一区二区三区在线 | 欧美亚洲日本网站| 久久久综合免费视频| 欧美福利小视频| 免费亚洲婷婷| 欧美一区二区三区视频免费| 狠狠色噜噜狠狠狠狠色吗综合| 亚洲一区欧美激情| 欧美在线观看www| 亚洲日本理论电影| 亚洲免费在线看| 亚洲综合国产| 国产精品人人做人人爽人人添| 国产视频在线观看一区| 国产人成精品一区二区三| 国产视频久久久久久久| 国产视频在线观看一区| 国产在线观看一区| 国产精品美女久久久久av超清| 欧美~级网站不卡| 国产精品美女久久久免费| 国内一区二区在线视频观看| 亚洲第一福利视频| 国产精品久久久久免费a∨ | 一本到高清视频免费精品| 亚洲激情网站免费观看| 亚洲精品乱码久久久久久久久| 亚洲精品在线免费| 香蕉久久夜色精品国产| 欧美激情成人在线| 亚洲一级网站| 久久影院午夜论| 国产精品素人视频| 亚洲国产日韩一级| 亚洲午夜小视频| 美女免费视频一区| 欧美一乱一性一交一视频|