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

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

?? jjj-start_kernel.txt

?? (系統(tǒng)初始化start_kernel函數(shù))
?? TXT
字號:
(系統(tǒng)初始化start_kernel函數(shù)) 

作者:大鷹mailto:e4gle@hackermail.com 

至于x86的引導無非如下步驟: 
1,cpu初始化自身,在固定位置執(zhí)行一條指令。 
2,這條指令條轉到bios中。 
3,bios找到啟動設備并獲取mbr,該mbr指向我們的lilo 
4,bios裝載并把控制權交給lilo 
5,壓縮內核自解壓,并把控制權轉交給解壓內核。 
簡單點講,就是cpu成為內核引導程序的引導程序的引導程序的引導程序,西西。 
這時內核將跳轉到start_kernel是/init/main.c的重點函數(shù),main.c函數(shù)很多定義都是為此函數(shù)服務的,這里 
我簡要介紹一下這個函數(shù)的初始化流程。 
初始化內核: 
從start_kernel函數(shù)(/init/main.c)開始系統(tǒng)初始化工作,好,我們首先分析這個函數(shù): 
函數(shù)開始首先: 
#ifdef __SMP__ 
static int boot_cpu = 1; 
/* "current" has been set up, we need to load it now *//*定義雙處理器用*/ 
if (!boot_cpu) 
  initialize_secondary(); 
boot_cpu = 0; 
#endif 
定義雙處理器。 
printk(linux_banner);    /*打印linux banner*/ 
打印內核標題信息。 
開始初始化自身的部分組件(包括內存,硬件終端,調度等),我來逐個分析其中的函數(shù): 
setup_arch(&command_line, &memory_start, &memory_end);/*初始化內存*/ 
返回內核參數(shù)和內核可用的物理地址范圍 
函數(shù)原型如下: 
setup_arch(char **, unsigned long *, unsigned long *); 
返回內存起始地址: 
memory_start = paging_init(memory_start,memory_end); 
看看paging_init的定義,是初始化請求頁: 
paging_init(unsigned long start_mem, unsigned long end_mem)(會在以后的內存管理子系統(tǒng)分析時詳細介 
紹) 
{ 
int i; 
struct memclust_struct * cluster; 
struct memdesc_struct * memdesc; 
/* initialize mem_map[] */ 
start_mem = free_area_init(start_mem, end_mem);/*遍歷查找內存的空閑頁*/ 
/* find free clusters, update mem_map[] accordingly */ 
memdesc = (struct memdesc_struct *) 
  (hwrpb->mddt_offset + (unsigned long) hwrpb); 
cluster = memdesc->cluster; 
for (i = memdesc->numclusters ; i > 0; i--, cluster++) { 
  unsigned long pfn, nr; 
  /* Bit 0 is console/PALcode reserved. Bit 1 is 
   non-volatile memory -- we might want to mark 
   this for later */ 
  if (cluster->usage & 3) 
  continue; 
  pfn = cluster->start_pfn; 
  if (pfn >= MAP_NR(end_mem)) /* if we overrode mem size */ 
  continue; 
  nr = cluster->numpages; 
  if ((pfn + nr) > MAP_NR(end_mem)) /* if override in cluster */ 
  nr = MAP_NR(end_mem) - pfn; 
  while (nr--) 
  clear_bit(PG_reserved, &mem_map[pfn++].flags); 
} 
memset((void *) ZERO_PAGE(0), 0, PAGE_SIZE); 
return start_mem; 
} 
trap_init();   初始化硬件中斷 
/arch/i386/kernel/traps.c文件里定義此函數(shù) 
sched_init()   初始化調度 
/kernel/sched.c文件里有詳細的調度算法(這些會在以后進程管理和調度的結構分析中詳細介紹) 
parse_options(command_line) 分析傳給內核的各種選項(隨后再詳細介紹) 
memory_start = console_init(memory_start,memory_end) 初始化控制臺 
memory_start = kmem_cache_init(memory_start, memory_end) 初始化內核內存cache(同樣,在以后的內存 
管理分析中介紹此函數(shù)) 
sti();接受硬件中斷 
kernel_thread(init, NULL, CLONE_FS | CLONE_FILES | CLONE_SIGHAND); 
current->need_resched = 1; need_resched標志增加,調用schedule(調度里面會詳細說明) 
  cpu_idle(NULL) 進入idle循環(huán)以消耗空閑的cpu時間片 
