# readelf -S /bin/date
# readelf -S vmlinux
沙龙晃荡 | 3月31日 京东、微博拭魅战专家与你合营商量容器技巧实践!
懂得运转优胜的体系对于处理弗成避免的故障是最好的预备。
关于开源软件最古老的笑话是:“代码是自具文档化的”。经验注解,浏览源代码就像听气象预告一样:明智的人依然出门会看看室外的气象。本文静述了若何应用调试对象来不雅察和分析 Linux 体系的启动。分析一个功能正常的体系启动过程,有助于用户和开辟人员应对弗成避免的故障。
大年夜某些方面看,启动过程异常简单。内核在单核上以单线程和同步状况启动,似乎可以懂得。但内核本身是若何启动的呢?initrd(initial ramdisk) 和引导法度榜样具有哪些功能?还有,为什么以太网端口上的 LED 灯是常亮的呢?
请持续浏览寻找谜底。在 GitHub 上也供给了 介绍演示和演习的代码。
启动的开端:OFF 状况
局域网唤醒
OFF 状况表示体系没有上电,没错吧?外面简单,其实不然。例如,如不雅体系启用下场域网唤醒机制(WOL),以太网指导灯将亮起。经由过程以下敕令来检查是否是这种情况:
是的,你的 Linux 体系已经预备好用于 Windows 2001 了,你要推敲安装吗?与设备树不合,ACPI 具有办法和数据,而设备树更多地是一种硬件描述说话。ACPI 办法在启动后仍处于晃荡状况。例如,运行 acpi_listen
敕令(在 apcid
包中),然后打开和封闭标记本机盖会发明 ACPI 功能一向在运行。临时地和动态地 覆盖 ACPI 表 是可能的,而永远地改变它须要在引导时与 BIOS 菜单交互或刷新 ROM。如不雅你碰到那么多麻烦,也许你应当 安装 coreboot,这是开源固件的替代品。
大年夜 start_kernel() 到用户空间
# sudo ethtool <interface name>
BMC 不是独一的在体系封闭时仍在监听的微控制器(MCU)。x86_64 体系还包含了用于长途治理体系的英特尔治理引擎(IME)软件套件。大年夜办事器到标记本电脑,各类各样的设备都包含了这项技巧,它开启了如 KVM 长途控制和英特尔功能许可办事等 功能。根据 Intel 本身的检测对象,IME 存在尚未修补的马脚。坏消息是,要禁用 IME 很难。Trammell Hudson 提议了一个 me_cleaner 项目,它可以清除一些相对恶劣的 IME 组件,比如嵌入式 Web 办事器,但也可能会影响运行它的体系。
个中 <interface name>
是收集接口的名字,比如 eth0
。(ethtool
可以在同名的 Linux 软件包中找到。)如不雅输出中的 Wake-on
显示 g
,则长途主机可以经由过程发送 魔法数据包 来启动体系。如不雅您无意长途唤醒体系,也不欲望其他人如许做,请在体系 BIOS 菜单中将 WOL 封闭,或者用以下方法:
# ps -o pid,psr,comm $(pgrep ksoftirqd)
PID PSR COMMAND
7 0 ksoftirqd/0
16 1 ksoftirqd/1
22 2 ksoftirqd/2
推荐阅读
沙龙晃荡 | 3月31日 京东、微博拭魅战专家与你合营商量容器技巧实践!如不雅你善于应用Pandas变换数据、创建特点以及清洗数据等,那么你就可以或许轻松地应用Dask和Numba并行加快你的工作。纯真赶紧度上>>>详细阅读
本文标题:对Linux系统启动过程分析
地址:http://www.17bianji.com/lsqh/40676.html
1/2 1