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

    文章

    11294

    浏览量

    209341
  • 源代码
    +关注

    关注

    96

    文章

    2945

    浏览量

    66731
收藏 人收藏

    评论

    相关推荐

    如何判断Linux系统的位数

    给你一个 Linux 系统,如何判断它的位数? 我经常用的,有这么几种方式。 第一个,使用命令: uname -m。 uname命令在 Linux 中用于显示与操作系统内核相关的信息,
    的头像 发表于 11-24 10:28 231次阅读

    linux是实时系统还是分时操作系统

    大家平时玩单片机基本上对于µC/OS、FreeRTOS、ThreadX这些操作系统非常熟悉了,他们都属于实时操作系统(RTOS),在工业领域比较广泛;然而对于linux这样的基于时间片划分的非实时
    的头像 发表于 11-11 11:43 427次阅读

    Linux系统中shell命令解析

    shell是Linux系统的用户界面,提供了用户与内核交互的一种接口,它接收用户输入的命令并到送到内核去执行,因此也被称为Linux的命令解释器。
    的头像 发表于 11-05 15:40 224次阅读

    linux操作系统安装步骤 linux操作系统的特点及组成

    ,确保你的计算机满足最低系统要求,并且你已经备份了所有重要数据。 2. 下载Linux发行版 访问Ubuntu官方网站或其他Linux发行版的官方网站,
    的头像 发表于 10-21 11:24 533次阅读

    Linux根文件系统的挂载过程

    Linux根文件系统(rootfs)是Linux系统中所有其他文件系统和目录的起点,它是内核启动时挂载的第一个文件
    的头像 发表于 10-05 16:50 405次阅读

    如何构建Linux根文件系统

    构建Linux根文件系统是一个涉及多个步骤和概念的过程,它对于Linux系统的启动和运行至关重要。
    的头像 发表于 10-05 16:47 295次阅读

    Linux系统中man命令的基本使用

    Linux系统提供了相对比较丰富的帮助手册(man),man是manual的缩写,在日常linux系统管理中经常用到,今天就简单聊聊man。man 本身也提供自己的帮助手册,通过man
    的头像 发表于 09-29 15:59 470次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>系统</b>中man命令的基本使用

    linux中使用esptool.py下载图像,下载成功但无法启动是怎么回事?

    我有一个参考 ESP-WROOM-02 设计的 EVB,CH340 作为 usb2 串行接口。我尝试在 linux 中使用 esptool.py 下载图像,下载成功但无法启动。我在Windows
    发表于 07-08 06:21

    util-linux修复WallEscape漏洞,影响Linux系统wall命令使用

    WallEscape 主要影响“wall”命令操作,Linux 系统中的常规下,该指令被用作向系统所有登录用户的终端发布消息。然而在处理命令行参数输入时,过滤器未正确识别和过滤转义序列
    的头像 发表于 03-29 14:35 974次阅读

    3562-Linux系统启动卡制作及系统固化

    ](基于 RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220) 评估板支持通过 Linux 系统启动卡(下文称为“SD 启动卡”)和板载 eMMC 设备两 种方式启动。本文档主要演示 SD 启动
    的头像 发表于 03-05 15:58 315次阅读
    3562-<b class='flag-5'>Linux</b><b class='flag-5'>系统</b>启动卡制作及<b class='flag-5'>系统</b>固化

    3562-Linux系统使用手册

                                              请先按照开发环境搭建文档进行开发环境搭建,由于系统编译过程需下载相关软件 工具包,因此请确保 Ubuntu 可
    的头像 发表于 03-05 14:23 277次阅读
    3562-<b class='flag-5'>Linux</b><b class='flag-5'>系统</b>使用手册

    Linux操作系统上的射频测试模式应用指南

    电子发烧友网站提供《Linux操作系统上的射频测试模式应用指南.pdf》资料免费下载
    发表于 02-19 09:39 0次下载
    <b class='flag-5'>Linux</b>操作<b class='flag-5'>系统</b>上的射频测试模式应用指南

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

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

    arm开发板如何安装linux系统

    工具和软件: 一台运行Linux系统的电脑 一个支持ARM架构的开发板 一个USB转串口模块 一根Micro USB线缆 一个SD卡读卡器 一个空的SD卡 一个USB键盘和鼠标(可选) 一个HDMI显示器(可选) 下载
    的头像 发表于 01-24 14:19 3476次阅读

    如何解决Linux系统中的网络连接问题?

    如何解决Linux系统中的网络连接问题? Linux系统中的网络连接问题是常见的技术难题之一,通常涉及在Linux上配置网络接口、解决网络故
    的头像 发表于 01-12 15:17 980次阅读