一篇文章带你了解文件是如何存储在磁盘的
2025-03-10
格式化磁盘后,会将磁盘分割成一个个大小相同的块。这些块就是磁盘管理的最小单位。那么是如何找到空闲位置存储一个文件的呢?下面先来了解几个常用的概念...
2025-03-10
格式化磁盘后,会将磁盘分割成一个个大小相同的块。这些块就是磁盘管理的最小单位。那么是如何找到空闲位置存储一个文件的呢?下面先来了解几个常用的概念...
2025-03-08
动态内存分配是一个很重要的功能,如果没有动态内存分配,所有的变量都分配到堆上,堆栈很容易就会溢出。动态内存分配一般都是用来分配需要长期使用的内存或大块的内存...
2025-02-24
proc
文件系统是一个由内核动态生成的虚拟文件系统,挂载在/proc
目录下。它不占用物理存储空间,而是通过内存实时反映系统和进程的运行状态...
2025-02-24
uptime
命令输出的load average
反映了系统在1分钟、5分钟、15分钟内的平均负载情况。这里的平均负载并不是CPU
的使用情况...
2025-02-23
这里总结了Linux内核调试的常用工具。包含了CPU,内存,IO和网络相关的调试工具。每个类别都有对应的性能指标和常用功能图表,可以通过图表很方便的找到对应的工具...
2025-02-23
这里总结了Linux IO相关的调试工具。包含性能指标和常用功能图表,可以通过图表很方便的找到对应的工具...
2025-02-23
这里总结了Linux CPU相关的调试工具。包含性能指标和常用功能图表,可以通过图表很方便的找到对应的工具...
2025-02-23
这里总结了Linux 内存相关的调试工具。包含性能指标和常用功能图表,可以通过图表很方便的找到对应的工具...
2025-02-23
这里总结了Linux 网络相关的调试工具。包含性能指标和常用功能图表,可以通过图表很方便的找到对应的工具...
2025-02-23
在Linux
内核中,一般使用ioremap
将物理地址映射到内核虚拟地址空间,使内核能够通过指针访问设备的内存或寄存器。主要用于访问设备的内存映射I/O
区域...
2025-02-22
在进行嵌入式Linux开发的过程中,经常需要和i2c
设备打交道。所以需要获取i2c
设备的状态,进行读写操作。在开源的世界里,当然有大神已经为我们写好了对应的工具:i2c-tools
...
2025-02-22
之前写过一篇关于devmem
工具的文章:在Linux中使用devmem快速操作物理地址。这个工具就是通过读写/dev/mem
字符设备来操作物理地址的...
2025-02-21
在调试嵌入式Linux开发板的过程中,很多时候都需直接操作物理地址。例如设置GPIO
地址。如果单独写一个驱动,就有点高射炮打蚊子了。正好在有一个工具devmem
能快速操作物理地址...
2025-02-20
在Linux
内核中,likely
和unlikely
是用于优化条件分支预测的宏,定义在compiler.h
头文件中。它们通过提示编译器某个条件更可能为真或假,帮助生成更高效的代码...
2025-02-19
access_ok
函数用于验证用户空间指针在内核空间中是否有效且可访问。这是一项重要的安全检查,确保内核不会无意中访问无效或恶意的用户空间内存,否则可能导致安全漏洞、崩溃或未定义行为...
2025-02-18
Sysdig
是一款功能强大的开源系统监控和故障排查工具,主要用于Linux
系统的监控、分析和诊断。它能够捕获系统的实时活动,并提供详细的系统调用信息,帮助用户深入了解系统行为和性能问题...
2025-02-17
SystemTap
是一种用于Linux
系统的动态追踪工具,允许用户监控和分析内核及用户空间程序的运行情况。它通过编写脚本插入探针,实时收集数据,帮助诊断性能问题、调试代码和理解系统行为...
2025-02-17
在写函数的时候,为了控制内部的运行逻辑或者对内部进行初始化,一般都会给函数传入参数。同样的为了控制内核驱动的行为,我们也希望在驱动加载的时候给它传入初始化参数...
2025-02-15
bpftrace
是一个基于eBPF
(扩展的伯克利包过滤器)的高级跟踪工具,用于动态追踪Linux
系统的行为和性能。它允许用户通过简单的脚本语言编写跟踪程序,实时监控内核和用户空间的活动...
2025-02-14
BCC(BPF Compiler Collection)
是一个用于创建高效内核跟踪和操作的工具包,基于 eBPF(extended Berkeley Packet Filter)
技术。eBPF
允许用户在不修改内核源代码或加载内核模块的情况下,安全地运行自定义代码...
2025-02-13
perf
是Linux
系统中的一个性能分析工具,用于监控和分析系统及应用程序的性能。它基于内核的perf_events
接口,能够收集硬件(如 CPU 性能计数器)和软件事件(如上下文切换、缺页异常等)的数据...
2025-02-13
trace-cmd
是一个用于控制Linux
内核跟踪工具ftrace
的命令行工具。ftrace
是Linux
内核内置的跟踪框架,能够帮助开发者调试和分析内核行为。trace-cmd
简化了ftrace
的使用,提供了更友好的接口来配置、启动、停止和查看跟踪数据...
2025-02-12
ftrace
是Linux
内核中的一种跟踪工具,用于分析和调试内核行为。它通过在内核函数中插入钩子来捕获函数调用、返回及其他事件,帮助开发者了解内核的执行流程和性能瓶颈...
2025-02-11
之前写了一篇文章介绍如何使用qemu启动Linux?。主要是使用bzImage
和busybox
创建的文件系统来启动Linux
内核。制作文件系统的过程还是比较麻烦的。下面介绍两个简单点的方法...
2025-02-10
在嵌入式Linux
开发的调试过程中,如果需要频繁的更新文件系统中的内容是一个很麻烦的过程。所以Linux
内核提供了能够通过使用nfs
文件系统启动的功能...
2025-02-10
大多数时候我们都不需要将内核驱动添加到内核源码中,可以通过insmod
命令在需要的时候自己手动安装驱动。不过将驱动添加到源码树中有下面的好处...
2025-02-09
学习Linux
内核相关知识从什么角度入手不好把握。有的人喜欢从文档开始看,了解整个内核的体系结构,再看源代码。有的人喜欢一开始就看源代码,不过内核源码有900M
,就算是去除驱动相关代码也有400M
...
2025-02-08
最近在学习内核相关的知识,所以有一个Linux
内核调试环境是非常有必要的。我选择在ubuntu 24.04
上使用qemu
启动内核,主要是qemu
启动速度快...