logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

ARM Linux启动流程分析——内核自解压阶段

本文整理了ARM Linxu启动流程的第一阶段——内核自解压,内核版本为3.12.35。我以手上的树莓派b(ARM11)为平台示例来分析uboot跳转到Linux内核运行后做了哪些初始化动作,以及如何转入真正的内核开始运行。

#linux#arm
Linux内核调试技术——jprobe使用与实现

本文介绍Linux kprobes调试技术中第二种探测技术jprobe,它基于kprobe实现,内核开发人员可以非常方便的用它来探测函数的运行与入参值。本文首先通过一个简单的示例介绍jprobe的使用方式,然后通过源码详细分析jprobe的实现流程。

Ext4 Project Quota磁盘配额使用介绍

Disk quota磁盘配额技术是一种限制用户使用文件系统空间使用的技术,本文介绍其中Linux最新的project quota技术在ext4文件系统中的基本概念和应用方法。

#linux
Linux fsync和fdatasync系统调用实现分析(Ext4文件系统)

本文将介绍Linux系统中的fsync和fdatasync的功能和区别,并以Ext4文件系统为例,详细分析内核如何将文件数据同步到磁盘。

#linux
Linux设备驱动模块自加载示例与原理解析

本文介绍Linux设备驱动模块在设备注册时如何实现自动加载和创建设备节点。在Linux系统中,基于sysfs文件系统、设备驱动模型和udev工具可以实现在设备模块“冷、热”加载时自动加载设备对应的驱动程序,同时可以按需在/dev目录下创建设备节点。本文中我搭建好环境并写了两个简单的示例程序demo_device.c和device_driver.c来模拟“设备”与“驱动”的自动加载和设备节点自动创建

#arm#linux#嵌入式
Linux应用程序错误使用pthread_mutex_lock互斥锁触发SIG_ABRT信号的原因分析

本文分析在Linux应用程序中错误使用pthread_mutex锁时会概率性触发SIG_ABRT信号而导致程序崩溃(库打印输出 :Assertion `mutex->__data.__owner == 0' failed)的原因。

#linux
Linux内核调试技术——进程D状态死锁检测

Linux的进程有一种状态等待为TASK_UNINTERRUPTIBLE,称为D状态,该种状态下进程不接收信号,只能通过wake_up唤醒。处于这种状态的情况有很多,例如mutex锁就可能会设置进程于该状态,有时候进程在等待某种IO资源就绪时(wait_event机制)会设置进程进入该状态。一般情况下,进程处于该状态的时间不会太久,但若IO设备出现故障或者出现进程死锁等情况,进程就可能长期处于该状

#arm#嵌入式
深入理解overlayfs(一):初识

Overlayfs是一种类似aufs的一种堆叠文件系统,于2014年正式合入Linux-3.18主线内核,目前其功能已经基本稳定(虽然还存在一些特性尚未实现)且被逐渐推广,特别在容器技术中更是势头难挡。本文先来大致认识一下什么是Overlayfs,它有什么应用场景和使用限制。

#linux#docker
深入理解overlayfs(二):使用与原理分析

在初步了解overlayfs用途之后,本文将介绍如何使用overlayfs以及理解该文件系统所特有的一些功能特性。由于目前主线内核对overlayfs正在不断的开发和完善中,因此不同的内核版本改动可能较大,本文尽量与最新的内核版本保持一致,但可能仍会存在细微的出入。内核版本:Linux-4.14示例环境:pi3挂载文件系统挂载文件系统的基本命令如下:mount -t overlay overlay

#linux#docker
构建Linux内核驱动demo子系统示例

本文参考内核RTC子系统并提取出一个简单的demo驱动子系统框架示例程序,可作为模板,适用于一些简单的具有类似多外设Linux设备驱动归一化开发。

#linux#嵌入式
到底了