HZero.chen
码龄8年
求更新 关注
提问 私信
  • 博客:408,737
    社区:37
    408,774
    总访问量
  • 170
    原创
  • 573
    粉丝
  • 141
    关注
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:广东省
加入CSDN时间: 2017-09-06

个人简介:随风潜入夜,润物细无声

博客简介:

HZero

博客描述:
水母
查看详细资料
个人成就
  • 获得281次点赞
  • 内容获得87次评论
  • 获得1,922次收藏
  • 代码片获得2,808次分享
  • 博客总排名2,338,153名
  • 原力等级
    原力等级
    4
    原力分
    887
    本月获得
    10
创作历程
  • 1篇
    2025年
  • 1篇
    2023年
  • 34篇
    2022年
  • 103篇
    2021年
  • 64篇
    2020年
成就勋章
TA的专栏
  • 个人成长
    6篇
  • 内核源码分析
    13篇
  • zephyr
    3篇
  • 架构设计
    2篇
  • 基础技术
    3篇
  • Universal Flash Storage
    1篇
  • ARM
    2篇
  • Hi3556
    14篇
  • Qualcomm
    18篇
  • 基础知识
    14篇
  • Linux
    1篇
  • misc
    2篇
  • FS
    13篇
  • SCSI
    4篇
  • UFS
    5篇
  • VFS
    6篇
  • BLOCK
    13篇
  • 中断管理
    7篇
  • Kernel Start
    20篇
  • 进程管理
    6篇
  • Debug
    17篇
  • 内存管理
    15篇
  • 基础工具
    4篇
  • Android
    18篇
  • binder
    10篇

TA关注的专栏 23

TA关注的收藏夹 0

TA关注的社区 4

TA参与的活动 0

兴趣领域 设置
  • 服务器
    linux
创作活动更多

AI 镜像开发实战征文活动

随着人工智能技术的飞速发展,AI 镜像开发逐渐成为技术领域的热点之一。Stable Diffusion 3.5 FP8 作为强大的文生图模型,为开发者提供了更高效的图像生成解决方案。为了推动 AI 镜像开发技术的交流与创新,我们特此发起本次征文活动,诚邀广大开发者分享在 Stable Diffusion 3.5 FP8 文生图方向的实战经验和创新应用 本次征文活动鼓励开发者围绕 Stable Diffusion 3.5 FP8 文生图方向,分享以下方面的内容: 1. 技术实践与优化 - Stable Diffusion 3.5 FP8 模型架构解析与优化技巧 - 文生图生成效果的提升方法与技巧 - 模型部署与加速策略,例如使用 Hugging Face、Diffusers 等工具 - 针对特定场景(例如二次元、写实风)的模型微调与定制化开发 2. 应用场景探索 - Stable Diffusion 3.5 FP8 在不同领域的应用案例分享,例如游戏设计、广告创意、艺术创作等 - 利用 Stable Diffusion 3.5 FP8 实现图像编辑、图像修复、图像增强等功能的探索 - 结合其他 AI 技术(例如 NLP、语音识别)构建更强大的应用 3. 创新应用与思考 - 基于 Stable Diffusion 3.5 FP8 的创新应用场景设计 - AI 镜像开发的未来发展方向的思考与展望 - 对 AI 镜像开发伦理、安全等问题的探讨

29人参与 去参加
  • 最近
  • 文章
  • 专栏
  • 代码仓
  • 资源
  • 收藏
  • 关注/订阅/互动
更多
  • 最近

  • 文章

  • 专栏

  • 代码仓

  • 资源

  • 收藏

  • 关注/订阅/互动

  • 社区

  • 帖子

  • 问答

  • 课程

  • 视频

搜索 取消

Linux字符串处理

在Linux内核中,字符串处理函数与用户空间的C标准库类似,但为适应内核环境做了优化和调整。
原创
博文更新于 2025.12.16 ·
311 阅读 ·
4 点赞 ·
0 评论 ·
4 收藏

进程管理基础学习笔记 - 1.概述

目录1. 前言2. 进程和线程的区别1. 前言本专题我们开始学习进程管理部分,本文为概述部分。本文主要参考了《奔跑吧, Linux内核》、ULA、ULK的相关内容。kernel版本:5.10平台:arm642. 进程和线程的区别进程1.进程是处于执行期的程序,进程=程序+执行,进程是资源封装的单位,拥有独立的资源空间,包含很多资源:打开的文件、挂起的信号量、内存管理、处理器状态、一个或多个执行线程或数据段等;2.进程通常通过fork系统调用来创建;3.新创建的进程可以通过exec创建地址
原创
博文更新于 2025.02.07 ·
663 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

内存管理基础学习笔记 - 2. 内核地址空间 - 伙伴系统

