當前位置:首頁 » 操作系統 » linux的bootloader

linux的bootloader

發布時間: 2023-01-04 19:56:21

Ⅰ 請問bootloader、u-boot和linux內核的區別和關系是怎樣的麻煩哪位大俠給小弟指導指導。。

bootloader是取代mbr功能的,可以看成mbr的加強.u-boot是把usb盤做成啟動盤的,linux內核就是linux系統的核心,你用的linux就是在內核基礎上擴展了shell和應用程序.

Ⅱ linux系統是從bootloader開始執行的嗎

看你用的是啥引導了,有lilo,有grub,都是載入內核……
前者是編輯文件以後,執行lilo,就把引導部分加在……比如是盤的引導位置,引導系統會去載入,然後找到內核……
後者,載入grub,根據list文件找到內核並載入之;uefi的話,一系列,一樣的玩意……

Ⅲ bootloader

ARM Linux啟動流程大致為:bootloader ---->kernel---->root filesystem。bootloader 是一上電就拿到cpu 的控制權的,而bootloader實現了硬體的初始化,為kernel的運行創造好條件。

那麼bootloader一般都會做些什麼

/ ====================================================== /

實現細節

工作在啟動載入模式時,uboot會自動執行bootcmd命令,

比如:

uboot首先把內核鏡像拷貝到內存地址為0x80000000的地方,然後執行bootm 0x80000000命令。

bootm命令實際上調用的是do_bootm_linux函數:

內核調用函數:theKernel (0,bd->bi_arch_number, bd->bi_boot_params);

the kernel其實不是個函數,而是指向內核入口地址的指針,把它強行轉化為帶三個參數的函數指針,會把三個參數保存到通用寄存器中,實現了向kernel傳遞信息的功能,在這個例子里,會把R0賦值為0,R1賦值為機器號 R2賦值為啟動參數數據結構的首地址。

這里的machine id,是讓內核知道是哪個CPU,從而調用對應的初始化函數。

繼續深入

1、需要在設備樹文件中聲明,單板需要什麼樣的machine_desc,(可以是一系列的字元串,kernel會從左到右匹配這些字元串,一直找到匹配的為止);

2、kernel中需要表明每個machine_desc需要表明它能支持哪些單板,用字元串表明支持哪些單板。

MACHINE_START和 MACHINE_END實際上被展開成一個結構體

3、 kernel有多個machine_desc跟設備樹文件dts中的compatible 吻合,選擇哪個?
設備樹文件dts中compatible(屬性值)從左到右的屬性值與kernel中的machine_desc結構體中的dt_compat成員進行比較,匹配成功之後就不會再進行匹配(設備書的屬性值從左右匹配優先順序依次降低)。

從內核的第一個執行文件head.S開始分析

start_kernel的調用過程如下:

注意:

C語言中的變數在匯編語言中出現,變數名表示的是變數的地址

Ⅳ 關於LINUX的問題,GRUB,bootloader,LILO到底有什麼區別

Boot Loader只是一個概念,代表引導裝載程序的意思,操作系統必須要有Boot Loader才能載入操作系統的內核;而LILO和grub都是都是實實在在的、使用廣泛的引導裝載程序,只不過Lilo這個程序太老了,現在的各種Linux發行版都很少用了,現在使用最廣泛的是grub、grub2這個引導裝載程序。

Ⅳ Linux( bootloader)啟動操作系統過程

Linux Booting Process:
(1) BIOS
功能:執行計算機系統完整性檢測;通電自檢;搜索/載入/執行 boot loader程序。
一旦 boot loader 程序被探測到,並且載入到內存,BIOS會把控制權交給它。
(2) MBR
MBR位於引導盤(Bootable Disk)的第一個扇區(512B)。
通常是在 /dev/sda 或者 /dev/hda 。

注意:引導盤(bootable disk)和引導分區(bootable partition)的區別。

(3) GRUB
GRUB = Grand Unified Bootloader

如果在系統中安裝有多個內核鏡像,你可以選擇某一個被執行。
GRUB展示了一個啟動畫面,等待幾秒,如果你不輸入任何字元,它將會按照grub配置文件的規定載入默認的內核鏡像。

Grub配置文件在: /boot/grub/grub.conf
它包含了內核和initrd.img

(4) Kernal
(注意Kernal和kernel不一樣)

Kernal按照grub.conf文件的規定,掛載根文件系統。
一旦kernal啟動,它第一件事情就是執行:sbin/init 進程。

initrd是被kernel用做臨時根文件系統,直到Kernal掛載了根文件系統。

(5) INIT(Initilization)

根據 /etc/inittab 文件決定Linux運行層級,運行級別決定了哪個初始化程序(Initial Programs)被載入到啟動項。

(6) Run Level

根據你的運行級別的設定,操作系統會執行下來對應的文件夾下的程序:

Linux的7個運行級別(Run levels):

標準的Linux運行級別為3或者5,如果是3的話,系統就在多用戶狀態;如果是5的話,則是運行著XWindow系統。不同的運行級別有著不同的用處,也應該根據自己的不同清晰來設置。例如,如果丟失了root口令,那麼可以讓機器啟動進入單用戶模式來設置。

如果是使用S(Start)開頭的程序,那麼是用在啟動的時候,
如果是使用K(Kill)開頭的程序,那麼是用在關機的時候。

