Linux
文章平均质量分 66
linux
Li-Yongjun
这个作者很懒,什么都没留下…
展开
-
PHY 寄存器读写工具(mii-tool、phytool、mdio-tool、phyreg)
PHY 寄存器读取工具原创 2024-12-04 01:08:23 · 582 阅读 · 0 评论 -
内核模块签名验证
内核模块签名验证受 CONFIG_MODULE_SIG 内核编译选项控制原创 2024-11-27 23:26:13 · 294 阅读 · 0 评论 -
制作 Ubuntu 平台下的串口助手
重复、低效的事情,交给计算机(程序)去做。原创 2024-11-25 08:45:00 · 267 阅读 · 0 评论 -
Linux mountpoint 命令详解
在脚本中挂载设备后,通常需要验证挂载是否成功。这时可以使用 mountpoint 命令原创 2024-11-17 23:15:00 · 407 阅读 · 0 评论 -
OpenGL
OpenGL 是一个跨语言、跨平台的编程接口,它主要用于渲染 2D、3D 图像原创 2024-11-07 08:45:00 · 592 阅读 · 0 评论 -
EXPORT_SYMBOL 底层原理
编译器会将这些信息放在模块的 .o 文件的 __ksymtab 和 __ksymtab_strings 段中。当内核加载这个模块时,它会处理 __ksymtab 和 __ksymtab_strings 段,将符号注册到全局符号表中。原创 2024-10-28 22:15:00 · 999 阅读 · 0 评论 -
systemctl --user
/usr/lib/systemd/user/ 目录用于存放用户级别的 systemd 服务单元文件。原创 2024-10-24 01:11:41 · 815 阅读 · 0 评论 -
从 init 到 systemd:Linux 系统管理的演变
systemd 支持许多高级功能,如服务的依赖管理、并行启动、系统状态检查等。原创 2024-10-22 01:45:46 · 562 阅读 · 0 评论 -
/dev/log 文件详解
/dev/log 是一个 Unix 域套接字,专门用于系统日志的传递。syslog() 函数将错误消息发送到 /dev/log,然后系统日志守护进程接收并处理该消息。原创 2024-09-23 08:45:00 · 627 阅读 · 0 评论 -
/dev/kmsg, /proc/kmsg 和 dmesg
rsyslogd 可以替代 syslogd 和 klogd,提供统一的日志处理功能。原创 2024-09-05 08:30:00 · 1554 阅读 · 0 评论 -
使用 journalctl 管理系统日志
在现代 Linux 系统中,journalctl 是管理和查看系统日志的强大工具。它是 systemd 日志系统的一部分,提供了一种统一的方式来查看所有系统日志,包括**内核日志**、**服务日志**和**用户空间应用程序日志**。原创 2024-09-02 09:00:00 · 1258 阅读 · 0 评论 -
cpio 命令
cpio 是一个命令行工具,用于创建或提取归档文件。原创 2024-08-08 01:17:57 · 645 阅读 · 0 评论 -
dd 命令:数据管理的瑞士军刀
dd 是一个灵活而强大的工具,广泛应用于数据备份、恢复、克隆和销毁等操作。通过掌握 dd 的基本用法和高级选项,用户可以在各种场景下高效地管理数据。尽管功能强大,但使用 dd 时需特别小心,以避免意外的数据丢失。原创 2024-08-01 01:22:10 · 1119 阅读 · 0 评论 -
UPX:究极打包利器
UPX 的主要优点在于,它不仅可以大幅度减少文件体积,还能保持可执行文件的运行速度,几乎不影响程序的启动时间。原创 2024-07-30 00:59:51 · 3423 阅读 · 0 评论 -
使用 gzexe 压缩和执行 shell 脚本
gzexe 是一个可以压缩 shell 脚本的工具。它通过使用 gzip 将脚本压缩成一个更小的文件,同时保留脚本的可执行性。压缩后的脚本在执行时,会自动解压缩并运行原始脚本内容。原创 2024-07-23 23:23:35 · 939 阅读 · 0 评论 -
syslogd: 系统日志守护进程
将某个进程的日志写入特定的 log 文件原创 2024-07-16 23:48:34 · 1117 阅读 · 0 评论 -
pstore 存储内核崩溃日志
pstore(Persistent Storage)是 Linux 内核提供的一种机制,最初是用于系统发生oops 或 panic 时,自动保存内核 log buffer 中的日志。不过在当前内核版本中,其已经支持了更多的功能,如保存 console 日志、ftrace 消息和用户空间日志。同时,它还支持将这些消息保存在不同的存储设备中,如内存、块设备或 mtd 设备。原创 2024-07-11 08:45:00 · 780 阅读 · 0 评论 -
使用 /proc/sysrq-trigger 进行系统调试和故障排除
/proc/sysrq-trigger 是 Linux 内核提供的一个接口,它允许用户通过写入特定命令来触发系统请求(SysRq)功能。原创 2024-07-03 22:41:56 · 1386 阅读 · 0 评论 -
/proc/config.gz
有时候,我们想知道一个运行着的内核都打开了哪些编译选项,当然,查看编译环境的 .config 文件是一个不错的选择,除此之外,还有没有别的办法呢?当然有,那就是 /proc/config.gz。原创 2024-07-01 23:04:59 · 476 阅读 · 0 评论 -
您的计算机时间有误
SSL 证书具有一定的有效期限,一旦证书过期,它就不再被认为是可信的。所以,如果计算机的时间和服务器的时间不同步,可能会导致认为证书已过期,从而拒绝提供服务。原创 2024-06-11 21:45:00 · 377 阅读 · 0 评论 -
netplan
netplan 是 ubuntu 17.10 版本中引入的一种全新的命令行网络配置程序,用于在ubuntu系统中轻松管理和配置网络设置。原创 2024-05-27 01:02:28 · 1122 阅读 · 0 评论 -
AppImage 创建快捷方式
在桌面右击,点击允许启动后,图标就显示正常了,双击图标,就可以正常运行了原创 2024-05-10 01:52:09 · 823 阅读 · 0 评论 -
ASAN
ASAN 是 Address Sanitizer 的简称,是 GCC 自带的内存问题检查工具,比较轻量级,非常适合单元测试时检查内存问题。使用也比较简单,只需要在编译时加上 `-fsanitize=address` 选项即可。原创 2024-04-25 22:15:00 · 1011 阅读 · 0 评论 -
Linux kernel 墙上时间
果然,Linux 系统时间不走了。原创 2024-04-14 23:15:00 · 637 阅读 · 0 评论 -
性能优化——避免使用除法
ARM 硬件上不支持除法指令。编译器是通过调用 C 库函数来实现除法运算的,要花费 20~100 个周期。如果不能避免除法运算,那么就尽量使除数和被除数是无符号的整数。原创 2024-03-31 19:54:15 · 569 阅读 · 0 评论 -
gdb 调试记录
持续更新。。。原创 2024-03-05 22:34:49 · 650 阅读 · 0 评论 -
内核打印应用程序出错信息,DEBUG_USER
当用户程序由于异常而崩溃时,内核可以打印一条简短的消息来说明问题所在。这有时对调试很有帮助,但对生产系统没有任何作用。大多数人应该在这里说 N。此外,你需要在内核命令行上传递 user_debug=N 来启用此特性。原创 2024-02-29 22:32:54 · 908 阅读 · 0 评论 -
ASLR 和 PIE
ASLR 不负责代码段以及数据段的随机化工作,这项工作由 PIE 负责。但是只有在开启 ASLR 之后,PIE 才会生效。无论是 ASLR 还是 PIE,由于颗粒度问题,被随机化的都只是某个对象的起始地址,而在该对象的内部依然保持原来的结构,也就是说相对偏移是不会变的。原创 2024-02-26 21:43:45 · 827 阅读 · 0 评论 -
watchpoint
内存被踩,通过 watchpoint 找到真凶。原创 2024-02-22 21:57:10 · 481 阅读 · 0 评论 -
Kernel 地图
看内核代码,先看 Makefile 和 Kconfig。原创 2024-02-19 22:03:57 · 980 阅读 · 0 评论 -
PAGE_OFFSET
PAGE_OFFSET 的值支持通过 Kconfig 配置,其默认的值是 0xC0000000,即用户空间 3GB,内核空间 1GB。当然这个可以由我们动态配置,可以配置 PAGE_OFFSET 为 0x80000000,即用户空间和内核空间均为 2GB。原创 2024-01-31 23:15:00 · 420 阅读 · 0 评论 -
CPU 如何识别用户空间不同进程的虚拟地址
每个进程都有自己的页表。原创 2024-01-23 21:45:00 · 498 阅读 · 0 评论 -
内核调试 && 应用程序调试
内核调试和应用程序调试,底层都是使用 gdb,只不过受限于环境、系统等因素,使用了不同的辅助程序(设备)罢了。原创 2024-01-19 00:59:09 · 537 阅读 · 0 评论 -
x86 寄存器
8086 处理器内部有 8 个 16 位的通用寄存器,分别被命名为 AX、BX、CX、DX、SI、DI、BP、SP。原创 2024-01-17 22:15:00 · 916 阅读 · 0 评论 -
ARM 寄存器
Cortex A 系列的 ARM 处理器共有 40 个 32 位寄存器,其中 33 个为通用寄存器,7 个为状态寄存器。用户模式和系统模式共用同一组寄存器。原创 2024-01-11 21:37:25 · 1725 阅读 · 1 评论 -
pci_enable_device()
从协议中来,到协议中去。原创 2023-12-25 22:15:00 · 1530 阅读 · 0 评论 -
/dev/root
/dev/root 曾经是 /dev/mmcblk0p2 的软链接,在使用这个软链接将该设备挂载到根目录后,又将该软链接删除了。原创 2023-11-27 01:42:38 · 1298 阅读 · 0 评论 -
DHCP Host Name
udhcpc 命令使用 -x hostname:xxx 选项,可以在 DHCP Discover 报文中添加 option 12 选项,即 Host Name。原创 2023-12-05 23:37:16 · 1540 阅读 · 0 评论 -
genimage 打包镜像
用户准备好待打包的原料:uboot.bin、zImage、rootfs 等,然后编写一个配置文件 genimage.cfg,描述如何进行打包,然后运行 genimage -c genimage.cfg 就可以打包好一个镜像。原创 2023-11-29 23:15:00 · 1034 阅读 · 0 评论 -
uboot 添加命令
uboot 中有个 ping 命令,用来检查网络是否通畅。我们照着这个命令添加一个 ping2 命令。原创 2023-11-15 23:40:29 · 369 阅读 · 0 评论
分享