自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wdfk-prog.space

wdfk_prog的博客

  • 博客(289)
  • 资源 (26)
  • 收藏
  • 关注

原创 hpatch 学习笔记系列

hpatch 学习笔记摘要 本文是hpatch补丁工具系列的学习笔记,包含多个技术文档链接。主要内容涉及后缀数组算法(libdivsufsort、SA-IS)、差分补丁原理(hdiffpatch、HPatch)以及相关工具实现(hpatch_lite、tinyuz)。笔记详细记录了各种算法的实现细节,如divsufsort、sssort、trsort等排序方法,适合对二进制补丁技术和高效差异算法感兴趣的开发者参考学习。

2025-10-06 07:49:23 639

原创 [Linux]学习笔记系列

这篇Linux学习笔记整理了ARM架构和驱动开发相关的学习资料。主要内容分为两部分:第一部分是ARM架构相关,包括汇编、启动流程、调试、内存管理等核心模块;第二部分是Linux驱动开发,涵盖了基础驱动框架、时钟管理、串口驱动等常见驱动模块,以及设备树、GPIO、I2C等硬件接口相关内容。这些笔记以Markdown格式存储在GitHub仓库中,适合Linux内核和驱动开发者参考学习。

2025-08-28 09:35:58 721

原创 u-boot学习笔记系列

这是一个关于U-Boot学习笔记的GitHub仓库,主要包含ART-Pi开发板的构建命令和U-Boot源码分析资料。内容按功能模块分类,包括API、架构(arm)、启动流程(bootm/bootz)、命令系统(cmd)、通用功能(common)、设备驱动模型(dm)等核心组件。每个模块都有对应的Markdown文档,详细记录了U-Boot的关键技术点,如ARM架构、设备树、时钟管理、外设驱动等底层实现原理。该项目适合嵌入式开发者系统学习U-Boot启动流程和驱动开发。

2025-02-27 08:26:55 2061

原创 rtthread学习笔记系列

本文是一个RT-Thread实时操作系统的学习笔记合集,包含44个技术文档,涵盖了RT-Thread系统的核心组件和驱动开发。主要内容包括:文件系统(FATFS、LittleFS)、通信协议驱动(CAN、I2C、SPI、USB)、内核机制(线程调度、内存管理、IPC)、系统工具(FINSH、ULOG)以及底层开发(汇编、链接文件)等。该笔记系统整理了RT-Thread的各个功能模块,为开发者提供了全面的技术参考。

2025-01-16 11:56:57 1073

原创 [Linux]学习笔记系列 -- [kernel]workqueue

内核工作队列(Workqueues)摘要 工作队列是Linux内核中通用的后台任务处理框架,主要用于将需要睡眠或耗时较长的任务从原子上下文(如中断处理)推迟到安全的进程上下文中执行。其发展经历了从单一线程(keventd)到Per-CPU线程,再到并发管理工作队列(CMWQ)的演进。CMWQ采用动态线程池管理,自动调整工作者线程数量以平衡性能和资源消耗。 核心工作原理是通过work_struct结构表示任务,使用queue_work将其加入工作队列,由内核线程kworker在进程上下文中执行。主要优势包括上

2025-11-24 08:47:02 546

原创 [Linux]学习笔记系列 -- [kernel]wait

Linux内核中的等待队列(Wait Queues)是用于实现进程阻塞与唤醒的核心同步机制,解决了CPU资源高效利用问题。其核心原理是通过wait_queue_head_t和wait_queue_entry_t数据结构实现"等待-唤醒"协议:进程在条件不满足时加入队列睡眠,条件满足后被生产者唤醒。主要优势在于高效性、通用性和灵活性,支持可中断/不可中断睡眠及独占/广播唤醒。广泛应用于I/O多路复用、驱动开发及构建高级同步原语。但不适用于原子上下文,编程复杂度较高。相比自旋锁适用于长时间等

2025-11-24 08:43:18 581

原创 [Linux]学习笔记系列 -- [kernel]utsname_sysctl

本文分析了Linux内核中utsname_sysctl.c文件的功能与实现,该模块负责通过sysctl接口管理UTS命名空间中的系统标识信息。文章从历史背景出发,介绍了该技术为解决系统标识动态查询和修改需求而诞生,并随着UTS命名空间的引入实现容器隔离功能。核心原理部分详细阐述了其作为UTS命名空间数据与sysctl接口桥梁的工作机制,包括数据存储结构、请求处理流程和命名空间隔离特性。文章对比了sysctl接口与系统调用的异同,指出其在脚本友好性方面的优势,同时分析了固定长度限制等局限性。典型应用场景包括系