Ⅵ linux的內核是由bootloader裝載到內存中的

linux的內核的確是由bootloader裝載到內存中的。linux的bootloader有2個部分組成:bootstrap和uboot。所以更准確點的說法是:linux的內核是由uboot裝載到內存中的。內核文件本身是存放在硬碟的文件系統中,這句話就是錯的。內核和文件系統是分開存儲的。uboot讀取kernel到內存是從kernel開始存儲的地址開始讀取的,而讀取開始位置和讀取大小,是由環境變數決定的。所以這個時候不需要文件系統的。

給你張圖片,便於理解吧。這張圖片是bootstrap、uboot、環境變數、kernel、文件系統在nandflash裡面的存儲分布。

其中rootfs.jfss2就是文件系統。

Ⅶ 什麼是嵌入式Linux的Bootloader的移植

1、BootLoader能初始化硬體設備、建立內存空間映射圖,從而將系統的軟硬體環境帶到一個合適狀態,以便為最終調用操作系統內核准備好正確的環境。
2、移植是根據目標板的特徵對Uboot或vivi等bootloader進行針對性的修改,使之能夠在目標板上發揮應有的作用,初始化一些必要的外圍設備。
3、bootloader的移植是嵌入式系統移植流程中的第一部分(除硬體之外),此後還有內核移植,根文件系統的製作,應用程序的開發與移植。
不知道滿意否

Ⅷ 怎麼刪除linux操作系統

有網友咨詢我“我的伺服器是linux系統,我不知道弄那了,現在 不能啟動 了,我想把這個系統刪了,請問怎麼刪啊”那麼怎麼刪除linux 操作系統 呢?接下來大家跟著我一起來了解一下刪除linux操作系統的解決 方法 吧。

刪除linux操作系統方法

如果你想將Linux從機器中刪除,只保留Windows,你需要進行以下幾步操作:

從開始菜單(或開始屏幕)找到“Disk Management”(磁碟管理工具)並啟動.

找到Linux分區。在Windows下無法識別Linux分區,所以,你需要按照驅動器和分區大小去判斷,確認好以後繼續下面的步驟。

右鍵選好的分區,然後選擇“刪除卷”,這將會把分區刪除成自由空間,如果你再選擇自由空間,選擇刪除卷,就會變成未分配空間。

在Windows分區上右鍵,選擇“擴展卷”,擴展它以填補刪除Linux所留下的自由空間。

最後,插入Windows恢復光碟(或恢復USB驅動器),並從它啟動。選擇“修復計算機”,去“疑難解答”,然後輸入一個命令提示符。鍵入以下命令

bootrec.exe /fixmbr

這將刪除Linux的bootloader和恢復Windows'。

重新啟動你的電腦,你會發現,它直接引導進入Windows,不會有Linux分區。

如果你設置了雙啟動不同或把一個單獨的硬碟驅動器上的Linux,又或者有其他的操作系統在驅動器上的,操作方式可能會略有不同。但對於大多數人來說,這些指令就足夠了。

linux操作系統怎樣清除垃圾

tmp目錄下是用戶的臨時文件,可將不需要的直接用rm命令刪除。 另外,也可以使用以下方法對linux系統進行清理。1)清理升級緩存以及無用包;sudo apt-get autocleansudo apt-get cleansudo apt-get autoremove

2)清理opera/firefox緩存文件;ls ~/.opera/cache4|xargs rm -fls ~/.mozilla/firefox/*.default/Cache|xargs rm -f

3)清理Linux下孤立的包;圖形界面下我們可以用:gtkorphansudo apt-get install gtkorphan -y終端命令下我們可以用:deborphansudo apt-get install deborphan -y

4)刪除多餘的內核;打開終端敲命令:dpkg --get-selections|grep linux有image的就是內核文件;刪除老的內核文件:sudo apt-get remove 內核文件名 (例如:linux-image-2.6.27-2-generic)內核刪除,釋放空間了,應該能釋放130-140M空間。最後看看當前內核:uname -a

5)清空某個目錄下所有log日誌;for i in `ls *.log*`docat /dev/null >$idone

附錄:臨時文件目錄:/var/cache/apt/archives未下載完目錄:/var/cache/apt/archives/partial

熱點內容
簡述ftp伺服器的功能 發布:2025-05-11 05:44:27 瀏覽:846
安卓手機攝像頭連接雲存儲 發布:2025-05-11 05:10:52 瀏覽:34
瑞虎三都有哪些配置 發布:2025-05-11 05:05:08 瀏覽:950
mc非正版伺服器怎麼做 發布:2025-05-11 05:04:54 瀏覽:308
安卓手機九宮格忘記密碼怎麼解 發布:2025-05-11 05:00:30 瀏覽:595
安卓手機拼多多怎麼解綁銀行卡 發布:2025-05-11 05:00:25 瀏覽:686
校園網可以搭建伺服器地址 發布:2025-05-11 04:54:40 瀏覽:785
noip演算法 發布:2025-05-11 04:53:51 瀏覽:50
有什麼我的世界伺服器啟動器 發布:2025-05-11 04:50:41 瀏覽:296
寫shell腳本 發布:2025-05-11 04:37:41 瀏覽:935