首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ARM Linux 启动时自解压过程 | Linux 内核

最近业余时间都在学习 Linux 内核和英语,或者是陪家人玩耍,没有投入太多时间在文章。 今天起得比较早,就给大家翻译一篇 linus 文章吧,大家可以感受一下大神写作能力。...OK,Let's go. ---- ARM Linux 一般都使用压缩内核,例如 zImage。 这样做有两个主要原因: 1、节省存放内核闪存或其他存储介质空间。...2002 年,Russell King 就在 Booting ARM Linux 文档中定义了 Booloader 引导 Linux 内核 ABI。...然后 Bootloader 会在管理模式下跳转到内核,此时,所有中断、MMU 和缓存都是 disabled。 在现代设备树内核中,r2 被重新用作指向物理内存中设备树 (DTB) 指针。...另外还需要额外空间,是因为当内核最终启动时,它将从该地址中减去 0x4000(或 LPAE 0x5000),并将初始内核页表 (initial kernel page table) 存储在那里。

2.7K10

进程启动时间监控(linux篇)

摘要:这次我们来谈谈如何采集一个进程启动时间 以下内容使用go语言实现 linux 进程启动时间采集 方法一 直接读取/proc/{pid} 文件夹时间戳方式(不准确但效率高),以下是方法一代码,...= nil { return nil } proc.mtime = stat.ModTime().Unix() 方法二 使用(现在时间-从系统启动到现在时间) + 进程启动时距离系统启动时时间间隔得到...jiffies单位,用来记录自系统启动以来产生节拍总数。...启动时,内核将该变量初始化为0,此后,每次时钟中断处理程序都会增加该变量值。一秒内时钟中断次数等于Hz,所以jiffies一秒内增加值也就是Hz。...输出结果 [输出结果] 引用 go 获得进程启动时两种方法