已經基本完成內核初始化工作,已經把需要完成的少量責任傳遞給了init,所身于地工作不過是進入idle循環(huán) 
以消耗空閑的cpu時間片。所以在這里調用了cpu_idle(NULL),它從不返回,所以當有實際工作好處理時,該函 
數(shù)就會被搶占。 
parse_options函數(shù): 
static void __init parse_options(char *line)/*參數(shù)收集在一條長命令行中,內核被賦給指向該命令行頭 
部的指針*/ 
{ 
char *next; 
     char *quote; 
int args, envs; 
if (!*line) 
  return; 
args = 0; 
envs = 1; /* TERM is set to 'linux' by default */ 
next = line; 
while ((line = next) != NULL) { 

        quote = strchr(line,'"'); 
        next = strchr(line, ' '); 
        while (next != NULL && quote != NULL && quote < next) { 
           
            next = strchr(quote+1, '"'); 
            if (next != NULL) { 
                quote = strchr(next+1, '"'); 
                next = strchr(next+1, ' '); 
            } 
        } 
        if (next != NULL) 
            *next++ = 0; 
  /* 
  * check for kernel options first.. 
  */ 
  if (!strcmp(line,"ro")) { 
  root_mountflags |= MS_RDONLY; 
  continue; 
  } 
  if (!strcmp(line,"rw")) { 
  root_mountflags &= ~MS_RDONLY; 
  continue; 
  } 
  if (!strcmp(line,"debug")) { 
  console_loglevel = 10; 
  continue; 
  } 
  if (!strcmp(line,"quiet")) { 
  console_loglevel = 4; 
  continue; 
  } 
  if (!strncmp(line,"init=",5)) { 
  line += 5; 
  execute_command = line; 
  args = 0; 
  continue; 
  } 
  if (checksetup(line)) 
  continue; 
  
  if (strchr(line,'=')) { 
  if (envs >= MAX_INIT_ENVS) 
   break; 
  envp_init[++envs] = line; 
  } else { 
  if (args >= MAX_INIT_ARGS) 
   break; 
  argv_init[++args] = line; 
  } 
} 
argv_init[args+1] = NULL; 
envp_init[envs+1] = NULL; 
} 