2025-11-22 09:33:05 803

原创 [Linux]学习笔记系列 -- [kernel]usermode_helper

摘要: Linux内核中的usermode_helper机制提供了内核与用户空间程序交互的桥梁。该技术主要用于内核需要执行用户空间程序完成特定任务的场景,如固件加载、模块动态加载、设备热插拔处理等。其核心原理是通过异步工作队列和kernel_execve()实现用户空间程序的调用,具有解耦内核与用户空间、保持内核简洁的优势。然而,由于进程创建开销大,不适用于高频交互场景。与netlink、sysfs等其他内核-用户空间通信方式相比,usermode_helper更适合执行复杂的用户空间任务,而非简单状态通知

2025-11-22 09:31:58 1026

原创 [Linux]学习笔记系列 -- [kernel]sysctl

摘要: Sysctl是Linux内核提供的运行时参数调整接口,通过/proc/sys文件系统实现动态修改内核行为(如网络、虚拟内存等)。其核心是ctl_table注册机制,将内核变量映射为可读写的文件,支持层次化命名空间(如net.ipv4.ip_forward)。相比直接编译内核或引导参数,Sysctl提供统一、易用的动态调优能力,但仅适用于全局参数调整,设备控制需用sysfs,进程信息需通过procfs。主要应用于网络优化、内存管理及安全加固等场景,是系统管理员的核心工具之一。

2025-11-21 23:45:00 1480

原创 [Linux]学习笔记系列 -- [kernel]trace

文章摘要 include/linux/ptrace.h 定义了Linux内核中ptrace()系统调用的接口,用于进程跟踪(Process Tracing)。该技术起源于早期Unix,旨在解决调试器与内核交互的需求,允许一个进程(tracer)观察和控制另一个进程(tracee)的执行。核心功能包括调试(如GDB)、系统调用追踪(如strace)和动态分析。 ptrace的工作原理基于tracer-tracee模型,通过建立追踪关系、暂停进程执行、检查/修改寄存器与内存,并恢复执行。其优势在于强大的控制力和

2025-11-21 23:45:00 1384

原创 [Linux]学习笔记系列 -- [kernel]sys

Linux内核的kernel/sys.c文件实现了重要的系统信息与控制接口,包含一系列基础但关键的系统调用。这些系统调用解决了系统状态监控(如sysinfo)、系统标识管理(如uname)、生命周期控制(如reboot)等核心问题。该文件继承UNIX传统,经历了prctl()功能扩展和sysctl()废弃等重要演进。kernel/sys.c为系统工具提供了标准化接口,所有Linux管理工具都依赖其功能。其设计采用系统调用分发中心模式,通过SYSCALL_DEFINE*宏定义函数,具有标准化和集中化优势,但也

2025-11-20 10:32:24 1172

原创 [Linux]学习笔记系列 -- [kernel]signal

Linux内核中的信号处理机制为进程间异步通信提供了一种轻量级解决方案。kernel/signal.c实现了信号生成、排队和递送的核心逻辑,每个进程通过task_struct中的信号描述符管理信号状态。当信号触发时,内核会中断进程执行并调用注册的处理函数,处理完毕后再恢复原执行流。该技术源自Unix系统,经历了不可靠信号、POSIX可靠信号、实时信号等多个发展阶段,广泛应用于进程管理、异常处理等场景。相比管道、套接字等IPC机制,信号的优势在于低开销异步通知,但存在信息量有限、可能打断正常执行流等局限性,不

2025-11-20 10:31:28 1132

原创 [Linux]学习笔记系列 -- [kernel]secomp

Seccomp:Linux系统调用防火墙 Seccomp(Secure Computing Mode)是Linux内核的安全机制,用于限制进程可用的系统调用,减少攻击面。它分为两种模式:严格模式(仅允许4个基础系统调用)和过滤模式(通过BPF程序动态过滤系统调用)。Seccomp广泛应用于容器(Docker/K8s)、浏览器沙箱(Chrome/Firefox)和系统服务(systemd/OpenSSH)中,遵循最小权限原则。其优势包括低性能开销、高灵活性和防御TOCTOU攻击的能力,但策略配置复杂且存在跨架

