0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

精簡linux系統(tǒng)下載

李鴻 ? 來源:樹沒了派 ? 作者:樹沒了派 ? 2022-08-02 17:10 ? 次閱讀

Linux是現(xiàn)在最流行的操作系統(tǒng),含有大量的源代碼。Xilinx 2020.1使用的Linux 5.4,含有大約67430個(gè)文件。大部分文件沒有被使用到。分析Linux源代碼的代碼實(shí)現(xiàn)時(shí),經(jīng)常查找函數(shù)或者數(shù)據(jù)結(jié)構(gòu)定義。如果分析所有文件,既消耗軟件查找時(shí)間;也會(huì)找到多個(gè)定義,增加理解代碼的難度。如果能夠刪除沒有被用到的代碼,既能快速找到對(duì)應(yīng)的定義,還能保證找到的是真正使用的定義。非常有意義。

Linux為文件的提供三種時(shí)間標(biāo)記。第一個(gè)是訪問時(shí)間atime,是最后一次讀文件內(nèi)容的時(shí)間。more、cat等命令會(huì)修改訪問時(shí)間;但是ls、stat命令不會(huì)修改訪問時(shí)間。第二個(gè)是修改時(shí)間mtime,是最后一次修改文件內(nèi)容的時(shí)間。比如vim操作后保存文件,會(huì)更新修改時(shí)間mtime。第三個(gè)是狀態(tài)改動(dòng)時(shí)間ctime,是該文件的inode節(jié)點(diǎn)最后一次被修改的時(shí)間。通過chmod、chown命令修改文件屬性就會(huì)更新這個(gè)時(shí)間。

如果我們知道Linux的編譯流程的起始時(shí)間,那么刪除所有訪問時(shí)間比Linux的編譯起始時(shí)間早的文件,就能達(dá)到精簡Linux的源代碼的目的。在編譯Linux之前,可以通過touch命令創(chuàng)建一個(gè)文件。這個(gè)文件的atime,就是編譯Linux開始時(shí)間。因此比較這個(gè)文件,和其它Linux文件,就能找到所有訪問時(shí)間比Linux的編譯起始時(shí)間早的文件,從而實(shí)現(xiàn)精簡Linux的源代碼。

實(shí)際測試中,發(fā)現(xiàn)還有部分文件被誤刪了。再恢復(fù)對(duì)應(yīng)文件,既精簡了Linux的源代碼,也不影響Linux的編譯流程。對(duì)Linux 5.4進(jìn)行精簡后,剩余大約8800個(gè)文件,減少了大約58000個(gè)文件,精簡了超過87%的文件數(shù)量。文件夾大小從910MB減少到103MB,精簡了超過88%的硬盤空間。

精簡過程還是需要相當(dāng)?shù)臅r(shí)間。如果需要Xilinx的Linux精簡代碼,可以與我聯(lián)系。

在scripts/kconfig/Makefile里,Linux還提供編譯目標(biāo)tinyconfig,它提供最精簡的內(nèi)核。以后可以考慮使用tinyconfig來精簡Linux的源代碼。

PHONY += tinyconfig
tinyconfig:
	$(Q)$(MAKE) -f $(srctree)/Makefile allnoconfig tiny.config