原作者:大鷹 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本二三区不卡| 欧美电影影音先锋| 亚洲欧美日韩电影| 欧美综合久久久| 日韩国产欧美在线播放| 日韩三级视频在线看| 日本一区二区成人在线| 91亚洲午夜精品久久久久久| 亚洲综合丝袜美腿| 日韩女优毛片在线| 高清日韩电视剧大全免费| 亚洲人精品午夜| 国产精品一区二区91| 亚洲天堂久久久久久久| 欧美丰满少妇xxxbbb| 久久国产综合精品| 国产精品短视频| 欧美视频一区二区在线观看| 久久91精品久久久久久秒播| 中文字幕第一区综合| 欧美亚洲图片小说| 老司机精品视频导航| 亚洲欧洲一区二区三区| 欧美日韩高清在线| 国产成人免费xxxxxxxx| 一区二区三区日韩在线观看| 日韩一级完整毛片| 国产成人av电影在线观看| 精品国产免费人成电影在线观看四季 | 久久久久久久精| 91尤物视频在线观看| 青青草视频一区| 国产精品高清亚洲| 成人三级在线视频| 婷婷综合在线观看| 欧美激情一区二区在线| 成人动漫一区二区三区| 亚洲大片精品永久免费| 91精品在线一区二区| 国产成人av在线影院| 亚洲第一激情av| 欧美国产日产图区| 91精品国产黑色紧身裤美女| 国产成人自拍网| 日韩高清在线一区| 成人免费在线视频观看| 欧美变态tickle挠乳网站| 国产精品18久久久久久vr| 亚洲成人黄色影院| 国产精品欧美一级免费| 欧美一级二级三级蜜桃| 日韩成人免费电影| 亚洲欧美一区二区久久| 久久综合五月天婷婷伊人| 国产综合色精品一区二区三区| 国产亚洲欧洲997久久综合| 欧美三级中文字幕| 成人精品电影在线观看| 久久精品国产免费| 亚洲福利视频三区| 亚洲天堂网中文字| 2欧美一区二区三区在线观看视频| 国产精品一二三| 三级在线观看一区二区| 精品盗摄一区二区三区| av一区二区不卡| 国产主播一区二区| ...av二区三区久久精品| 欧美成人三级在线| 欧美日韩亚洲综合在线| 91香蕉视频在线| 国产91精品一区二区麻豆亚洲| 一区二区成人在线| 精品国产sm最大网站| 欧美区一区二区三区| 色婷婷综合在线| 国产ts人妖一区二区| 久久精品国产久精国产爱| 中文字幕一区二区三区色视频| 欧美主播一区二区三区美女| 成人av小说网| 国产精品一线二线三线| 精品一区二区影视| 日本欧洲一区二区| 日韩精品欧美精品| 亚洲成人精品一区| 亚洲图片欧美视频| 一区二区三区精品久久久| 亚洲色欲色欲www在线观看| 中文字幕免费不卡在线| ww亚洲ww在线观看国产| 日韩精品一区国产麻豆| 日韩视频123| 日韩一区二区三免费高清| 91精品婷婷国产综合久久性色 | 日韩女优电影在线观看| 91丨porny丨在线| 成人高清免费在线播放| 国产激情一区二区三区| 国产精品一区二区久激情瑜伽| 亚洲va欧美va人人爽| 国产欧美日韩视频一区二区| 久久久久久久av麻豆果冻| 久久综合色之久久综合| 久久久久久电影| 国产欧美日韩三区| 国产精品对白交换视频| 亚洲私人黄色宅男| 亚洲伦理在线精品| 国产欧美日韩三区| 国产精品家庭影院| 欧美精品一区视频| 国产日韩亚洲欧美综合| 国产精品美女久久久久久久网站| 欧美日韩国产123区| 94-欧美-setu| 欧美在线免费观看视频| 欧美日韩在线观看一区二区 | 色综合中文综合网| 日韩精品一区二区三区四区 | 欧美在线色视频| 欧美福利视频一区| 欧美一级一区二区| 欧美精品一区二区三区视频 | 精品国产一区二区亚洲人成毛片| 欧美午夜精品久久久久久超碰| 风流少妇一区二区| 91色porny| 欧美日韩精品系列| 欧美大黄免费观看| 91精品国产91久久综合桃花| 精品国产一区二区三区不卡| 国产日韩精品一区二区浪潮av| 精品国产乱码久久久久久老虎| 91精品国产综合久久精品性色| 欧洲视频一区二区| 日韩亚洲欧美在线| 欧美另类videos死尸| 精品蜜桃在线看| 制服丝袜亚洲播放| 精品国产一区a| 国产精品福利在线播放| 亚洲国产综合视频在线观看| 久久国产精品99精品国产| 国产aⅴ综合色| 91福利视频在线| 91精品午夜视频| 国产日韩精品视频一区| 一区二区国产盗摄色噜噜| 日本亚洲三级在线| 懂色一区二区三区免费观看| 国产精品自拍毛片| 色婷婷狠狠综合| 日韩欧美一二区| 日韩美女视频一区| 色综合久久久久综合99| 日韩三级视频中文字幕| 国产精品久久毛片a| 午夜精品久久久久久久99樱桃| 亚洲一区二区中文在线| 亚洲高清免费在线| 韩国av一区二区三区在线观看| 美女尤物国产一区| 北条麻妃国产九九精品视频| 欧美乱妇15p| 国产精品久久久久久一区二区三区 | 成人精品小蝌蚪| 欧美精品久久99久久在免费线| 91精品国产色综合久久不卡蜜臀| 91超碰这里只有精品国产| 国产三区在线成人av| 亚洲电影一区二区三区| 国产高清不卡二三区| 欧美老肥妇做.爰bbww视频| 国产精品丝袜在线| 美女视频黄 久久| 一本一道久久a久久精品综合蜜臀| 欧美性受xxxx黑人xyx性爽| 久久久久久久久岛国免费| 国产精品久久久久久久第一福利| 国产精品麻豆一区二区| 免费在线观看成人| 色综合欧美在线视频区| 久久色在线观看| 日韩中文字幕91| 91一区二区在线观看| 久久久亚洲午夜电影| 国产精品理伦片| 亚洲国产精品综合小说图片区| 美女视频免费一区| 欧美视频一区二区三区| 国产精品美女久久久久av爽李琼| 亚洲免费观看高清完整版在线| 亚洲成人福利片| 99国产一区二区三精品乱码| 精品久久久久久亚洲综合网| 性做久久久久久免费观看| 色综合久久天天| 中文一区一区三区高中清不卡| 一区二区三区免费|