2025-11-19 08:58:35 1079

原创 [Linux]学习笔记系列 -- [kernel]resource

本文探讨了Linux内核中的资源管理机制(kernel/resource.c),重点分析了其硬件资源管理功能。该技术通过树状结构管理I/O内存和I/O端口资源,防止硬件资源冲突。文章概述了其发展历程、核心原理、优势局限性和适用场景,并与中断管理、DMA等子系统进行了对比。作为内核基础组件,它为设备驱动提供资源仲裁,确保硬件访问的有序性,并通过/proc接口提供系统资源分配的可视化功能。

2025-11-19 08:57:28 810

原创 [Linux]学习笔记系列 -- [kernel]reboot

这段代码注释描述的是register_restart_handler()函数,它用于在内核中注册一个系统重启处理器。以下是关键点的解析: 功能:该函数允许内核模块或驱动程序注册一个回调函数,当系统需要重启时会被调用。 优先级机制: 0:最低优先级,作为最后的重启手段 128:默认优先级,适用于大多数通用重启处理器 255:最高优先级,会抢占其他所有处理器 调用时机: 在系统重启序列的最后阶段,由machine_restart()调用 通过do_kernel_restart()触发已注册的处理器 典型使用场景

2025-11-18 10:30:26 476

原创 [Linux]学习笔记系列 -- [kernel]printk

文章摘要 Linux内核打印机制printk是内核最基础、最稳定的日志记录组件。它解决了内核在受限环境中可靠输出诊断信息的问题,尤其适用于系统启动早期、中断异常处理等场景。printk采用生产者-消费者模型,通过环形缓冲区实现调用者与控制台的解耦,保证消息可靠存储。其优势在于简单易用、健壮性强,但也存在性能开销大、可能引发日志风暴等问题。相比其他机制如Tracepoints和procfs,printk更适合低频重要事件的记录,而非高频性能敏感路径。作为内核开发的标准日志接口,printk被广泛应用于驱动初始

2025-11-18 10:29:46 414

原创 [Linux]学习笔记系列 -- [kernel]power

Linux电源管理核心(kernel/power)实现了系统休眠、唤醒和运行时电源管理框架,解决了移动设备续航、服务器节能等关键问题。它由系统级休眠/唤醒、运行时电源管理和唤醒源机制三大组件构成,通过统一API和分层设计提供灵活管理。该框架是现代Linux设备必备的核心功能,广泛应用于笔记本电脑休眠、手机锁屏等场景。其优势在于标准化接口和精细化控制,但对驱动质量要求较高,在实时系统等场景可能存在延迟问题。

2025-11-17 08:31:28 1218 1

原创 [Linux]学习笔记系列 -- [kernel]pid

本文分析了Linux内核中的PID管理机制(kernel/pid.c),重点介绍了其核心数据结构struct pid及其在进程虚拟化和生命周期控制中的作用。该技术主要解决了容器化隔离、检查点恢复等场景下的PID管理问题,通过将PID抽象为独立的内核对象,支持多命名空间下的PID虚拟化。文章详细阐述了struct pid的设计原理、优势与局限性,并与旧的扁平化PID模型进行了对比。作为Linux进程模型的核心组件,该机制是容器技术的基础支撑,所有进程相关操作都依赖于这一实现。

2025-11-17 08:30:03 992 2

原创 Xshell终端连接Ubuntu/Debian无颜色的解决方案

本文针对Xshell连接Linux服务器后终端无彩色显示的问题,提供了系统性的解决方案。首先通过tput colors命令诊断问题根源:若输出异常,需检查Xshell的终端类型设置,建议改为xterm-256color并选用彩色配色方案;若终端支持颜色但显示异常,则需编辑Linux用户的.bashrc文件,取消force_color_prompt和ls命令相关颜色配置的注释。文章详细说明了客户端和服务端的配置步骤,并给出标准.bashrc精简模板,帮助用户快速恢复终端彩色显示功能,提升工作效率。

2025-11-14 17:17:20 1171

