
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
内核通知链(Kernel Notifier Chains) 摘要 内核通知链是Linux内核中实现子系统间解耦通信的发布-订阅机制,主要用于异步事件广播。它通过链表结构(struct notifier_block)实现,包含四种类型:原子型(中断上下文)、阻塞型(进程上下文)、原始型(无锁保护)和SRCU型(可睡眠RCU变体)。典型应用包括网络设备状态变化、CPU热插拔、模块加载卸载和系统关机等事

摘要 本文介绍了在U-Boot中点亮STM32H7系列芯片连接的LCD屏幕的配置过程。主要步骤包括:1)修改设备树文件,配置LTDC控制器引脚复用和屏幕参数;2)启用相关的Kconfig选项,如视频驱动、LCD支持等;3)通过日志验证了配置的正确性,显示控制器成功初始化为800x480分辨率。文章强调了不同芯片系列引脚复用功能的差异,并建议在配置前先通过其他方式验证屏幕完好性。

摘要:本文介绍了CmBacktrace错误追踪工具的安装与使用步骤。首先需从GitHub获取最新代码并编译,通过ENV工具配置参数(避免使用GB18030编码)。随后使用scons生成MDK5工程,遇到编译错误时可参考GitHub issue解决方案。测试时通过串口输入命令触发断言,再利用addr2line工具解析调用栈地址定位问题代码位置。文中详细展示了命令行操作过程及结果截图,包括如何查找.a

摘要:本文分析了STM32F7芯片使用DMA+USART+FIFO通信时出现数据丢失的问题。通过调试发现系统频繁进入DMA的FIFO错误中断(错误代码10),但实际配置并未启用FIFO功能。解决方案是在DMA中断服务函数中通过__HAL_DMA_DISABLE_IT(&hdma_usart1_tx,DMA_IT_FE)关闭FIFO错误中断。文中指出若不处理该错误,HAL库会强制关闭DMA传

文章摘要 内核时钟滴答(Kernel Tick)是Linux内核的核心机制,通过kernel/time/tick-*.c实现,驱动时间流逝(如更新jiffies)和进程抢占(触发调度器)。其演进经历了三个阶段:固定周期性滴答(基础但耗能)、无滴答空闲(NO_HZ_IDLE)(空闲时停止滴答以节能)和完全无滴答(NO_HZ_FULL)(为高性能计算提供低干扰环境)。现代实现依赖高精度定时器(hrti

《Linux内核调度系统调用分析》摘要: 本文探讨了kernel/sched/syscalls.c的核心作用,该文件作为用户空间与内核调度器的关键接口层,通过系统调用(如sched_setscheduler()、nice())实现进程调度控制。其发展历经Unix经典调用、POSIX实时扩展到多核亲和性支持,采用"校验-分发"模型确保安全稳定。相比cgroups的资源组控制和sy

Linux交换机制(Swap)通过将不活跃的内存页移至磁盘交换区,有效扩展了物理内存容量。该技术起源于UNIX,经历了从进程交换到分页交换、支持交换文件、多交换区优先级等关键演进。核心流程包括换出(选择牺牲页、写入磁盘、更新页表)和换入(触发缺页异常、从磁盘读取)。交换机制的优势在于低成本扩展内存并提高系统稳定性,但存在磁盘I/O性能下降的缺陷。典型应用场景包括内存波动大的服务器、低内存设备及系统

本文介绍了在GitHub上按邮箱地址追溯代码提交的两种方法:全局搜索和仓库内搜索。通过committer-email和author-email指令可以精准查找指定邮箱的提交记录,适用于代码审计、贡献归属确认等场景。文章还解释了Git中作者(Author)与提交者(Committer)的区别,并建议结合两种搜索方式确保全面覆盖。这些技巧能帮助开发者高效定位特定人员的代码变更,提升项目管理效率。
Linux内核中的iov_iter通用I/O向量迭代器是解决非连续内存缓冲区操作的核心技术。它通过统一表示用户空间iovec、内核空间kvec和块设备bvec等不同缓冲区类型,消除了内核I/O栈中的重复代码问题。该技术支持零拷贝操作,成为文件系统、网络栈和管道等子系统的通用基础,极大简化了数据移动逻辑。其多态迭代器设计通过类型标识和状态维护实现通用API,使调用者无需关心底层缓冲区差异。虽然对连续

本文介绍了Linux内核中的完全公平调度器(CFS)的核心实现文件kernel/sched/fair.c。CFS是Linux默认的普通进程调度策略,旨在解决传统O(1)调度器的公平性问题。文章从历史背景、核心原理、使用场景和对比分析四个方面展开: 历史与背景:CFS于Linux 2.6.23版本引入,取代了启发式算法的O(1)调度器,通过虚拟运行时间(vruntime)和红黑树结构实现公平调度。它








