
Linux
文章平均质量分 82
三水问海
不积小流,无以成江海,无以成浪潮!
展开
-
openEuler/龙蜥OS:不同内核版本的驱动模块可以交叉加载吗?
如果内核配置中未启用强制模块签名验证(即未启用 CONFIG_MODULE_SIG_FORCE),内核在加载模块时会检查签名,但如果签名缺失或无效,内核不会拒绝加载模块,而是会打印警告信息并将内核标记为“tainted”(污染状态)。如果内核配置中启用了强制模块签名验证(即启用了 CONFIG_MODULE_SIG_FORCE),内核会要求所有模块必须具有有效的签名。原创 2025-02-21 14:43:37 · 972 阅读 · 0 评论 -
Linux内核VFS文件锁FL_FLOCK和FL_POSIX对比分析
在 Linux 系统中,文件锁可以分为两种类型:FL_FLOCK和 FL_POSIX。它们分别对应不同的文件锁机制,即flock和fcntllockf。这两种锁的实现方式、行为和使用场景有所不同。以下是对它们的详细对比和分析。原创 2025-01-18 10:24:02 · 973 阅读 · 0 评论 -
Linux 文件锁:fcntl、lockf 和 flock 的对比与应用
在 Linux 系统中,fcntllockf和flock是三种常见的文件锁机制。fcntl功能强大,支持记录锁和共享锁,适合复杂的锁定需求。lockf是fcntl的简化版本,适合简单的独占锁需求。flock简单易用,适合需要锁定整个文件的场景。在实际开发中,可以根据具体需求选择合适的文件锁机制,以确保文件访问的安全性和一致性。原创 2025-01-17 11:09:02 · 530 阅读 · 0 评论 -
抢在main()函数之前起飞的constructor构造函数
和指定优先级数值,我们可以精确控制程序启动时各个初始化步骤的执行顺序。这不仅有助于组织复杂的初始化逻辑,还能提高系统的稳定性和可靠性。希望这个简单的例子能够帮助你理解构造函数优先级在C程序中的应用。本文将通过一个简单的“Hello World”示例,演示如何使用构造函数优先级来管理程序启动时的初始化步骤。此外,结合日志记录可以帮助追踪初始化过程中的问题。属性来定义构造函数(即初始化函数),并允许指定这些函数的优先级以控制它们的执行顺序。的 GCC 或兼容编译器。然而,在某些情况下,你可能希望在。原创 2024-12-31 14:52:39 · 792 阅读 · 0 评论 -
从 Shell 加载到执行 “Hello World“ 的完整流程
从用户在 Shell 中输入命令开始,经过一系列复杂的初始化和加载过程,最终到达main()函数的执行,每个阶段都有其特定的任务,以确保程序能够在正确的环境中开始执行。这一过程中涉及多个关键步骤,包括创建新进程、加载和解析 ELF 文件、初始化运行时环境以及调用和用户定义的main()函数。原创 2024-12-30 10:27:43 · 759 阅读 · 0 评论 -
5.1.1 用户层:用hello world演示系统调用
用hello world演示系统调用原创 2024-12-09 09:50:22 · 1247 阅读 · 0 评论 -
嵌入式Linux:在运行中的Linux中查找自身内核编译配置
在嵌入式系统开发中,了解当前运行的Linux内核的具体配置至关重要。这不仅有助于调试问题,还能优化性能和确保兼容性。本文将介绍如何通过`/proc/config.gz`文件来查看内核编译时的配置选项,并以查找HZ值为例进行说明。原创 2024-11-29 10:05:01 · 527 阅读 · 0 评论 -
如何调整Linux中的OOM Killer行为
在Linux系统中,当系统的内存资源耗尽时,内核会触发“Out of Memory”(简称OOM)机制来尝试回收内存,通常是通过终止占用大量内存的进程。虽然关闭OOM Killer是不可能的,因为它是内核的一部分,但可以通过调整相关内核参数来改变其行为。本文将介绍两种方法来调整OOM Killer的行为。原创 2024-11-21 16:31:18 · 606 阅读 · 0 评论 -
嵌入式Linux: ARM64: platform device的名字是怎么生成的?
Qemu ARM64启动后,可以看到,platform device的名字有两种,platform device的名字是怎么生成的?原创 2024-11-05 23:26:46 · 854 阅读 · 0 评论 -
嵌入式linux: ARM: dts中定义的设备属于/sys/bus/platform还是/sys/bus/amba
在设备树(Device Tree Source, DTS)中定义的设备最终会出现在 /sys/bus/platform 还是 /sys/bus/amba 目录下,取决于设备节点的 compatible 属性以及驱动程序如何处理这些设备。下面是确定设备属于哪个总线的一些步骤和方法:原创 2024-09-30 10:43:53 · 342 阅读 · 0 评论 -
ARM64 Linux 找出dts的3种方法
ARM64 Linux 找出dts的3种方法原创 2024-09-29 20:54:19 · 1501 阅读 · 0 评论 -
深入解析 ARM64 SOC RK3568的 /proc/interrupts 输出
在 Linux 系统中,/proc/interrupts 文件提供了系统中断的详细信息,是性能分析和故障排除的重要工具。本文将重点解析 RK3568环境下该文件的输出格式及其背后的结构。原创 2024-09-27 21:54:41 · 1319 阅读 · 0 评论