4.1K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux文件三个时间属性

    时间属性介绍 Linux下一个文件通过stat命令可以查看到这个文件时间方面的属性,具体信息如下: # stat tengine-2.0.0-23tf4566.tar.gz File: 'tengine...35.000000000 +0000 Change: 2020-10-16 06:20:13.535869875 +0000 Birth: - 如上所示,可以看出来分别有Access Modify Change 三个关于时间属性...此三个属性初始时间记录都是文件被创建时间: Access 指最后一次读取时间(访问) Modify 指最后一次修改数据时间(修改) Change 指最后一次修改元数据时间(改变) Access意思是访问...Modify 意思是更改(内容)or 写入: 当更改了一个文件内容时候,此文件modify时间记录会被更新。用ls -l看到文件时间是最近一次modify时间。...modify行为是三个行为中最有影响力行为,它发生以后,会使文件access记录与change记录也同时得到更新, 对于目录亦是如此。

    86410

    如何改善应用程序在 Linux启动时

    大多数 Linux 发行版在默认配置下已经足够快了。但是,我们仍然可以借助一些额外应用程序和方法让它们启动更快一点。其中一个可用这种应用程序就是 Preload。...简而言之,一旦安装了 Preload,你使用较为频繁应用程序将可能加载更快。 在这篇详细教程中,我们将去了解如何安装和使用 Preload,以改善应用程序在 Linux启动时间。...在 Linux 中使用 Preload 改善应用程序启动时间 Preload 可以在 AUR 上找到。...因此,你可以使用 AUR 助理程序在任何基于 Arch 系统上去安装它,比如,Antergos、Manjaro Linux。...如果你使用是带有 SSD 现代系统,Preload 是绝对没用。因为 SSD 访问时间比起一般硬盘来要快多,因此,使用 Preload 是没有意义。 Preload 显著影响启动时间。

    3.8K10

    Linux 启动时间优化实战,2.41 秒启动应用!

    目标系统 硬件: Beagle Bone Black (Cortex A8) USB 摄像头 + LCD 软件: Linux 5.1 + Buildroot rootfs FFmpeg,用于采集视频并解码到...在空间优化很大,但是在启动时间上优化很小,这是因为 Linux 运行程序时只加载程序必要部分。...使用 initramfs 作为 rootfs: 一般情况下,Linux 系统会先挂载 initramfs,init ramfs 很小且位于内存中,再由 initramfs 负责负载根文件系统。...优化后结果: 即便禁用了 CONFIG_BLOCK 和 CONFIG_MMC 后,总启动时间仍多了 20ms。...点击查看大图 注意,这只是在 BeagleBone Black + Linux 5.1 上测试结果,不同平台之间有差异。 禁用 /proc 等伪文件系统 要考虑应用兼容性。

    3.2K50

    Linux 启动时如何自动执行命令或脚本?

    我们假定使用是 Bash 作为登录及注销主 Shell。如果你使用是其他 Shell,那么有些方法可能会无效。如果有其他疑问,请参考对应 Shell 文档。...在启动时执行 Linux 脚本 有两种传统方法可以实现在启动时执行命令或脚本: 方法 #1 - 使用 cron 任务 除了常用格式(分 / 时 / 日 / 月 / 周)外,cron 调度器还支持 @reboot...这个指令后面的参数是脚本(启动时要执行那个脚本)绝对路径。...方法 #2 - 使用 /etc/rc.d/rc.local 这个方法对于 systemd-based 发行版 Linux 同样有效。...Linux 脚本 * 记住,一定要提前给两个示例脚本授予执行权限: $ chmod +x /home/gacanepa/script1.sh $ chmod +x /home/gacanepa/script2

    3.8K40

    Linux下编译安装源代码三个步骤

    Linux下编译安装源代码无非就是三个步骤,./configure,make,make install 第一步进入源代码目录 运行命令 1 ..../configure常见参数解析 'configure'脚本有大量命令行选项。对不同软件包来说,这些选项可能会有变 化,但是许多基本选项是不会改变。...带上'--help'选项执行'configure'脚本可以看到可用所有选项。尽管许多选项是很少用到,但是 当你为了特殊需求而configure一个包时,知道他们存在是很有益处。...即使是有经验用户也偶尔需要使用使用'--help'选项,因为一个复杂项目会包含附加选项。...制作出'Makefile'会查看随此选项传递参数,当一个包在安装时可以彻底重新安置他结构独立部分。

    1.8K20

    Linux下文件属性中三个时间

    本文所有脚本及命令均在 Red Hat Enterprise Linux Server release 7.6 上验证通过。...Linux 下使用 stat 命令查看文件(目录)时,可以看到文件(目录)有三个时间属性,分别是: Access Time :指最近一次程序对文件(目录)直接存取时间,通俗来讲是文件最近一次被访问时间...Change Time :指最近一次文件(目录)属性被修改时间。用 ls -lc 命令看到是Change Time。 ? 可以看到当文件被初次创建时候,三个时间是一样。...使用 touch 命令来修改时间 touch 命令可以创建文件,可以在创建文件时候指定三个时间具体值,也可以对现有的文件修改这三个时间值,如下图所示。 ?...touch 支持三个参数含义如下: -a 文件名:将文件 Access Time 修改为当前系统时间 -m 文件名: 将文件 Modify Time 修改为当前系统时间 -c 文件名: 将文件

    1.6K20

    Linux启动时间优化-内核和用户空间启动优化实践

    启动时优化,分为两大部分,分别是内核部分和用户空间两大部分。...这些数值单位是jiffies,jiffies是内核中一个全局变量,用来记录系统以来产生节拍数。在Linux中,一个节拍大致可理解为操作系统进程调度最小时间片。...如下命令进入interactive模式,如果不带-i则生成一张png图片。 ....进程信息:包含进程父子关系、启动时间、终止时间、运行状态等信息。主要从pro_ps.log中获取。 从下一张图可以看出主要问题在: 由于内核实时进程太多,导致rc启动延迟。...总结 借助图形化工具有利于发现问题,但解决问题还需要取具体问题具体对待。 Linux启动从进入内核那一刻开始,到用户空间达到可用状态。

    76230

    如何加快Python 应用启动时

    我听说pipenv9.0.2已经发布,启动时间有了很大改进。 我很快就试了一下,但我觉得并不快。所以我用Python3.7新特性来研究它。 在本文中,我将介绍该特性以及如何使用它。...启动时间≒导入时间 例如,pipenv -h 执行时间比显示帮助消息时间长得多。 一般来说,当应用程序启动时,会有一些启动过程,比如加载环境变量或配置文件。...对于Python应用程序,导入模块占用了大部分启动时间。例如,pipenv --version 花费了大约800ms,而import pipenv 花费了700ms。 ?...显示模块导入时间 Python 3.7有新特性来显示导入模块时间。 这个特性是通过 -X importtime 选项或 PYTHONPROFILEIMPORTTIM 环境变量来启用。...结论 我可以将 pipenv--version 时间从800ms减少到500ms。 ? 导入时间分析是研究和优化应用程序启动时好方法。

    2.1K30

    Linux随笔】Killall 、Kill 、Pkill三个命令之间区别

    首先三个命令都是用于杀掉进程,不过kill是杀掉单个进程,killall是杀掉所有同名进程,pkill是杀掉一类进程或者某个用户所有进程。...我们来看一下 man page 对它解释:kill - send a signal to a process.从官方解释不难看出,kill 是向进程发送信号命令。...kill pid //同下-15默认安全停止进程 kill -15 pid // kill -9 pid //彻底杀死进程 使用信号 15 是安全,而信号 9 则是处理异常进程最后手段,这样结束掉进程不会进行资源清理工作...二、killall命令 Linux killall (kill processes by name)用于杀死进程,与 kill 不同是killall 会杀死指定名字所有进程。...-9 -t pts/1 //#强制杀死从pts/1虚拟终端登陆进程 四、拓展命令 如果能看懂下面一系列命令,那么killall 、kill 、pkill三个命令之间区别你也就了然于胸了。

    9.4K52

    三个简单而优秀 Linux 网络监视器

    你可以通过 iftop、Nethogs 和 vnstat 这三个 Linux 网络命令,了解有关你网络连接大量信息。...iftop 通过进程号跟踪网络连接,Nethogs 可以快速显示哪个在占用你带宽,而 vnstat 作为一个很好轻量级守护进程运行,可以随时随地记录你使用情况。...iftop iftop 监听你指定网络接口,并以 top 形式展示连接。 这是一个很好小工具,用于快速识别占用、测量速度,并保持网络流量总体运行。...看到我们使用了多少带宽是非常令人惊讶,特别是对于我们这些还记得使用电话线、调制解调器、让人尖叫 Kbit 速度和真实实时波特率老年人来说。我们很久以前就放弃了波特率,转而使用比特率。...英文版出自Linux.com,中文来自Linux.cn

    1.1K60

    Linux随笔】Killall 、Kill 、Pkill三个命令之间区别

    首先三个命令都是用于杀掉进程,不过kill是杀掉单个进程,killall是杀掉所有同名进程,pkill是杀掉一类进程或者某个用户所有进程。...我们来看一下 man page 对它解释:kill - send a signal to a process.从官方解释不难看出,kill 是向进程发送信号命令。...kill pid //同下-15默认安全停止进程 kill -15 pid // kill -9 pid //彻底杀死进程 使用信号 15 是安全,而信号 9 则是处理异常进程最后手段,这样结束掉进程不会进行资源清理工作...二、killall命令 Linux killall (kill processes by name)用于杀死进程,与 kill 不同是killall 会杀死指定名字所有进程。...-9 -t pts/1 //#强制杀死从pts/1虚拟终端登陆进程 四、拓展命令 如果能看懂下面一系列命令,那么killall 、kill 、pkill三个命令之间区别你也就了然于胸了。

    4.2K00

    Linux初学(CnetOS7 Linux)之切换命令模式和图形模式方法

    Linux 预设情况下会提供六个 Terminal 来让使用者登入, 切换方式为使用:[Ctrl] + [Alt] + [F1]~[F6]组合按钮。...也就是说,当你按下 [crtl] + [Alt] + [F1]这三个组合按钮时 , 就会进入到 tty1 terminal 界面中了。...CentOS5 在 Linux 默认登入模式中,主要分为两种,一种是仅有命令行模式(所谓执行等级 run level 3)登入环境,在这种环境中你可以有 tty1~tty6 终端界面,但是并没有没有图形界面的环境喔...如果你是以命令行模式启劢 Linux ,预设 tty7 是没有东西!可以在 tty1~tty6 任意一个终端接口使用你账号登入后, 然后下达startx命令即可。...如果你linux预设使用文字界面,那么tt1和tt6就会被命令行模式占用 在命令行环境中启动图形界面,那么图形界面会出现哎当时那个tty上面,举例来说,你在tt3登陆系统,然后输入startx启动图形界面

    3.6K32

    Linux - Linux文件、目录、磁盘模式知识点

    概述本系列博客一共4篇,是对Linux系统知识查漏补缺,Linux文件、目录、磁盘模式一次扫盲知识点,下一篇学习shell知识点。...Linux文件权限与目录配置1.修改文件属性与权限以前对于文件权限总是记不住,也记不清给什么权限更合适更安全一些,所以对下面的命令进行一次梳理:chgrp : 修改文件所属用户组,修改所有组时候要注意...w: 可以编辑、新增、或是修改该文件内容x: 该文件具有可以被系统执行权限特别注意有两点:~文件如果在它家目录,它在此目录下具有rwx完整权限,因此对于文件来说是有执行权限。...一个Linux文件能不能被执行,与它第一栏十个属性有关,与文件名一点关系也没有。...常用vim命令ctrl+f 屏幕向下移动一页ctrl+b 屏幕向上移动一页0 :移动到这一行最前面字符处$ : 移动到这一行最后字符处G : 移动到文件最后一行gg : 移动到文件第一行/stark

    16776

    Tomcat启动时SecureRandom超级慢问题

    Linux随机数可以从两个特殊文件中产生,一个是/dev/urandom.另外一个是/dev/random。...他们产生随机数原理是利用当前系统熵池来计算出固定一定数量随机比特,然后将这些比特作为字节流返回。...熵池就是当前系统环境噪音,熵指的是一个系统混乱程度,系统噪音可以通过很多参数来评估,如内存使用,文件使用量,不同类型进程数量等等。...如果当前环境噪音变化不是很剧烈或者当前环境噪音很小,比如刚开机时候,而当前需要大量随机比特,这时产生随机数随机效果就不是很好了。...这就是为什么会有/dev/urandom和/dev/random这两种不同文件,后者在不能产生新随机数时会阻塞程序,而前者不会(ublock),当然产生随机数效果就不太好了,这对加密解密这样应用来说就不是一种很好选择

    1.4K40

    Linux用户模式和内核模式是什么含义?

    Linux用户模式和内核模式是什么含义?1. 引言在 Linux 系统中,用户模式和内核模式是操作系统两种不同运行模式。...本文将深入探讨这两种模式含义、区别以及运行原理,帮助读者更好地理解 Linux 系统运行机制。2. 用户模式用户模式,也被称为用户空间,是 Linux 系统中应用程序运行模式。...运行原理Linux 系统中用户模式和内核模式运行原理主要体现在操作系统系统调用机制上。5.1 系统调用系统调用是一种特殊函数调用,用于向操作系统请求服务。...小结本文首先介绍了 Linux 系统中用户模式和内核模式含义,然后详细阐述了它们之间区别与联系,以及运行原理。...通过了解用户模式和内核模式,开发者可以更好地理解 Linux 系统运行机制,提高开发效率。

    1K00

    DevOps:Linux必须知道三个命令,提升办公效能

    一、【cd -】 进入上次访问目录 二、【Ctrl + r, Ctrl + p, Ctrl + n】 在终端中按捉 [Ctrl] 键同时 [r] 键,出现提示:(reverse-i-search),此时你尝试一下输入你以前输入过命令...,当你每输入一个字符时候,终端都会滚动显示你历史命令。...当显示到你想找合适历史命令时候,直接 [Enter],就执行了历史命令。...另外, [Ctrl + p] 或 [Ctrl + n] 快速向前或向后滚动查找一个历史命令,对于快速提取刚刚执行过不久命令很有用。 三、【命令行内快速操作键】 1....删除操作快捷键 Ctrl + d-- 向右删除一个字符 Ctrl + h-- 向左删除一个字符 Ctrl + u-- 删除当前位置字符至行首(输入密码错误时候多用下这个) Ctrl + k--

    10310
    领券