九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
引導(dǎo)過程
grub等引導(dǎo)程序開始引導(dǎo)Linux系統(tǒng),當(dāng)引導(dǎo)程序成功完成引導(dǎo)任務(wù)后,Linux從它們手中接管了CPU的控制權(quán),然后 CPU就開始執(zhí)行Linux的核心映象代碼,開始了Linux啟動(dòng)過程。這里使用了幾個(gè)匯編程序來引導(dǎo)Linux,這一步涉及到Linux源代碼中的 “arch/i386/boot”下的這幾個(gè)文件:bootsect.S、setup.S、video.S等。

  其中bootsect.S是生成引導(dǎo)扇區(qū)的匯編源碼,它完成加載動(dòng)作后直接跳轉(zhuǎn)到setup.S的程序入口。setup.S的主要功能就是將系 統(tǒng)參數(shù)(包括內(nèi)存、磁盤等,由BIOS返回)拷貝到特別內(nèi)存中,以便以后這些參數(shù)被保護(hù)模式下的代碼來讀取。此外,setup.S還將video.S中的 代碼包含進(jìn)來,檢測和設(shè)置顯示器和顯示模式。最后,setup.S將系統(tǒng)轉(zhuǎn)換到保護(hù)模式,并跳轉(zhuǎn)到 0x100000。

  那么0x100000這個(gè)內(nèi)存地址中存放的是什么代碼?而這些代碼又是從何而來的呢?

  0x100000這個(gè)內(nèi)存地址存放的是解壓后的內(nèi)核,因?yàn)镽ed Hat提供的內(nèi)核包含了眾多驅(qū)動(dòng)和功能而顯得比較大,所以在內(nèi)核編譯中使用了“makebzImage”方式,從而生成壓縮過的內(nèi)核,在RedHat中內(nèi) 核常常被命名為vmlinuz,在Linux的最初引導(dǎo)過程中,是通過"arch/i386/boot/compressed/"中的head.S利用 misc.c中定義的decompress_kernel()函數(shù),將內(nèi)核vmlinuz解壓到0x100000的。

  當(dāng)CPU跳到0x100000時(shí),將執(zhí)行"arch/i386/kernel/head.S"中的startup_32,它也是vmlinux 的入口,然后就跳轉(zhuǎn)到start_kernel()中去了。start_kernel()是"init/main.c"中的定義的函 數(shù),start_kernel()中調(diào)用了一系列初始化函數(shù),以完成kernel本身的設(shè)置。start_kernel()函數(shù)中,做了大量的工作來建立 基本的Linux核心環(huán)境。如果順利執(zhí)行完start_kernel(),則基本的Linux核心環(huán)境已經(jīng)建立起來了。

  在start_kernel()的最后,通過調(diào)用init()函數(shù),系統(tǒng)創(chuàng)建第一個(gè)核心進(jìn)程,啟動(dòng)了init過程。而核心進(jìn)程init()主要 是來進(jìn)行一些外設(shè)初始化的工作的,包括調(diào)用do_basic_setup()完成外設(shè)及其驅(qū)動(dòng)程序的加載和初始化。并完成文件系統(tǒng)初始化和root文件系 統(tǒng)的安裝。

  當(dāng)do_basic_setup()函數(shù)返回init(),init()又打開了/dev/console設(shè)備,重定向三個(gè)標(biāo)準(zhǔn)的輸入輸出文件 stdin、stdout和stderr到控制臺,最后,搜索文件系統(tǒng)中的init程序(或者由init=命令行參數(shù)指定的程序),并使用 execve()系統(tǒng)調(diào)用加載執(zhí)行init程序。到此init()函數(shù)結(jié)束,內(nèi)核的引導(dǎo)部分也到此結(jié)束了

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux 內(nèi)存管理系統(tǒng):初始化
linux mips啟動(dòng)分析 - MIPS技術(shù)及應(yīng)用社區(qū)
Linux 2.4 內(nèi)核說明文檔(引導(dǎo)篇)
uClinux在S3C4510上的啟動(dòng)分析(轉(zhuǎn))
Linux 引導(dǎo)過程內(nèi)幕
圖解linux啟動(dòng)過程
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服