<strike id="xh1ss"><address id="xh1ss"></address></strike>
  1. <legend id="xh1ss"></legend>
  2. 更多課程 選擇中心

    嵌入式培訓
    達內IT學院

    400-111-8989

    嵌入式Linux系統啟動過程詳解

    • 發布:嵌入式培訓
    • 來源:嵌入式教程
    • 時間:2019-10-22 16:04

    當前嵌入式的發展是非常的火爆,那么嵌入式上的linux和PC上有什么區別大多數人還不明白。我們知道PC上基本是window占到了主導地位,在PC上linux使用場景少之又少,但是不知道大家發現沒有除了研發領域或個人電腦領域window占據了絕大多數市場,但是在服務器領域,linux系統占據了大部分市場,但是還是有很多人對這個不是很了解。嵌入式linux的啟動流程詳細講解給大家,首先看一下嵌入式和PC的差異。

    首先PC得益于強大的intel x64 x86處理器,即我們常見的i7 i5,運算和處理能力超級強,是任何嵌入式設備無法比擬的的。大名鼎鼎的驍龍835需要幾個CPU組合一起才能抵得上一個老舊的i3處理器,所以在PC上cpu RAM 和存儲設備都可以認為是異常強大的,對嵌入式設備來說就是”海量”。 我們來看一下嵌入式設備的配置,手機基本上算是最強大的嵌入式設備的,性能根本無非和PC媲美,但一般的嵌入式設備配置要和手機差得太遠,比如我們網上買的一個家庭安防攝像頭,里面跑了一套linux系統,他的物理配置是什么? 400MHZCPU,100MBRAM,和64MB-flash!!!!沒錯,太低端了。所以嵌入式上的軟件遠不能和PC軟件進行比較。

    嵌入式上linux和PC上的linux有什么區別??

    首先兩套系統都是同一分源碼編譯而來的,所不同的是,嵌入式對源碼進行了大量的裁剪,即刪除了大量用不到和很少用的功能,同時對很多功能進行簡化,是linux系統能在很低的配置上運行起來,還必須節省資源以滿足其他軟件的運行。所以嵌入式軟件開發和PC身上最大的一個差異就是節省,節省在節省。

    我們看一下PCwindow的啟動流程:首先開機的時候,會出現黑屏白字的界面,這是我們熟知的bios,接下來會出現絢麗的window啟動界面,最后windos啟動成功,然后window系統會從C盤尋找需要開機啟動的應用程序,執行啟動結束。我們總結一下,整個過程分為三分部,第一部分是bios屬于bootloard的一種,第二部分是window,即操作系統,第三部分屬于應用啟動,而應用存放在磁盤/文件系統中。即 bootloader->os->filesystem。

    同樣在嵌入式上也遵守三大件套路,只是嵌入式養不起bios這個龐然大物(100M),所以嵌入式選擇u-boot作為其bootloader, u-boot大小只有200KB左右,功能基本滿足使用,所以嵌入式上使用u-boot最多。第二階段是操作系統,嵌入式上肯定是linux系統了。第三階段,即 linux啟動完成會讀取filesystem,執行一些開機應用,整個系統結束。

    那么u-boot是如何跳轉到linux系統呢? 首先u-boot將linux os代碼拷貝到指定的RAM地址,然后執行 MOV PC addr,即完成了CPU的指令切換,下一跳指令即開始運行linux的起始位置。 Linux第一條指令必須是匯編代碼,因為C語言無法指令是編譯器進行分配,不能將特定的指令放在特定的位置(比如起始位置); 但是因為匯編的復雜和難懂,所以匯編代碼要盡可能的少,盡可能快的跳轉到C去執行。 但是C需要堆棧環境,這一點匯編必須提前做好,然后就是C的天下了。

    一個設備,硬件可以分為兩部分,第一部分是CPU,第二部分是外設。那么應該縣初始化哪一個呢?答案是CPU。 接下來要針對CPU進行初始化,不同的CPU初始化方式不一樣,要跳轉到不同的CPU代碼中去執行。 初始化CPU之后就會進行一些核心的外設初始化,比如串口 ,但是不忙著顯示屏 網卡的初始化,因為不需要他們linux也能工作。接下來會進行進程的創建 中斷初始化 定時器初始化 等linux系統核心功能的初始化,這么都是軟件層面上的功能,這PC上linux是一致的。

    最后linux會啟動第一個進程,init進程,他是一個用戶進程,init進程是所以進程的父類。init進程執行什么動作呢?他會讀取/etc/init。d/rcS配置文件,該配置文件描述了有哪些開機需要指定的任務或者應用。 要注意,嵌入式上的linux使用的文件系統和Ubuntu redhat是不一樣的,嵌入式上的filesystem是經過極度精簡的,很多命令都是簡化版,使用方式不一定和PC上系統,但是功能是滿足你的需要。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:嵌入式學習中動態內存和靜態內存如何選擇?
    下一篇:嵌入式內存管理之交換空間swap的使用

    裸編程怎么做?裸編程具體做法

    嵌入式編程中你必須知道的小知識

    嵌入式C語言編程小知識總結

    有哪些工具可以讓嵌入式開發事半功倍?

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    黄色一级全祼,欧美一级aa片,一级毛卡片,一级特黄大片,三级片视频 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>