万博手机注册登录

  • <meter id="njpfy"><ol id="njpfy"></ol></meter>
    <input id="njpfy"><ol id="njpfy"></ol></input>
    <acronym id="njpfy"></acronym>
    1. <acronym id="njpfy"></acronym>
    <var id="njpfy"><ol id="njpfy"></ol></var>
    <meter id="njpfy"></meter>
    <label id="njpfy"><legend id="njpfy"></legend></label>
  • 電子發燒友網 > 嵌入式技術 > 嵌入式操作系統 > 正文

    嵌入式Linux啟動時間優化的秘密之四-啟動腳本

    2020年04月21日 09:22 ? 次閱讀

      本文主要講述嵌入式Linux啟動時間優化的秘密,我們繼續上篇沒有講完的嵌入式Linux啟動時間優化方法,本文主要會講啟動腳本。想看上一篇的請查看本文結尾的鏈接。

      啟動腳本

      1.優化初始化腳本和系統啟動

      有多種方法可以減少啟動應用程序之前執行啟動腳本中花費的時間:

      僅在啟動必要的依賴項之后,盡快啟動應用程序。

      簡化shell腳本

      可以嘗試執行啟動腳本之前啟動應用程序

      1.1.bootchart

      如果想更詳細地了解用戶區的引導順序,則可以使用使用grabserial中的bootchart來實現,例如:

     

      那么如何配置并使用bootchart 呢?

      在busybox中配置使用bootchartd(CONFIG_BOOTCHARTD = y)

      通過命令行init = / sbin / bootchartd 引導您的開發板

      將/var/log/bootlog.tgz從目標復制到開發主機

      生成時間表:

      cd bootchart-《version》

      java -jar bootchart.jar bootlog.tgz

      bootchart 參見 http://www.bootchart.org

      1.2. systemd

      如果將systemd用作初始化程序,則可以使用systemd-analyze。

      http://www.freedesktop.org/software/systemd/man/systemd-analyze.html

      1.3. init 進程

      在所有依賴項啟動之后,應盡快啟動:

      取決于您的init進程。在這里,我們假設使用sysV init腳本。

      init腳本按字母數字順序運行,并以字母開頭(K表示停止(殺死),S表示開始)。

      將應用程序啟動腳本使用最小的號碼。

      甚至可以用應用程序替換init!如果可以成為第一個啟動的應用程序,啟動速度無疑大大加快!

      直接通過一個啟動腳本啟動所有服務(例如/etc/init.d/rcS)。這消除了對/ bin / sh的多次調用。

      甚至可以直接在應用程序的C代碼中掛載文件系統:如

      1.4 減少fork的使用

      fork/exec系統調用開銷很大。故從Shell調用可執行文件的速度很慢。

      即使BusyBox實現的shell中echo也會導致fork 系統調用!

      在BusyBox配置中選擇Shells-》 Standalone shell,以使Shell盡可能調用小程序。

      管道和反引號也由fork/exec實現。應減少它們在腳本中的使用。例:

      cat /proc/cpuinfo | grep model

      應修改為:

      grep model /proc/cpuinfo

      更詳細,請參考:

      http://elinux.org/Optimize_RC_Scripts

      又例如:

     

      僅此一項優化就可以在ARM AT91SAM9263系統(200MHz)上節省87毫秒!

      1.5 減小固件的尺寸

      剝離可執行文件和庫,刪除僅用于開發和調試的ELF部分。strip命令由交叉編譯工具鏈提供。默認情況下在Buildroot中完成的。

      superstrip超級剝離

      http://muppetlabs.com/~breadbox/software/elfkickers.html。

      使用strip可以剝離出Linux未用于啟動可執行文件的更多位。Buildroot停止支持它,因為它可能破壞可執行文件。 僅在保存一些字節至關重要時才嘗試。

      還可以嘗試https://packages.debian.org/sid/mklibs上提供的mklibs:

      mklibs產生精簡的共享庫,其中僅包含一組特定的可執行文件所需的例程。對于像OpenGL和QT這樣的大型庫確實很有用。它甚至可以在沒有源代碼的情況下工作。

      在Yocto中可用,但在Buildroot中不可用(2019.02狀態)。

      限制:mklibs可以刪除傾斜的庫(由應用程序“手動”加載),因為它看不到它們。

      3.5.5 快速啟動畫面顯示

      可以使用fbv顯示啟動畫面,

      http://freshmeat.sourceforge.net/projects/fbv

      使用armel,可以只使用我們的靜態編譯二進制文件:

      https://github.com/bootlin/staTIc-binaries/tree/master/fbv/

      但是在MicrochipAT91SAM9263系統上很慢為878毫秒!

      為了更快地執行此操作,可以轉儲幀緩沖區framebuffer中的內容:

      fbv -d 1/root/logo.bmp

      cp /dev/fb0/root/logo.fb

      lzop -9/root/logo.fb

      然后盡早在initramfs中將其復制回:

      lzopcat/root/logo.fb.lzo 》 /dev/fb0

      編輯連載推薦:嵌入式Linux啟動時間優化的秘密之一工具鏈/應用程序優化

      編輯連載推薦:嵌入式Linux啟動時間優化的秘密之二文件系統

      編輯連載推薦:嵌入式Linux啟動時間優化的秘密之三-內核

    下載發燒友APP

    打造屬于您的人脈電子圈

    關注電子發燒友微信

    有趣有料的資訊及技術干貨

    關注發燒友課堂

    鎖定最新課程活動及技術直播

    電子發燒友觀察

    一線報道 · 深度觀察 · 最新資訊
    收藏 人收藏
    分享:

    評論

    相關推薦

    楊哥:linux云計算系列:大型網站高并發架構運維實戰

        Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服
    發燒友學院發表于 2017-12-13 00:00? 25521次閱讀
    楊哥:linux云計算系列:大型網站高并發架構運維實戰

    嵌入式Linux啟動時間優化的秘密之五-Boot...

    本文主要講述嵌入式Linux啟動時間優化的秘密,我們繼續上篇沒有講完的嵌入式Linux啟動時間優化方....
    發表于 2020-04-21 17:24? 0次閱讀
    嵌入式Linux啟動時間優化的秘密之五-Boot...

    紐約理工學院溫哥華分?;诟咴瓢雽w安全FPGA...

    紐約理工學院(NYiT)溫哥華分校與高云半導體 SecureFPGAs合作開發了解決方案,并將其作為....
    發表于 2020-04-21 11:27? 23次閱讀
    紐約理工學院溫哥華分?;诟咴瓢雽w安全FPGA...

    MGC3130對Linux機器的價值接收

    購買新的MGC31 30,并使用Linux機器進行開發活動。請讓我知道如何將MGC3130與Linux系統接口。我試過將MGC3...
    發表于 2020-04-21 11:08? 24次閱讀
    MGC3130對Linux機器的價值接收

    嵌入式的系統特點

    1)可裁剪性。支持開放性和可伸縮性的體系結構。 2)強實時性。EOS實時性一般較強,可用于各種設備控制中。 3)統一...
    發表于 2020-04-21 10:39? 104次閱讀
    嵌入式的系統特點

    嵌入式系統開發流程

    嵌入式系統開發流程方法/步驟1:建立開發環境,操作系統一般使用Redhat Linux,選擇定制安裝或全部安裝,通過網絡下載...
    發表于 2020-04-21 10:35? 106次閱讀
    嵌入式系統開發流程

    嵌入式開發一般流程

    本文系轉載,https://blog.csdn.net/a445849497/article/details/70309508 最近看到一篇文章,可以用來作為產品開發...
    發表于 2020-04-21 10:34? 103次閱讀
    嵌入式開發一般流程

    學習嵌入式開發要學習哪些知識?

    嵌入式Linux操作系統學習規劃 ARM+LINUX路線,主攻嵌入式Linux操作系統及其上應用軟件開發目標: (1)...
    發表于 2020-04-21 10:31? 101次閱讀
    學習嵌入式開發要學習哪些知識?

    明遠智睿IMX8MMini應用領域及參數特性介紹

    i.MX8M Mini應用處理器是一種性價比超高的多核處理器,適用于5G通信系統、高級圖形、成像、機器視覺、音頻、語...
    發表于 2020-04-21 09:34? 47次閱讀
    明遠智睿IMX8MMini應用領域及參數特性介紹

    在兩個不同的Windoz 7機器上

    在兩個不同的Windoz 7機器上,但是在NOT和Ubuntu 16.04Linux上,在啟動IFF時,我得到一個例外,至少有一個項...
    發表于 2020-04-21 09:23? 10次閱讀
    在兩個不同的Windoz 7機器上

    Linux下SD卡啟動進入不了U-BOOT命令行

    開發板是TI 的omapl138(LCDK),SD卡是板子自帶的,有BOOT ,FILESYSTEM分區。   &nb...
    發表于 2020-04-21 08:32? 21次閱讀
    Linux下SD卡啟動進入不了U-BOOT命令行

    開發板和電腦連接必須要用仿真器嗎?

    我用的是TI公司的OMAPL138(LCDK)開發板,筆記本電腦,XDS100V2仿真器 1   在Linux下調試是...
    發表于 2020-04-21 07:53? 20次閱讀
    開發板和電腦連接必須要用仿真器嗎?

    嵌入式Linux啟動時間優化的秘密之三-內核

    本文主要講述嵌入式Linux啟動時間優化的秘密之三-內核,我們繼續上篇沒有講完的嵌入式Linux啟動....
    發表于 2020-04-20 18:09? 117次閱讀
    嵌入式Linux啟動時間優化的秘密之三-內核

    EmStat Pico:支持軟件運行的嵌入式小型...

    本文詳細介紹了以下三種不同的電化學測量,表明可輕松地將該器件集成到系統中,并示范說明了恒電勢器模塊的....
    發表于 2020-04-20 15:47? 93次閱讀
    EmStat Pico:支持軟件運行的嵌入式小型...

    如何編寫嵌入式Linux設備驅動程序?

    一、Linux device driver 的概念 系統調用是操作系統內核和應用程序之間的接口,設備驅動程序是操作系統內核和機...
    發表于 2020-04-20 09:57? 228次閱讀
    如何編寫嵌入式Linux設備驅動程序?

    Linux為什么無法取代Windows

    Linux系統誕生二十多年了,全球幾百萬開發者維護并使用Linux,堪稱全人類智慧的結晶。為什么卻始....
    發表于 2020-04-18 11:46? 382次閱讀
    Linux為什么無法取代Windows

    傳統服務器與云服務器到底有什么區別

     指實實在在、存在的硬件專用獨立主機或服務器設備,性能和穩定性都比較強,因此,價格也相對比較昂貴,需....
    發表于 2020-04-18 11:34? 274次閱讀
    傳統服務器與云服務器到底有什么區別

    如何使用Linux設備驅動程序點亮LED

    特別說明:第一個步驟和第二個步驟我將直接跳過(查看原理圖和芯片手冊),因為這兩者取決于我們的硬件平臺....
    發表于 2020-04-18 10:25? 221次閱讀
    如何使用Linux設備驅動程序點亮LED

    LINUX最全的命令行詳細概述

    監聽端口 ss -tlnp 查看哪些進程使用了監聽端口 防火墻 systemctl....
    發表于 2020-04-18 10:25? 336次閱讀
    LINUX最全的命令行詳細概述

    嵌入式汽車電子系統的新設計挑戰與解決方案

    第一代防夾設計通常包含一套由電動馬達驅動的機械驅動系統。馬達電流由一顆控制器監測,然后與代表失速狀態....
    發表于 2020-04-18 10:02? 106次閱讀
    嵌入式汽車電子系統的新設計挑戰與解決方案

    文件的Linux常用命令的相關知識概述

    我們知道 Linux 下有非常多的命令,我們可以通過這些命令在 Shell 環境下與機器進行交互,那....
    發表于 2020-04-18 09:59? 202次閱讀
    文件的Linux常用命令的相關知識概述

    基于S3C2410A微處理器實現嵌入式GPS導航...

    系統平臺的建立主要包括兩部分,即宿主機(PC機)上操作系統的選擇和交叉編譯器工具鏈的建立。
    發表于 2020-04-18 09:29? 75次閱讀
    基于S3C2410A微處理器實現嵌入式GPS導航...

    linux系統POS嵌入式數據庫如何去構建

    SQLite作為一個嵌入式的數據庫,主要的是程序?。?00多K),速度快,支持ANSISQL-92的....
    發表于 2020-04-17 14:42? 85次閱讀
    linux系統POS嵌入式數據庫如何去構建

    嵌入式芯片是如何改變的

    Secure Vault能夠利用當今可用于無線物聯網SoC的最先進硬件和軟件安全保護功能,幫助連網設....
    發表于 2020-04-17 14:25? 83次閱讀
    嵌入式芯片是如何改變的

    TASKING針對英飛凌第三代AURIX微控制器...

    基于現有的嵌入式軟件開發工具進行擴充,包括針對汽車安全關鍵應用的微控制器性能優化
    發表于 2020-04-17 14:23? 144次閱讀
    TASKING針對英飛凌第三代AURIX微控制器...

    第一屆openEuler峰會2020在線召開 鼓...

    2020年1月1日,華為服務器操作系統EulerOS正式開源,命名為openEuler,開源社區也正....
    發表于 2020-04-17 14:20? 234次閱讀
    第一屆openEuler峰會2020在線召開 鼓...

    怎樣實現在linux系統中對windows系統的...

    在Windows中,我們經常使用ssh,vnc等工具對Linux操作系統進行遠程控制,但是在linu....
    發表于 2020-04-17 09:52? 154次閱讀
    怎樣實現在linux系統中對windows系統的...

    深度Deepin v20操作系統正式發布 底層倉...

    繼1月份國產操作系統UOS v20版發布之后,深度的Deepin v20操作系統正式發布了,帶來了全....
    發表于 2020-04-16 14:33? 890次閱讀
    深度Deepin v20操作系統正式發布 底層倉...

    freertos與linux區別

    前者實際上是一中 amp 架構,freertos 和 linux 是相互獨立的兩個操作系統,只會進行....
    發表于 2020-04-16 09:10? 139次閱讀
    freertos與linux區別

    基于WEB服務器實現監控系統有什么不一樣的

    在提高了視頻質量的同時大大減少了數據量。相信隨著網絡視頻監控的流行,基于嵌入式WEB的網絡視頻監控系....
    發表于 2020-04-16 08:55? 97次閱讀
    基于WEB服務器實現監控系統有什么不一樣的

    基于RFID的嵌入式系統是如何實現的

    本手持機主要支持IS014443A協議的射頻卡的讀寫,此射頻卡目前已經被廣泛使用。
    發表于 2020-04-15 15:37? 86次閱讀
    基于RFID的嵌入式系統是如何實現的

    基于WEB技術與嵌入式技術實現對設備的控制與診斷

    基于以太網的單片機設備的控制與診斷結合先進的WEB技術與嵌入式技術,實現了PC與設備的直接跨平臺的信....
    發表于 2020-04-15 10:18? 88次閱讀
    基于WEB技術與嵌入式技術實現對設備的控制與診斷

    基于ARM、WiFi和藍牙嵌入式技術實現農田生產...

    傳統的農田信息監測主要靠農業技術人員實地現場采集數據、A/D轉換、通過PC保存分析數據,或者通過數傳....
    發表于 2020-04-15 09:07? 147次閱讀
    基于ARM、WiFi和藍牙嵌入式技術實現農田生產...

    Linux為程序員添加了怎樣的準則

    LINUX下用的各種程序,和WINDOWS一樣,開發LINUX本身,以及LINUX下的設備驅動。
    發表于 2020-04-14 15:14? 63次閱讀
    Linux為程序員添加了怎樣的準則

    基于嵌入式操作系統與Internet網絡實現智能...

    首先給出了基于Web服務器的嵌入式網絡智能控制系統的體系結構;然后,設計了軟件系統,并給出了嵌入式網....
    發表于 2020-04-14 10:02? 100次閱讀
    基于嵌入式操作系統與Internet網絡實現智能...

    LINUX系統為什么普及的程度不理想

    Linux桌面版推廣不起來主要是應用生態系統無法構建,就拿國內來講,安裝一個Linux系統里面常見的....
    發表于 2020-04-13 16:39? 77次閱讀
    LINUX系統為什么普及的程度不理想

    基于DS5002和接口芯片DS8007實現智能卡...

    智能卡在今天快節奏的經濟生活中已經無處不在,它將逐步代替以磁條貯存帳戶信息的付費卡。智能卡通常制作成....
    發表于 2020-04-13 09:59? 123次閱讀
    基于DS5002和接口芯片DS8007實現智能卡...

    基于OCP技術總線的OCI解決方案的應用分析

    MIPS 科技公司攜手其他業內領先的嵌入式處理器與 IP 開發商,決定共同采用開放式芯片協議(OCP....
    發表于 2020-04-13 09:48? 90次閱讀
    基于OCP技術總線的OCI解決方案的應用分析

    PS/2接口協議的的嵌入式軟件編程及應用分析

    一般,具有五腳連接器的鍵盤稱之為AT鍵盤,而具有六腳mini-DIN連接器的鍵盤則稱之為PS/2鍵盤....
    發表于 2020-04-13 09:42? 105次閱讀
    PS/2接口協議的的嵌入式軟件編程及應用分析

    Windows中可以體驗獨立的Linux文件夾系...

    三月中旬,微軟曾通過博客宣布,WSL2 將在 Windows 10 2004 版本中正式進入普遍可用....
    發表于 2020-04-13 09:23? 374次閱讀
    Windows中可以體驗獨立的Linux文件夾系...

    物聯網開發孤島面臨什么挑戰

    隨著物聯網的迅速發展,以及物聯網設備的生產和多樣性的增加,我們已經看到創新技術極大地提高了生產率和產....
    發表于 2020-04-13 09:19? 404次閱讀
    物聯網開發孤島面臨什么挑戰

    為何linux如此受歡迎

    Linux很強大,它是一套免費使用和自由傳播的類Unix操作系統,是一個基于POSIX和UNIX的多....
    發表于 2020-04-13 08:58? 92次閱讀
    為何linux如此受歡迎

    Linux的用戶態與內核態區分

    系統調用時操作系統的最小功能單位。根據不同的應用場景,不同的 Linux 發行版本提供的系統調用數量....
    發表于 2020-04-12 19:39? 295次閱讀
    Linux的用戶態與內核態區分

    LINUX系統普及度不高的原因

    Linux普及度不高主要說的是在桌面版里面,在服務器以及移動設備端有些非常大的占比,特別是移動端占比....
    發表于 2020-04-12 19:08? 493次閱讀
    LINUX系統普及度不高的原因

    Linux FAT文件系統預性能或有大幅提升

    Linux 內核現在已經增加了對 exFAT 的支持,同時它也沒有放棄維護原有 FAT 文件系統驅動....
    發表于 2020-04-12 16:46? 255次閱讀
    Linux FAT文件系統預性能或有大幅提升

    采用可編程器件CPLD實現ARINC429收發電...

    PC104總線系統是一種新型的計算機測控平臺,作為嵌入式PC的一種,在軟件與硬件上與標準的臺式PC(....
    發表于 2020-04-12 11:46? 121次閱讀
    采用可編程器件CPLD實現ARINC429收發電...

    基于嵌入式和現場總線技術實現煤矸石在線識別與分選...

    隨著嵌入式技術的不斷發展,高性能、低功耗、低價格的32位RISC芯片的ARM微控制器呈現出強勁的發展....
    發表于 2020-04-12 11:26? 127次閱讀
    基于嵌入式和現場總線技術實現煤矸石在線識別與分選...

    采用UML-RT和思想平臺實現嵌入式控制器的設計

    在儀器儀表迅速發展的同時,計算機和網絡技術也在迅速發展,PC機已經從高速增長進入到平穩發展時期,嵌入....
    發表于 2020-04-12 10:44? 60次閱讀
    采用UML-RT和思想平臺實現嵌入式控制器的設計

    如何寫一個Linux設備驅動程序

    首先說明:寫這個第一個Linux設備驅動程序的目的是熟悉Linux驅動的框架以及編程流程,所以是通過....
    發表于 2020-04-12 10:13? 319次閱讀
    如何寫一個Linux設備驅動程序

    曝中科紅旗正研發新一代紅旗Linux 11 紅旗...

    這一年來,國產OS系統異?;鸨?,統信軟件的UOS成為股市的香餑餑,而兩大麒麟Linux合并的麒麟軟件....
    發表于 2020-04-10 09:29? 531次閱讀
    曝中科紅旗正研發新一代紅旗Linux 11 紅旗...

    曝中科紅旗正研發新一代國產Linux系統

    這一年來,國產OS系統異?;鸨?,統信軟件的UOS成為股市的香餑餑,而兩大麒麟Linux合并的麒麟軟件....
    發表于 2020-04-10 09:18? 389次閱讀
    曝中科紅旗正研發新一代國產Linux系統

    實現一維與二維信號顯示的VGA的接口時序和系統設...

    隨著電子技術的發展,VGA(視頻圖形陣列)接口出現在很多嵌入式平臺上,用于圖像信息的實時顯示等。在某....
    發表于 2020-04-06 08:22? 51次閱讀
    實現一維與二維信號顯示的VGA的接口時序和系統設...

    基于Linux操作系統和AT91RM9200處理...

    接口總線為一群互相連接的設備提供一種有效的通信方式,它是自動測試系統發展的標志,可以說接口總線技術發....
    發表于 2020-04-04 10:33? 77次閱讀
    基于Linux操作系統和AT91RM9200處理...
    万博手机注册登录