原创 [Linux]学习笔记系列 -- [kernel[params

Linux内核模块参数机制实现模块加载时的灵活参数传递,解决了传统硬编码参数需要重新编译的问题。该技术的核心原理基于编译时元数据生成和加载时参数解析,通过module_param宏将参数变量定义到特殊ELF段,加载时解析用户传递的键值对并赋值。模块参数是内核驱动开发的基础功能,支持通过sysfs在运行时动态修改参数值,提供类型安全检查和标准化的接口。 主要适用于模块配置场景,如调试开关、硬件资源指定、工作模式选择等。相比ioctl、sysfs等机制,模块参数更适合静态配置而非高频数据交换。该技术自Linux

2025-11-14 09:24:54 531

原创 [Linux]学习笔记系列 -- [kernel]nsproxy

摘要 kernel/nsproxy.c 是 Linux 内核中负责管理进程命名空间视图的核心模块,通过 struct nsproxy 结构集中管理进程所属的多个命名空间(如 mount、UTS、IPC、PID、network、user、cgroup 等)。该技术的诞生解决了命名空间高效管理和生命周期控制的复杂性,支持引用计数和写时复制(COW)机制,使得进程在 fork() 时可共享命名空间,而在 unshare() 或 setns() 时能原子化更新命名空间视图。 nsproxy 是容器化技术的基石,被

2025-11-14 09:23:32 1002

原创 [Linux]学习笔记系列 -- [kernel]notifier

内核通知链(Kernel Notifier Chains) 摘要 内核通知链是Linux内核中实现子系统间解耦通信的发布-订阅机制,主要用于异步事件广播。它通过链表结构(struct notifier_block)实现,包含四种类型:原子型(中断上下文)、阻塞型(进程上下文)、原始型(无锁保护)和SRCU型(可睡眠RCU变体)。典型应用包括网络设备状态变化、CPU热插拔、模块加载卸载和系统关机等事件通知。 主要优势是实现了完全解耦,支持多路广播和优先级控制。但存在同步执行、缺乏返回值处理、调试复杂等局限性。

2025-11-13 08:36:01 897

原创 [Linux]学习笔记系列 -- [kernel]memory_barrier

内存屏障(Memory Barrier)是解决多核处理器中指令重排序问题的关键技术,通过强制内存操作顺序和可见性来确保并发编程的正确性。它诞生于多核CPU普及背景下,主要应对编译器优化和CPU乱序执行导致的数据竞争问题。内存屏障分为写屏障、读屏障和全功能屏障,广泛应用于操作系统内核同步原语、无锁数据结构和设备驱动开发。虽然性能开销较高且使用复杂,但它是实现高性能并发的基础工具。普通应用开发推荐使用高级同步抽象,仅在底层性能优化时才直接使用内存屏障。

2025-11-13 08:33:34 783

原创 [Linux]学习笔记系列 -- [kernel]kthread

文章摘要: 本文深入剖析了Linux内核中的kthread机制,重点解读了kernel/kthread.c和include/linux/kthread.h的核心实现。kthread作为内核后台任务的关键基础设施,解决了中断上下文无法睡眠、用户进程不可靠等核心问题。文章从历史背景切入,分析其发展历程及标准化API演进,详细阐述kthread的创建流程、生命周期管理和停止机制,并对比了workqueue/tasklet等方案的适用场景。通过kthread_init_work等宏的源码解析,展现了工作线程的初始化

2025-11-12 09:06:27 733

原创 [Linux]学习笔记系列 -- [kernel]ksysfs

ksysfs.c: Sysfs内核对象接口的核心实现 kernel/ksysfs.c是Linux内核中实现sysfs文件系统的核心代码,它将内核对象层次结构映射为文件系统。sysfs解决了早期/proc文件系统的结构混乱问题,为Linux统一设备模型提供了结构化视图,支持设备热插拔和属性管理。 核心原理 sysfs将内核kobject对象转换为目录,attribute属性转换为文件。每个属性关联show和store函数,分别处理读写操作。这种机制实现了内核状态与用户空间的简单交互。 优势与局限 优势包括结构

2025-11-12 09:03:56 646

原创 安全移除VMware虚拟机数据磁盘的终极指南

安全移除VMware虚拟机数据磁盘的操作指南 本文详细介绍了如何安全移除VMware虚拟机中的数据磁盘,避免因错误操作导致系统无法启动。指南采用"先软后硬"的安全流程:首先通过df -h命令确认目标磁盘,备份重要数据后,通过注释/etc/fstab中的挂载条目取消自动挂载;接着执行umount卸载磁盘,完全关闭虚拟机后在VMware中移除虚拟硬盘。最后启动验证确保系统正常运行。整个过程强调数据备份和系统配置修改的谨慎性,提供了完整的命令行操作步骤和可视化截图指引。

2025-11-11 16:07:51 1260

原创 Chrome书签图标“失踪”了?一招“同步大法”让它们全部回来!

摘要:谷歌Chrome浏览器书签图标丢失变灰的问题通常由本地图标缓存文件损坏导致。核心解决方案是"同步大法":退出账号→关闭Chrome→删除损坏的Favicons缓存文件→重新登录并同步→逐个或批量刷新书签重建图标缓存。该方法适用于已开启同步功能的用户,操作前建议备份书签。其他备用方案包括仅重新同步、手动编辑单个书签或清理浏览器缓存。该问题主要影响用户通过视觉标识快速定位网站的浏览效率,彻底修复后可恢复多彩的书签栏导航体验。(148字)

2025-11-11 08:41:20 1247

原创 [Linux]学习笔记系列 -- [kernel]kallsyms

摘要: kallsyms是Linux内核的动态符号解析机制,用于将内存地址转换为可读的符号名。它诞生于解决内核调试、模块加载和性能分析中地址解析的难题,取代了早期的/proc/ksyms。其核心原理是通过编译时压缩符号数据并在运行时高效查找,优势包括动态性、完整性和空间效率,但存在安全风险和性能开销。主要应用于内核崩溃分析、动态追踪和模块开发,是内核可观测性的基石。相比静态的System.map,kallsyms能实时反映内核状态,但资源受限或高安全场景可能需禁用。主流工具如perf和ftrace均依赖该技

2025-11-11 08:36:45 814

原创 PotPlayer采集结束后崩溃?罪魁祸首竟是你的安装路径!

PotPlayer视频采集崩溃问题解决方案:排查发现最新版本(如202509)在非默认C盘路径安装时,采集功能会在停止录制时崩溃导致文件损坏。根本原因是程序在自定义路径下无法正确处理录制结束流程。解决方法为:1.备份当前配置;2.彻底卸载软件;3.重新安装到默认C盘路径(关键步骤);4.恢复配置。此方案通过回归默认安装路径即可解决该隐蔽性Bug,无需调整编码器或驱动设置。

2025-11-10 21:27:01 1003

原创 [Linux]学习笔记系列 -- [kernel]iomem

本文介绍了Linux内核中include/linux/ioport.h文件定义的两组重要宏:IORES_DESC枚举和IORESOURCE标志位。IORES_DESC为不同类型的物理内存区域提供标准分类标识,在STM32等嵌入式系统中主要用于管理预留内存区域。IORESOURCE标志位则用于描述硬件资源类型、属性和状态,在STM32平台上通过设备树配置,对内存保护单元(MPU)的设置和资源管理至关重要。虽然部分定义与PC架构相关,但核心标志在嵌入式系统中起着关键作用,确保硬件资源的正确分类和使用。

2025-11-10 08:42:01 1026

原创 [Linux]学习笔记系列 -- [kernel]fork

title: forkcategories: 是Linux内核的心脏之一,它实现了进程创建的机制。这项技术是为了解决多任务操作系统中的一个根本问题:如何动态地创建新的、独立的执行流(即进程)。在单任务系统中,整个系统只有一个执行上下文。为了实现并发和多用户,系统必须有能力创建新的进程。Unix的设计者为此提出了一个极其优雅且强大的模型:。 就是这一模型的内核实现,它提供了一套机制来复制进程所需的所有资源,并管理这个过程。的演进是Linux性能和功能发展的缩影。是内核最核心、最稳定的代码之一。它的代码不会像

2025-11-10 08:36:29 949

原创 [Linux]学习笔记系列 -- [kernel]exit

Linux进程退出机制解析 摘要:Linux内核的进程退出机制(kernel/exit.c)是确保系统稳定运行的核心组件,负责进程终结和资源回收。该机制通过do_exit()和do_group_exit()函数实现多阶段清理:设置退出标志→释放资源(内存、文件、信号等)→处理子进程关系→转变为僵尸状态→通知父进程→最终释放数据结构。主要优势体现在资源回收的可靠性和有序性,但也存在僵尸进程累积的风险。该机制是所有进程终止(包括正常退出、信号终止、崩溃等)的必经之路,与强制终止(SIGKILL)相比,正常退出允

2025-11-08 09:51:36 1026

原创 [Linux]学习笔记系列 -- [kernel]cred

Linux内核凭证管理(cred)是Linux安全模型的核心组件,采用写时复制和RCU机制高效管理任务身份与权限。通过将身份信息从task_struct分离到独立的struct cred结构,实现了无锁读取和并发安全。其核心优势在于高性能的权限检查、无竞争条件的安全性和高效内存使用,适用于所有系统调用、文件访问和网络操作等场景。虽然权限修改涉及内存分配开销,但这一权衡在权限检查更频繁的内核环境中被广泛接受。作为Linux内核强制使用的权限管理机制,cred是现代多用户操作系统安全基础的典范设计。

2025-11-08 09:48:04 1094

原创 [Linux]学习笔记系列 -- [kernel]cpu

本文摘要主要分析了Linux内核中CPU相关的部分代码实现,包括CPU状态设置、热插拔初始化以及cpumask操作等关键功能。重点内容包括:1) cpumask相关工具宏的实现;2) CPU核心状态的设置接口(online/active/present/possible等);3) 引导CPU的初始化流程;4) CPU热插拔状态管理机制。这些代码为Linux内核提供了CPU资源的动态管理能力,支持SMP系统的核心功能实现。

