![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 85
程序员秘书
公号同名《程序员秘书》,Linux/ARM/Android/嵌入式/工具人/技术伴于生活和成长,愿永为少年,心中有火,眼中有光,一个普通程序员的秘书。
展开
-
Linux 记一次spin_lock死锁优化经验
联系:两者都是非阻塞式的自旋锁获取操作,不成功即返回,都不会引起调用者睡眠。区别:主要区别在于对中断的处理上。不改变当前中断状态,而则会在操作前临时禁用中断,操作后恢复中断状态,确保了操作的原子性。选择使用哪个函数取决于具体的上下文需求。如果你确信在调用时不希望中断打断锁的获取过程,或者你处于一个可能需要明确控制中断状态的上下文中,更为合适。而在不需要特别处理中断,或者明确知道当前中断状态已满足要求的情况下,可以使用。原创 2024-06-05 07:32:19 · 285 阅读 · 0 评论 -
在Linux或Android系统中,SIGSTOP和SIGCONT学习
功能作用SIGSTOP用来停止进程,SIGCONT用来恢复停止的进程。协同工作: 这两个信号通常一起使用,形成一种暂停与恢复进程的机制,是作业控制和进程调试的基本组件。可处理性SIGSTOP不能被捕获或忽略,是不可阻挡的;而SIGCONT可以被程序通过信号处理器来处理,尽管通常情况下也不会这么做。原创 2024-05-29 11:17:16 · 1001 阅读 · 0 评论 -
Linux dd命令,希望不常用,但非常有用的命令~
dd命令在 Linux 中是一个非常强大的工具,用于复制和转换文件。它主要用于低级复制和转换,特别是当涉及块设备(如硬盘分区)时。dd命令的语法相当灵活,但也因为它的复杂性而有时让新手感到困惑。原创 2024-05-28 16:39:23 · 298 阅读 · 0 评论 -
Linux内核内存回收管理常见策略和概念
Linux内核的内存回收管理是复杂而精细的,旨在确保系统在各种负载和使用模式下都能高效、稳定地运行。通过不断优化和引入新技术,Linux内核的内存管理能力随着每个新版本的发布而不断增强。这些策略和机制的共同目标是最大化内存利用率,最小化内存碎片,同时保持系统的响应性和性能。From:程序员秘书。原创 2024-05-21 07:04:22 · 956 阅读 · 0 评论 -
Linux input子系统(二)uinput 原理和用途
uinput即,uinput 的实现是基于 Linux input子系统(Input Subsystem),允许用户空间程序创建虚拟的输入设备并向内核发送输入事件,比如键盘敲击、鼠标移动等,就像这些事件来自真实的物理设备一样。对于开发自定义输入设备驱动、自动化测试、游戏控制模拟以及各种人机交互实验等场景非常有用。原创 2024-05-19 15:52:07 · 783 阅读 · 0 评论 -
Linux内存管理常见概念
在多处理器系统中,NUMA是一种内存设计,其中每个处理器都有自己的本地内存,访问本地内存比访问远程内存更快。内存分页是操作系统用于管理内存的一种机制,它将物理内存分割成固定大小的块,称为页(page)。它可以设置内存使用上限,监控内存使用情况,并在达到限制时触发内存回收。内存屏障是一组指令,用于确保在多处理器系统中,内存操作的执行顺序。为了提高系统的安全性,Linux内核支持内存加密,确保敏感数据即使在物理内存中也是加密的。内存屏障是一种同步机制,用于确保在多处理器系统中,内存操作的执行顺序符合预期。原创 2024-05-18 09:40:56 · 568 阅读 · 0 评论 -
ftrace tracers 之 function、function_graph 使用笔记(二)
ftrace 功能很强大,不仅能跟踪代码流程,也能用来分析性能问题。我们先从简单的代码流程跟踪使用学起。一般用作产品发布的版本,默认tracers 应该都是 nop,如果想要使用 其他 tracers 需要打开对应的内核配置宏才行。比如,今天使用到的 function、function_graph,对应需要:(1)function 主要用于跟踪内核函数的调用栈(其被调用过程)(2)function_graph 主要用于跟踪内核函数内部调用流程及耗时root:/sys/kernel/tracin原创 2024-05-02 07:34:19 · 900 阅读 · 1 评论 -
Linux ftrace 之 function、function_graph 使用笔记(一)
ftrace 功能很强大,不仅能跟踪代码流程,也能用来分析性能问题。尤其要深入和快速学习linux内核相关流程,非常有用。原创 2022-05-28 14:47:07 · 622 阅读 · 0 评论 -
如何将ubuntu Linux kernel版本升级到最新
在Ubuntu上升级到最新内核版本,可以选择使用官方的Mainline内核或者等待官方支持的内核更新。以下是通过Mainline内核升级的步骤,这种方法可以让快速获取到最新发布的内核版本,但请注意,这些内核可能不是经过Ubuntu官方测试和支持的,适合那些需要最新内核特性的用户。原创 2024-05-02 07:32:24 · 645 阅读 · 0 评论 -
Linux ARM平台上的内联汇编学习(asm ,inline assembly)
在Linux+ARM平台上使用内联汇编(inline assembly),可以通过GCC(GNU Compiler Collection)提供的内联汇编语法来实现。内联汇编允许开发者在C/C++代码中直接嵌入汇编指令,对于编写性能敏感的代码、访问特定硬件特性或者实现某些底层功能非常有用。下面就结合内联汇编的优缺点为出发点,明白为什么要学习和掌握它,以及以一个内联汇编代码为例,熟悉一下内联汇编相关语法规则。内联汇编作为一种在高级语言代码中直接嵌入低级机器指令的技术,具有其独特的优势和潜在的局限性。原创 2024-05-12 07:44:17 · 930 阅读 · 0 评论 -
不再惧怕Linux panic (一)
在这个例子中,N、Z、C、V标志分别代表负数、零、进位、溢出,daif字段表示调试、中断、故障、同步异常禁止位,PAN和UAO标志分别与数据对齐异常和用户地址中止有关。综上所述,ARM64内核panic打印信息包含了丰富的诊断数据,可以帮助开发者或系统管理员分析崩溃原因、定位错误代码位置,并结合其他调试手段(如内核转储、日志记录等)来解决问题。接下来是一系列寄存器的值,包括程序计数器(PC)、链接寄存器(LR)、栈指针(SP)以及其他通用寄存器(x0-x30)。,表示与MMC设备相关的中断处理程序。原创 2024-05-07 10:11:13 · 410 阅读 · 0 评论 -
不再惧怕Linux内核panic (二) 认识DWARF
1、涉及到。原创 2024-05-15 11:37:06 · 442 阅读 · 0 评论 -
Linux命令shutdown、poweroff、halt与reboot,如同四位舞者,在系统的舞台上以独特韵律演绎着休憩与重启
在Linux中,shutdownpoweroffhalt和reboot命令都是用来管理系统关机或重启操作的工具。尽管它们有着相似的目标,即控制系统的运行状态,但它们之间存在一些关键的区别,包括功能、操作方式、选项以及在内核源码中的实现。原创 2024-04-29 13:04:11 · 1212 阅读 · 0 评论 -
linux内核中打印cpumask的方法总结
中包含的 CPU 核心编号列表,并将其作为函数参数传递给其他内核日志打印函数。总结,具体开发过程中选择哪种打印方法取决于具体的需求和调试环境。)用于表示一组CPU编号,常用于描述进程或任务的亲和性、中断或定时器的分配范围等场景。时,会在内核日志中看到堆栈跟踪信息以及跟随其后的CPU掩码打印。函数,它会自动打印当前CPU的标识。宏则提供了一种更直接的方式,它内部会处理掩码的格式化输出。获取掩码的第一个长整型元素,用于指定要打印的位数。函数,可以接收格式化字符串和参数,类似用户空间的。这种方式不太常见,因为。原创 2024-04-27 10:00:00 · 532 阅读 · 0 评论