久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 學習資源 > 講師博文 > 一文讀懂linux系統啟動過程

一文讀懂linux系統啟動過程 時間:2024-01-10      來源:華清遠見

講linux啟動過程前,我們先來聊一些背景知識:

 Linux系統的線性地址中,0xA0000以上是用于圖形接口和BIOS的內存,0xA0000以下的基本內存中,開頭64KB是保留給BIOS和Linux內核引導的。因此,實際可用于內核映象的空間是508KB。內核映象是經過壓縮的,可以生成小映象(zImage)或大內核(bzImage)。bzImage因為太大,會裝載在地址為0x100000(1MB)的地方。無論哪種映象,解除壓縮后的內核映象總是放在地址為0x100000(1MB)的地方。

接下來我們聊聊Linux系統啟動過程:

1. 加載BIOS:BIOS是計算機硬件和軟件的接口,當計算機打開電源后,Linux啟動的第一步是BIOS加載。嵌入式產品中,這是一段系統引導程序,比較常見的是bootloader。

 主要任務包括:硬件基本初始化、自搬移到內存、搬移內核到內存、搬移設備樹到內存、傳遞內核啟動參數

2. 加載內核(kernel):內核自解壓:內核在加載到內存后,首先會進行自解壓,確保內核代碼正確地展開。

a. 內核合法性檢測:內核代碼會對CPU類型和機器類型進行檢測,確保內核與目標硬件兼容。

b. 內核C部分運行:內核的C部分代碼開始執行,這是內核的主要功能部分。

c. CPU、機器參數安裝:內核會根據硬件配置安裝CPU和機器參數。

d. 初始化硬件:內核會初始化中斷、定時、終端、內存等最基本的硬件組件。

e. 創建核心進程:內核會創建一個核心進程,這是系統中的第一個進程,用于執行多任務調度。

3. 掛載rootfs:掛載文件系統 (mount_root) 

4. 運行應用程序:內核加載完畢后,會啟動Linux系統中的第一個進程,即init進程。init進程的作用是設定Linux的啟動等級。init進程是所有進程的起點,如果不啟動init進程,其余所有進程都無法啟用。Linux系統所有的進程都是init進程的子進程。系統開機過程中,許多程序需要開機啟動,這些程序在Windows系統中被稱為“服務”,而在Linux系統中被稱為“守護進程”。系統初始化主要通過rc.sysinit來進行,rc執行完畢后返回init。基本系統環境設置好,各種守護進程也已經啟動。init會打開6個終端,以便用戶登錄系統。

上一篇:menuconfig和Kconfig介紹

下一篇:STM32如何配置HAL庫

戳我查看嵌入式每月就業風云榜

點我了解華清遠見高校學霸學習秘籍

猜你關心企業是如何評價華清學員的

干貨分享
相關新聞
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2024 北京華清遠見科技發展有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部