0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

精简linux系统下载

李鸿 来源:树没了派 作者:树没了派 2022-08-02 17:10 次阅读

Linux是现在最流行的操作系统,含有大量的源代码。Xilinx 2020.1使用的Linux 5.4,含有大约67430个文件。大部分文件没有被使用到。分析Linux源代码的代码实现时,经常查找函数或者数据结构定义。如果分析所有文件,既消耗软件查找时间;也会找到多个定义,增加理解代码的难度。如果能够删除没有被用到的代码,既能快速找到对应的定义,还能保证找到的是真正使用的定义。非常有意义。

Linux为文件的提供三种时间标记。第一个是访问时间atime,是最后一次读文件内容的时间。more、cat等命令会修改访问时间;但是ls、stat命令不会修改访问时间。第二个是修改时间mtime,是最后一次修改文件内容的时间。比如vim操作后保存文件,会更新修改时间mtime。第三个是状态改动时间ctime,是该文件的inode节点最后一次被修改的时间。通过chmod、chown命令修改文件属性就会更新这个时间。

如果我们知道Linux的编译流程的起始时间,那么删除所有访问时间比Linux的编译起始时间早的文件,就能达到精简Linux的源代码的目的。在编译Linux之前,可以通过touch命令创建一个文件。这个文件的atime,就是编译Linux开始时间。因此比较这个文件,和其它Linux文件,就能找到所有访问时间比Linux的编译起始时间早的文件,从而实现精简Linux的源代码。

实际测试中,发现还有部分文件被误删了。再恢复对应文件,既精简了Linux的源代码,也不影响Linux的编译流程。对Linux 5.4进行精简后,剩余大约8800个文件,减少了大约58000个文件,精简了超过87%的文件数量。文件夹大小从910MB减少到103MB,精简了超过88%的硬盘空间。

精简过程还是需要相当的时间。如果需要Xilinx的Linux精简代码,可以与我联系。

在scripts/kconfig/Makefile里,Linux还提供编译目标tinyconfig,它提供最精简的内核。以后可以考虑使用tinyconfig来精简Linux的源代码。

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

审核编辑 黄昊宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    10981

    浏览量

    206687
  • 源代码
    +关注

    关注

    94

    文章

    2923

    浏览量

    66047
收藏 人收藏

    评论

    相关推荐

    linux和windows的区别 linux系统一般用来干嘛

    Linux和Windows是两种不同的操作系统,有着不同的设计理念和用途。本文将对Linux和Windows的区别进行详细分析,并介绍Linux系统
    的头像 发表于 02-05 14:06 310次阅读

    linux系统基础入门教程

    Linux是一种开源的操作系统,它被广泛应用于服务器、嵌入式系统以及个人电脑上。本篇文章将带领读者从入门的角度,详细介绍Linux系统的基础
    的头像 发表于 11-16 16:45 397次阅读

    基于linux系统的指纹识别

    电子发烧友网站提供《基于linux系统的指纹识别.doc》资料免费下载
    发表于 10-30 11:01 0次下载
    基于<b class='flag-5'>linux</b><b class='flag-5'>系统</b>的指纹识别

    基于Linux的RFID交互系统的设计实现方案

    电子发烧友网站提供《基于Linux的RFID交互系统的设计实现方案.pdf》资料免费下载
    发表于 10-23 10:32 0次下载
    基于<b class='flag-5'>Linux</b>的RFID交互<b class='flag-5'>系统</b>的设计实现方案

    基于嵌入式Linux系统的MiniGUI的移植

    电子发烧友网站提供《基于嵌入式Linux系统的MiniGUI的移植.pdf》资料免费下载
    发表于 10-12 10:20 1次下载
    基于嵌入式<b class='flag-5'>Linux</b><b class='flag-5'>系统</b>的MiniGUI的移植

    基于Linux的嵌入式视觉系统设计原理

    电子发烧友网站提供《基于Linux的嵌入式视觉系统设计原理.pdf》资料免费下载
    发表于 10-11 11:26 0次下载
    基于<b class='flag-5'>Linux</b>的嵌入式视觉<b class='flag-5'>系统</b>设计原理

    基于ARM的Linux系统移植

    电子发烧友网站提供《基于ARM的Linux系统移植.pdf》资料免费下载
    发表于 10-11 10:57 0次下载
    基于ARM的<b class='flag-5'>Linux</b><b class='flag-5'>系统</b>移植

    嵌入式Linux在磁场测量系统中的应用

    电子发烧友网站提供《嵌入式Linux在磁场测量系统中的应用.pdf》资料免费下载
    发表于 10-11 10:11 0次下载
    嵌入式<b class='flag-5'>Linux</b>在磁场测量<b class='flag-5'>系统</b>中的应用

    Linux驱动模块.ko内存精简优化过程

    Linux 驱动模块可以独立的编译成 .ko 文件,虽然大小一般只有几 MB,但对总内存只有几十 MB 的小型 Linux 系统来说,常常也是一个非常值得优化的点。本文以一个实际例子,详细描述 .ko 内存
    发表于 09-25 09:23 498次阅读

    通过高可用性强制实施精简的IT基础架构模型

    电子发烧友网站提供《通过高可用性强制实施精简的IT基础架构模型.pdf》资料免费下载
    发表于 08-22 15:53 0次下载
    通过高可用性强制实施<b class='flag-5'>精简</b>的IT基础架构模型

    Linux驱动程序下载

    电子发烧友网站提供《Linux驱动程序下载.zip》资料免费下载
    发表于 08-09 09:12 1次下载
    <b class='flag-5'>Linux</b>驱动程序<b class='flag-5'>下载</b>

    Linux驱动移植 Linux系统架构优点

    系统移植 linux 驱动移植 移植是说同样的一个 linux 操作系统,我们可以跑到不同的硬件上面,我们把操作系统移植到不同的硬件上面,这
    的头像 发表于 07-27 17:06 548次阅读
    <b class='flag-5'>Linux</b>驱动移植 <b class='flag-5'>Linux</b><b class='flag-5'>系统</b>架构优点

    恒讯科技介绍:Linux系统命令(基本、中级和高级)

    上使用。所有版本的Linux都管理硬件及其资源,并帮助启动不同的应用程序。Linux发行版主要由内核、系统实用程序、可用于下载和安装不同软件更新的程序和工具组成。 一、基本的
    的头像 发表于 07-03 17:21 294次阅读

    Linux系统中根文件系统构建基本方式

    嵌入式 Linux 根文件系统布局,建议还是按照FHS标准来安排,事实上大多数嵌入式Linux都是这样做的。但是,嵌入式系统可能并不需要桌面/服务器那样庞大
    发表于 05-09 09:30 551次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>系统</b>中根文件<b class='flag-5'>系统</b>构建基本方式

    如何使用uuu下载linux内核?

    我可以使用 uuu 下载 uboot (flash.bin) 文件,然后我需要做一些 linux 内核启动和调试。 我想看看是否有 uuu 命令,以便我可以下载 linux 内核?
    发表于 04-28 07:42