
Linux
文章平均质量分 88
LeoSoldOut
这个作者很懒,什么都没留下…
展开
-
Linux内存管理
内存管理简要理解原创 2023-02-23 10:19:12 · 481 阅读 · 0 评论 -
andorid使能ftrace失败
android使能ftrace失败原创 2022-08-22 20:18:11 · 1123 阅读 · 0 评论 -
Ftrace实现原理
ftrace实现原理原创 2022-08-22 19:58:42 · 1769 阅读 · 0 评论 -
glibc堆内存管理
glibc堆内存管理原创 2022-08-02 19:40:13 · 1931 阅读 · 1 评论 -
Linux内核PID管理
linux pid管理原创 2022-07-19 20:49:00 · 1407 阅读 · 0 评论 -
linux链表
、原创 2022-06-29 16:56:30 · 665 阅读 · 0 评论 -
UBIFS文件系统(五)
UBIFS文件系统(五)本文主要解释如下几个问题:为什么data node在空间索引时,并不从freeable_list中查找,而为index node索引剩余空间的时候则会?写data node时,当该node对应的key在TNC中存在时,会发生node的替换,原node所在LEB的dirty值增加,该LEB可能会成为freeable LEB,但是写数据时该LEB并不在索引的范围之内,这是由于将该存在于该LEB中的node编成脏的新的node可能此时正存在于jhead的wbuf中,还没有同步到f原创 2022-03-06 19:12:23 · 1431 阅读 · 0 评论 -
UBIFS文件系统(四)
UBIFS文件系统(四)原创 2022-03-06 18:56:33 · 1036 阅读 · 0 评论 -
ELF文件——DWARF源码解析
前言此前LEF文件——栈回溯中只描述了通过exidx进行栈回溯的过程,本文将描述根据eh_frame进行栈回溯的原理及过程。原理说明dwarf的核心是一张表格,该表格根据函数的压栈过程获取,以一个函数的汇编代码为例:0000000000023c80 <_dl_start>:_dl_start():/usr/src/debug/glibc/2.31+gitAUTOINC+f84949f1c4-r0/git/csu/init-first.c:96 23c80: a9bf7bfd原创 2021-12-21 17:32:00 · 4065 阅读 · 2 评论 -
ELF文件——映射
前言主要描述的是动态库的映射。动态库映射动态库加载时会根据动态库的program header table进行内存映射,主要是对具有LOAD属性的segment进行映射,以一例说明:通过readelf得到的其program header的内容为:Elf file type is DYN (Shared object file)Entry point 0x1ab19There are 10 program headers, starting at offset 52Program Heade原创 2021-12-03 16:11:54 · 1310 阅读 · 0 评论 -
ELF文件——栈回溯
前言本文以libunwind库对栈回溯流程进行描述。libunwind栈回溯流程libunwind包含两套使用接口,分别以前缀unw_和_Unwind标识,其中_Unwind前缀的接口是供C++异常处理的高级函数接口,unw前缀的则是更为底层通用的接口。根据libunwind代码中的configure.ac文件,在arm架构下是不使能C++的异常处理的,所以栈回溯使用的接口均为前缀位unw的函数接口。AC_MSG_CHECKING([whether to enable C++ exception s原创 2021-09-26 19:32:26 · 3023 阅读 · 0 评论 -
ELF文件——动态链接
前言下文所示案例为运行在armV7架构、linux平台之下的动态库文件。ELF文件格式链接器以ELF文件的固定格式对目标程序进行链接,程序加载器以ELF文件的固定格式对其进行解析。ELF文件的组成框架在链接器和加载器的视角中分别如下:如上图所示,链接器以section为单位对数据进行组织,以section header table对section进行描述,而忽略program header table中的内容;加载器以segment为单位对数据进行组织,以program header table对原创 2021-09-22 17:00:14 · 1570 阅读 · 0 评论 -
yocto中的init manager
前言根据前文Linux根文件系统挂载流程中的分析,内核通过调用根文件系统中的init程序跳转到用户空间,并对用户空间所需的基础框架进行初始化。类比于内核启动时,需要对各个功能模块初始化进行初始化,当进入用户空间时,也需要启动各项服务来搭建基础的应用环境。对于不同的init系统管理器,服务启动的方式有所区别,下文主要对yocto中使用的sysVinit、busybox init和systemd进行...原创 2020-04-21 20:09:10 · 2433 阅读 · 1 评论 -
Linux根文件系统挂载流程
根文件系统的概念根文件系统是控制权从linux内核转移到用户空间的一个桥梁。linux内核就类似于一个黑匣子,只向用户提供各种功能的接口,但是功能的具体实现不可见,用户程序通过对这些功能接口的不同整合实现不同的功能需求。以用户的角度来说,应用程序调用内核的接口实现不同的功能,此时系统的控制权在用户手中,但是实际上却是先有内核的初始化提供这些接口,用户才可以使用这些接口的,也就是系统的控制权最初应...原创 2020-04-11 19:34:56 · 2373 阅读 · 1 评论 -
Linux内核makefile框架
前瞻官方文档位置:Linux/Documentation/Kbuild/makefiles.txt内核makefile框架linux内核makefile由五部分组成:Makefile:顶层makefile,主makefile,用于定义vmlinux(kernel image)和module这两个目标的编译和构建及其在软件层面的依赖。arch/$(ARCH)/Makefile:arch相关...原创 2020-03-29 22:11:22 · 717 阅读 · 0 评论 -
Linux文件写缓存
问题1.应用发起的写操作何时将内容真正写入文件?2.如何保证在异常掉电的情况下,应用写入文件的数据不丢失?文件的写流程应用对文件的操作一般基于标准库函数fopen、fread、fwrite、fclose实现,本文主要是针对fwrite操作的阐述。当应用调用fwrite向文件中写入数据时,实际上经过用户空间和内核空间中的两层缓冲区,如下图所示:当用户只调用fwrite写文件时,数据首先被...原创 2020-03-04 22:03:07 · 927 阅读 · 0 评论 -
Linux存储管理
内存访问原创 2020-04-11 19:59:27 · 192 阅读 · 0 评论