2025-11-07 11:28:31 751

原创 [Linux]学习笔记系列 -- [kernel]completion

本文介绍了Linux内核中的完成量(Completion)同步原语,它提供了一种简洁高效的机制,用于实现"等待-完成"的同步模式。完成量通过封装等待队列和状态计数器,完美解决了任务完成信号丢失的竞态问题。文章详细分析了完成量的核心原理、设计优势和使用场景,并与互斥锁、信号量等其他同步机制进行了对比。该技术广泛应用于驱动程序、内核线程同步等场景,特别适合一次性事件通知,但不适用于资源保护或复杂条件等待。完成量作为内核基础同步原语,具有API简洁、健壮高效的特点,已成为内核开发中的首选同步工

2025-11-07 11:27:02 973

原创 [Linux]学习笔记系列 -- [kernel]bounds

本文介绍了Linux内核中kernel/bounds.c技术的核心原理与应用。该技术通过"两步构建"过程,动态生成内核数据结构在汇编代码中所需的偏移量和大小常量,解决了硬编码方式带来的维护问题。具体流程是:先编译一个包含特殊宏的C程序,运行后生成头文件供汇编代码使用。这项技术具有准确性高、自动化程度高、跨平台等优势,是连接C和汇编代码的标准解决方案,广泛应用于任务切换、系统调用等核心场景。相比之下,硬编码方法脆弱难维护,脚本解析方法可靠性不足。作为内核构建基础设施的关键部分,该技术确保了

