概述
Linux启动过程主要分为以下几个阶段:
- BIOS/UEFI启动
- Boot Device引导
- Boot Loader执行
- 内核引导
- 用户空间初始化,驱动程序加载、内核模块加载、启动1号进程,并由其启动其他用户空间进程
具体的启动过程如下图所示:
Linux启动过程主要分为以下几个阶段:
具体的启动过程如下图所示:
systemd 是 Linux 系统的一组基本构建模块。它提供了一个系统和服务管理器,以 PID 1 运行并启动系统的其余部分。systemd 提供强大的并行化能力,使用套接字和 D-Bus 激活来启动服务,提供按需启动守护进程,使用 Linux 控制组跟踪进程,维护挂载点和自动挂载点,并实现复杂的基于事务依赖的服务控制逻辑。systemd 支持 SysV 和 LSB 初始化脚本,并可替代 sysvinit。其他部分包括一个日志守护进程、用于控制基本系统配置(如主机名、日期、区域设置)的实用程序、维护登录用户列表以及正在运行的容器和虚拟机、系统账户、运行时目录和设置,以及用于管理简单网络配置、网络时间同步、日志转发和名称解析的守护进程。
他是一个大而全的系统,包含了很多功能,可以如下图所示:
主要的一些功能有:
journalctl
命令可以查看系统日志,支持按服务、时间、优先级等条件过滤。systemd-timer
实现定时任务的管理。Tracepoint
是一种在 Linux 内核中插入的静态探测点,用于跟踪和调试内核行为。它允许开发者在特定位置插入代码,收集运行时信息,而不会显著影响性能。
bpftrace是一个基于eBPF的高级跟踪工具, 用于动态追踪Linux系统的行为和性能.
用于可以用简单的一行命令或者简洁的脚本,实现监控分析内核和用户空间程序的运行,而无需修改或者重新编译
sudo apt-get install bpftrace |
ld.so的路径存在于任意一个存在动态链接库的elf文件上的.interp setion中
# objdump -s -j .interp /bin/ls |
任何动态链接的程序都需要ld.so去启动,即直接执行一个动态链接库程序等价于执行 ld.so <program>
默认虚拟磁盘文件大体是在C:\Users\XXX\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu24.04LTS_79rhkp1fndgsc\LocalState
(以ubuntu2404为例)
将里面的vhdx移动到目标盘位置,比如 D:\wsl\24.04\
, 然后执行命令即可
wsl --unregister Ubuntu-24.04 |
-x 扩展信息
-m 使用MB单位
命令后跟数字x y 每x秒刷新, 显示y次
#每隔 2 秒显示一次详细的设备统计信息,共显示 5 次。 |
-c 显示cpu相关的信息
-p 指定特定设备信息,比如-p sda只展示sda下的\
sda
表示第一个SCSI磁盘设备。确保已安装 perf
和 FlameGraph
工具。
FlameGraph
通过以下命令下载
git clone https://github.com/brendangregg/FlameGraph.git |