目录1. 前言2. 分配掩码3. alloc_pages|- -get_page_from_freelist|- - -rmqueue4. free_pages|- -free_the_page|- - -free_unref_page|- - -__free_one_page参考文档1. 前言本专题我们开始学习内存管理部分,本文开始主要记录伙伴系统分配/释放内存的过程。本文主要讲述buddy分配内存的过程,也就是函数alloc_pages的执行过程,此处主要以 GFP_KERNEL分配掩码为例分析分配
原创
博文更新于 2024.07.19 ·
1276 阅读 ·
0 点赞 ·
1 评论 ·
2 收藏

中断管理基础学习笔记 - 5.2 ARM64高层中断处理

目录1. 前言2. gic_handle_irq|- -irq_enter|- -generic_handle_irq|- -irq_exit|- - -local_softirq_pending参考文档1. 前言本专题我们开始学习进程管理部分。本文主要参考了《奔跑吧, Linux内核》、ULA、ULK的相关内容。本专题记录ARM架构下中断是如何管理的,Linux内核中的中断管理机制是如何设计与实现的,以及常用的下半部机制,如软中断、tasklet、workqueue等。本文及后续中断相关笔记均以qe
原创
博文更新于 2024.02.01 ·
1195 阅读 ·
1 点赞 ·
0 评论 ·
4 收藏

[经验] 深入理解MPIDR_EL1寄存器中的affinity [转]

分配给MPIDR的值的域的集合{Aff2, Aff1, Aff0}在整个系统中必须是不同的。0b0 当PEs的性能关联级别最低,或者使用MPIDR_EL1.MT的PEs被设置为1时,级别0的不同值或者级别1的相同值或更高级别,是相互独立的。0b1 当PEs的性能关联级别最低,或者使用MPIDR_EL1.MT的PEs被设置为1时,级别0的不同值或者级别1的相同值或更高级别的相关性非常高。3、aff2/aff3:表示系统中的第几个cluster,这个值由SOC厂商给core的输入信号决定。
转载
博文更新于 2023.03.26 ·
1782 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

trace系列3 - trace event学习笔记

0.前言本文主要是根据阅码场 《Linux内核tracers的实现原理与应用》视频课程在aarch64上的实践。通过观察钩子函数的创建过程以及替换过程,理解trace的原理。本文同样以blk_update_request函数为例进行说明trace event的原理。1. TRACE_EVENT宏第一次定义(include/linux/tracepoint.h)#define TRACE_EVENT(name, proto, args, struct, assign, print) \
原创
博文更新于 2023.01.09 ·
5044 阅读 ·
3 点赞 ·
2 评论 ·
25 收藏

匿名页的反向映射

当通过fork创建子进程的时候,在这个过程中会建立反向映射的基础结构,具体在kernel_clone -》 copy_mm -》 dup_mm -》 dup_mmap中:《Linux内核深度分析》《深入理解Linux内核反向机制》
原创
博文更新于 2022.06.26 ·
836 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

__reserved_mem_init_node