2025-11-06 09:56:31 1004

原创 [RT-Thread]ULOG 创建多个文件后端并保存不同日志方法

使用ULOG组件并创建多个文件后端并保存不同日志方法。终于可以把不那么重要的日志不在控制台显示了

2025-11-06 09:48:32 1390

原创 [Linux]学习笔记系列 -- [kernel]async

本文分析了Linux内核中的异步函数调用框架(async.c)的核心原理与应用场景。该框架作为内核全局工作队列的轻量级封装,提供了最简单的"发后即忘"式异步执行功能,主要用于优化内核启动时间和降低关键路径延迟。其核心实现通过async_entry结构体封装任务,利用工作队列机制执行异步函数,并提供async_cookie_t机制实现同步控制。该框架在启动优化、设备探测等场景中表现优异,具有API简单、开销低的优势,但也存在全局队列共享、功能单一等局限性。文章还将其与工作队列、内核线程等技

2025-11-05 08:40:44 760

原创 [Linux]学习笔记系列 -- [kernel][time]timer

本文摘要: Linux内核传统定时器(timer_list)是基于jiffies的低分辨率定时机制,主要用于毫秒级精度的通用定时场景。其核心采用per-CPU定时器轮算法,具有O(1)时间复杂度和低开销特性,广泛用于网络协议栈、设备驱动等非实时场景。虽然稳定高效,但受限于jiffies粒度(通常4ms),不适用于高精度或硬实时需求。与之相比,hrtimer提供纳秒级精度但开销较大,而workqueue/tasklet则适用于异步延迟执行。timer_list通过级联定时器轮和per-CPU设计解决了早期链表

2025-11-05 08:38:33 515

原创 [Linux]学习笔记系列 -- [kernel][time]timekeeping