審核編輯 黃昊宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11212

    瀏覽量

    208721
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2943

    瀏覽量

    66618
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    linux操作系統(tǒng)安裝步驟 linux操作系統(tǒng)的特點(diǎn)及組成

    ,確保你的計(jì)算機(jī)滿足最低系統(tǒng)要求,并且你已經(jīng)備份了所有重要數(shù)據(jù)。 2. 下載Linux發(fā)行版 訪問Ubuntu官方網(wǎng)站或其他Linux發(fā)行版的官方網(wǎng)站,
    的頭像 發(fā)表于 10-21 11:24 ?400次閱讀

    Linux根文件系統(tǒng)的掛載過程

    Linux根文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)文件
    的頭像 發(fā)表于 10-05 16:50 ?232次閱讀

    如何構(gòu)建Linux根文件系統(tǒng)

    構(gòu)建Linux根文件系統(tǒng)是一個(gè)涉及多個(gè)步驟和概念的過程,它對(duì)于Linux系統(tǒng)的啟動(dòng)和運(yùn)行至關(guān)重要。
    的頭像 發(fā)表于 10-05 16:47 ?198次閱讀

    Linux系統(tǒng)中man命令的基本使用

    Linux系統(tǒng)提供了相對(duì)比較豐富的幫助手冊(cè)(man),man是manual的縮寫,在日常linux系統(tǒng)管理中經(jīng)常用到,今天就簡單聊聊man。man 本身也提供自己的幫助手冊(cè),通過man
    的頭像 發(fā)表于 09-29 15:59 ?396次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>中man命令的基本使用

    linux中使用esptool.py下載圖像,下載成功但無法啟動(dòng)是怎么回事?

    我有一個(gè)參考 ESP-WROOM-02 設(shè)計(jì)的 EVB,CH340 作為 usb2 串行接口。我嘗試在 linux 中使用 esptool.py 下載圖像,下載成功但無法啟動(dòng)。我在Windows
    發(fā)表于 07-08 06:21

    3562-Linux系統(tǒng)啟動(dòng)卡制作及系統(tǒng)固化

    ](基于 RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220) 評(píng)估板支持通過 Linux 系統(tǒng)啟動(dòng)卡(下文稱為“SD 啟動(dòng)卡”)和板載 eMMC 設(shè)備兩 種方式啟動(dòng)。本文檔主要演示 SD 啟動(dòng)
    的頭像 發(fā)表于 03-05 15:58 ?266次閱讀
    3562-<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>啟動(dòng)卡制作及<b class='flag-5'>系統(tǒng)</b>固化

    3562-Linux系統(tǒng)使用手冊(cè)

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 請(qǐng)先按照開發(fā)環(huán)境搭建文檔進(jìn)行開發(fā)環(huán)境搭建,由于系統(tǒng)編譯過程需下載相關(guān)軟件 工具包,因此請(qǐng)確保 Ubuntu 可
    的頭像 發(fā)表于 03-05 14:23 ?252次閱讀
    3562-<b class='flag-5'>Linux</b><b class='flag-5'>系統(tǒng)</b>使用手冊(cè)

    Linux操作系統(tǒng)上的射頻測試模式應(yīng)用指南

    電子發(fā)燒友網(wǎng)站提供《Linux操作系統(tǒng)上的射頻測試模式應(yīng)用指南.pdf》資料免費(fèi)下載
    發(fā)表于 02-19 09:39 ?0次下載
    <b class='flag-5'>Linux</b>操作<b class='flag-5'>系統(tǒng)</b>上的射頻測試模式應(yīng)用指南

    linux和windows的區(qū)別 linux系統(tǒng)一般用來干嘛

    Linux和Windows是兩種不同的操作系統(tǒng),有著不同的設(shè)計(jì)理念和用途。本文將對(duì)Linux和Windows的區(qū)別進(jìn)行詳細(xì)分析,并介紹Linux系統(tǒng)
    的頭像 發(fā)表于 02-05 14:06 ?844次閱讀

    arm開發(fā)板如何安裝linux系統(tǒng)

    工具和軟件: 一臺(tái)運(yùn)行Linux系統(tǒng)的電腦 一個(gè)支持ARM架構(gòu)的開發(fā)板 一個(gè)USB轉(zhuǎn)串口模塊 一根Micro USB線纜 一個(gè)SD卡讀卡器 一個(gè)空的SD卡 一個(gè)USB鍵盤和鼠標(biāo)(可選) 一個(gè)HDMI顯示器(可選) 下載
    的頭像 發(fā)表于 01-24 14:19 ?2755次閱讀

    如何解決Linux系統(tǒng)中的網(wǎng)絡(luò)連接問題?

    如何解決Linux系統(tǒng)中的網(wǎng)絡(luò)連接問題? Linux系統(tǒng)中的網(wǎng)絡(luò)連接問題是常見的技術(shù)難題之一,通常涉及在Linux上配置網(wǎng)絡(luò)接口、解決網(wǎng)絡(luò)故
    的頭像 發(fā)表于 01-12 15:17 ?841次閱讀

    linux系統(tǒng)的用途

    Linux是一種自由和開放源代碼的操作系統(tǒng),最初由芬蘭的計(jì)算機(jī)科學(xué)家林納斯·托瓦茲創(chuàng)建。它基于UNIX操作系統(tǒng),并且非常靈活,適用于各種不同類型的應(yīng)用程序和用途。本文將詳細(xì)介紹Linux
    的頭像 發(fā)表于 11-23 11:12 ?959次閱讀

    linux系統(tǒng)備份與還原工具

    Linux系統(tǒng)備份與還原工具是用于備份和恢復(fù)Linux操作系統(tǒng)的工具。在日常使用中,備份和還原是非常重要的操作,可以幫助我們保護(hù)數(shù)據(jù)并快速恢復(fù)系統(tǒng)
    的頭像 發(fā)表于 11-23 10:04 ?2512次閱讀

    linux安裝網(wǎng)卡驅(qū)動(dòng)教程

    Linux系統(tǒng)中安裝網(wǎng)卡驅(qū)動(dòng)是一個(gè)比較基礎(chǔ)的操作,下面我將為你詳細(xì)講解如何安裝網(wǎng)卡驅(qū)動(dòng)。 第一步,檢查網(wǎng)卡型號(hào)和驅(qū)動(dòng)支持情況:首先,你需要確定你的網(wǎng)卡型號(hào),并查看該網(wǎng)卡型號(hào)在Linux系統(tǒng)
    的頭像 發(fā)表于 11-17 11:11 ?3825次閱讀

    linux系統(tǒng)基礎(chǔ)入門教程

    Linux是一種開源的操作系統(tǒng),它被廣泛應(yīng)用于服務(wù)器、嵌入式系統(tǒng)以及個(gè)人電腦上。本篇文章將帶領(lǐng)讀者從入門的角度,詳細(xì)介紹Linux系統(tǒng)的基礎(chǔ)
    的頭像 發(fā)表于 11-16 16:45 ?993次閱讀