kenrel: 5.10arch: arm64/** * __reserved_mem_init_node() - call region specific reserved memory init code */static int __init __reserved_mem_init_node(struct reserved_mem *rmem){ extern const struct of_device_id __reservedmem_of_table[];
原创
博文更新于 2022.06.20 ·
761 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

binder学习笔记

device_initcall(binder_init)binder_openstatic int binder_open(struct inode *nodp, struct file *filp) proc = kzalloc(sizeof(*proc), GFP_KERNEL); //此处主要分配了binder_proc结构体,管理数据结构体,每个进程都有独立的记录 proc->tsk = current->group_leader; ...
原创
博文更新于 2022.06.05 ·
1131 阅读 ·
0 点赞 ·
0 评论 ·
2 收藏

Linux内核PID管理

目录1. 前言2. PID相关的数据结构struct pidstruct upidstruct pid_namespacestruct task_struct3. PID使用fork函数中如何分配一个新的pid?pid_nr函数1. 前言PID即进程描述符在linux kernel中的分配和管理比较复杂。 本文分析了其相关数据结构以及函数。代码基于v3.0.3,和pid相关的数据结构,函数定义:include/linux/pid.hinclude/linux/pid_namespace.hker
转载
博文更新于 2022.05.06 ·
1370 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

LRU页面回收

内存回收算法总是会在一定的时间将一些内存回收, 经典内存回收算法是通过LRU链表对page页面进行管理的,对于那些最新读写的页面会将其插入到LRU链表头,当页面回收线程工作时将会typedef struct pglist_data {... /* Fields commonly accessed by the page reclaim scanner */
原创
博文更新于 2022.04.06 ·
898 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

内存管理基础学习笔记 - 4.3 缺页中断处理 - handle_pte_fault

目录1. 前言2. handle_pte_fault|- -do_anonymous_page|- -do_fault|- -do_swap_page|- -do_numa_page|- -do_wp_page1. 前言本专题我们开始学习内存管理部分,本文为缺页中断处理相关学习笔记。前面概述部分主要介绍了arm64缺页中断的底层逻辑,本文主要以数据异常的do_page_fault为例来说明缺页的详细处理过程。主要介绍do_page_fault->handle_pte_fault的执行过程。2.
原创
博文更新于 2022.04.06 ·
3819 阅读 ·
6 点赞 ·
1 评论 ·
23 收藏

trace系列4 - kprobe学习笔记

1.前言本文主要是根据阅码场 《Linux内核tracers的实现原理与应用》视频课程在aarch64上的实践。通过观察钩子函数的创建过程以及替换过程,理解trace的原理。本文同样以blk_update_request函数为例进行说明function trace kprobe的工作原理,此处的kprobe是基于function trace来实现。kernel版本:5.10平台:arm642. function trace钩子函数替换过程2.1 编译阶段同Linux ftrace学习笔记中编
原创
博文更新于 2022.04.05 ·
3471 阅读 ·
3 点赞 ·
4 评论 ·
24 收藏

trace系列5 - kretprobe学习笔记

0.前言本文主要是根据阅码场 《Linux内核tracers的实现原理与应用》视频课程在aarch64上的实践。通过观察钩子函数的创建过程以及替换过程,理解trace的原理。本文同样以blk_update_request函数为例进行说明kprobe的工作原理,此处的kretprobe是基于trace event来实现,同时使用了ftrace的框架。1. kprobe的总体原理2. kretprobe领域模型同 trace系列3 - kretprobe学习笔记3. kretprobe创建在执行如下
原创
博文更新于 2022.04.04 ·
1623 阅读 ·
0 点赞 ·
0 评论 ·
6 收藏

tracepoint简介

1. tracepoint原理tracepoint是预先在函数的插入点中插桩,当执行到函数的插入点,则执行插桩函数,进而触发与插入点预先绑定的probe函数,probe函数可以是一个或者多个,probe函数可以定义为任意的行为,从而可以起到对函数内部观测的租用。2. 使用tracepoint的步骤2.1 DECLARE_TRACE需要在头文件中通过DECLARE_TRACE宏声明,DECLARE_TRACE定义如下:#define DECLARE_TRACE(name, proto, args)
原创
博文更新于 2022.04.02 ·
4405 阅读 ·
0 点赞 ·
2 评论 ·
18 收藏

crash处理core文件

目录1.全局变量解析2.局部变量的解析2.1 位于栈中的局部变量2.1.1 在上级函数中通过该变量与堆栈的关系解析2.2.2 在本级或下级函数中通过该变量与堆栈的关系解析2.2 位于寄存器中的局部变量本文转自 https://www.cnblogs.com/hehheai/p/6513699.html本文主要讲述了如何根据crash dump来查找某个特定函数局部变量值的方法,总结起来包括如下几种方法:位于栈中的局部变量的解析(1)在上级函数中通过该变量与堆栈的关系解析如果以函数参数传递给下级
转载
博文更新于 2022.04.02 ·
941 阅读 ·
0 点赞 ·
2 评论 ·
1 收藏

trace系列2 - function graph trace学习笔记

1.前言2. function graph trace钩子函数替换过程3. function graph trace执行过程(gdb) disassemble ftrace_callerDump of assembler code for function ftrace_caller: 0xffff80001002c370 <+0>: stp x29, x30, [sp,#-16]! 0xffff80001002c374 <+4>: mov
原创
博文更新于 2022.04.01 ·
1488 阅读 ·
1 点赞 ·
0 评论 ·
10 收藏

trace系列0 - ftrace初始化

void __init trace_event_init(void){ event_trace_memsetup(); init_ftrace_syscalls(); event_trace_enable(); event_trace_init_fields();}static __init int event_trace_enable(void){ struct trace_array *tr = top_trace
原创
博文更新于 2022.04.01 ·
1836 阅读 ·
1 点赞 ·
0 评论 ·
14 收藏

trace系列0 - 概述

1.前言本文主要是根据阅码场 《Linux内核tracers的实现原理与应用》视频课程在aarch64上的实践。这是整个系列文章的第一篇,本篇主要解决如下几个问题:ftrace是什么?ftrace框架包含哪些tracer?这些tracer的基本使用方法有哪些?kernel版本:5.10平台:arm642. ftrace是什么?ftrace是一个内核跟踪工具,旨在帮助系统开发人员和设计人员了解内核内部的情况。从2008年由Steven Rostedt 开发并在合并到2.6.27主线内核,
原创
博文更新于 2022.04.01 ·
1912 阅读 ·
0 点赞 ·
0 评论 ·
9 收藏

内存管理基础学习笔记 - 1. 概述

目录1. 前言2. 回顾说明地址空间映射内存管理启动部分1. 前言本专题文章承接之前《kernel启动流程-start_kernel的执行》专题文章,本专题我们开始学习内存管理部分,本文是概述部分。kernel版本:5.10平台:arm642. 回顾说明地址空间映射在《kernel启动流程-start_kernel的执行_2.setup_arch》我们已经看到如下图的地址空间映射:也即是说在内存初始化阶段已经为物理地址空间创建了映射关系,包括memblock.memory区域,kernel
原创
博文更新于 2022.03.30 ·
1310 阅读 ·
0 点赞 ·
0 评论 ·
10 收藏
加载更多