Linux内核的时间保持子系统(kernel/time/timekeeping.c)是系统时间维护的核心模块,负责提供高精度、稳定的时间跟踪服务。它通过抽象硬件时钟源(如TSC、HPET)来管理两种关键时间:CLOCK_REALTIME(可调整的墙上时间)和CLOCK_MONOTONIC(单调递增时间)。该技术经历了从固定节拍到动态无节拍(Tickless)的演进,支持纳秒级精度和节能优化。作为Linux内核的绝对核心组件,广泛应用于定时器、调度、文件系统时间戳等场景。其优势包括硬件抽象、高精度和稳定性,但

2025-11-04 08:53:30 1480

FDM打印材料综述.doc

FDM打印材料综述

2019-12-22

数学建模-数学建模的建立.docx

数学建模_数学建模的建立.docx

2019-12-22

e-LinkS使用方法-3.1 (1)

e-Link是Holtek为新一代具OCDS架构的Flash MCU开发的在线侦错调适器,搭配HT-IDE3000软件,提供客户直接在应用板上做侦错的MCU开发工具。

2018-07-25

液晶显示板revc-20141009-sch-r

液晶显示板revc-20141009-sch-r 液晶显示板revc-20141009-sch-r 液晶显示板revc-20141009-sch-r

2018-07-25

PID控制算法的C语言实现(完整版)

最全PID!PID控制算法的C语言实现(完整版)

2018-08-26

NBM7100 电池能量管理设备.docx

NBM7100 电池能量管理设备.docx

2024-05-06

LM324四重运算放大器TI数据手册中文版

LM324四重运算放大器TI数据手册中文版 谷歌翻译版 LMx24,LMx24x,LMx24xx,LM2902,LM2902x,LM2902xx,LM2902xxx四重 运算放大器

2020-09-20

HAL库串口空闲中断+DMA+FIFO实现

HAL库串口空闲中断+DMA+FIFO实现

2022-01-21

CUBE+STM32F7+FREEMODBUSV1.5 多从机

吐血修改!!! 从别人F1标准库的多从机程序移植到F7HAL库中。 已测试可用。 已知BUG:双串口同时1MS一次收发会有溢出错误。

2022-01-21

双串口MODBUS+DMA+FIFO.7z

1.FREEMODBUSV1.5 支持多从机 2.串口模式为DMA+FIFO

2022-01-24

双串口MODBUS.7z

支持多从机MODBUS通信 基于FREEMODBUS改写。 添加DMA+FIFO缓存。能够双串口进行1MS收发不会OVRERUN

2022-01-25

python爬取飞猪机票.py

python爬取飞猪机票 采用selenium模拟登陆 使用微博账号登陆淘宝跳转飞猪python爬取飞猪机票

2019-12-14

STM32F1必备参考书

STM32F1必备参考书 STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书STM32F1必备参考书

2018-07-25

RoboMaster M3508直流无刷减速电机

RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机RoboMaster M3508直流无刷减速电机

2018-07-25

C语言+EasyX库生成星空

C语言+EasyX库生成星空

2018-08-26

C51蜂鸣器播放两只老虎和小星星代码

C51蜂鸣器播放两只老虎和小星星代码,怎么根据谱子打表呢。。。自己摸索吧

2018-08-29

STM32F103C8T6程序

STM32F103C8T6模板

2018-07-25

MAX262-V4.0.7z

MAX262程控滤波器

2021-11-04

STC89C52RC代码

当年写的C52代码,需要的下了不要喷我,我当年写的,也是新手。

2018-08-26

层次分析法在大学生转专业问题中的应用.doc

层次分析法在大学生转专业问题

2019-12-22

HT66Fxx+Flash单片机原理与实践+C语言

HT66Fxx+Flash单片机原理与实践+C语言HT66Fxx+Flash单片机原理与实践+C语言

2018-07-25

C语言代码夜夜爱消除

C语言代码,新手写的不要喷我哈C语言代码,新手写的不要喷我哈

2018-08-26

TI-SDK-WF CODE

TI-SDK-WF CODE

2018-07-25

2级C语言整合书籍资料

2级C语言整合书籍资料

2018-08-26

MPU6050资料

MPU6050资料

2018-08-26

CPP中链表代码

CPP中链表代码

2018-08-26

ESK-200電路圖(ESK200-BC)

ESK-200電路圖(ESK200-BC)

2018-07-25

HT66Fxx Datasheet

HT66Fxx Datasheet

2018-07-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除