首页
学习
活动
专区
工具
TVP
发布

人人都是极客

专栏成员
495
文章
902738
阅读量
178
订阅数
使用trace查看函数调用关系|分析Linux性能
trace是内核自带的工具,相比于perf工具,trace只管抓trace数据并没有分析,perf在trace数据分析方面做出了很多成果。 但是我们现在就想看一下底层多调用关系,所以使用trace抓一下数据是非常有必要的,还可以分析一下驱动性能。
刘盼
2023-01-05
3.5K0
Linux内存管理:memblock
内存管理是操作系统内核中最复杂的部分之一, start_kernel函数在内核启动第一个init进程前初始化了所有的内核特性(包括那些依赖于不同架构的特性),你也许还记得引导时创立的临时页表,但复杂的内存管理部分还没有开始,当start_kernel函数被调用时,我们会看到初期内存管理到更复杂的内存管理数据结构和技术的转变,为了更好的理解内核的初始化过程,我们需要对这些技术有更清晰的理解,今天我们会着重讨论这个过程,主要针对初期的内存管理memblock的介绍。
刘盼
2023-01-05
1.9K0
这是我平时看的技术视频总结!
现在网上的学习资料是真的丰富,我上大学时除了图书馆借书看之外很难看到自己想看的知识,羡慕现在的大学生可以在网上搜到海量的学习资料,甚至可以去听清华北大等名校教授的课程,这对自己的职业发展是非常有好处的。 我记得刚毕业的时候做嵌入式linux开发,市面上只能看韦东山和宋宝华等老师的书籍,遇到不理解的知识也很难找到人一起讨论,更不要说现在微信群里小伙伴们的学习。 现在只要你想学习某方面的知识,除了各种网站,书籍外还有很多的公众号自媒体分享自己的学习与经验,文字不够还可以去B站看名校里的名师授课。总之,你要你想学
刘盼
2022-09-08
6760
文件系统专栏 | 之ext4文件系统结构
上次讲了VFS层,这次说说文件系统层,文件系统层将不同的文件系统实现了VFS的这些函数,通过指针注册到VFS里面。所以,用户的操作通过VFS转到各种文件系统,linux用到最多的是ext4文件系统,我们就说这个吧。EXT4是第四代扩展文件系统(英语:Fourth extended filesystem,缩写为 ext4)是Linux系统下的日志文件系统,是ext2和ext3文件系统的后继版本。 ext4文件系统布局 一个Ext4文件系统被分成一系列块组。为减少磁盘碎片产生的性能瓶颈,块分配器尽量保持每个文件
刘盼
2022-08-29
2.9K0
文件系统专栏 | 之文件系统架构
文件系统层次分析 由上而下主要分为用户层、VFS层、文件系统层、缓存层、块设备层、磁盘驱动层、磁盘物理层 用户层:最上面用户层就是我们日常使用的各种程序,需要的接口主要是文件的创建、删除、打开、关闭、写、读等。 VFS层:我们知道Linux分为用户态和内核态,用户态请求硬件资源需要调用System Call通过内核态去实现。用户的这些文件相关操作都有对应的System Call函数接口,接口调用 VFS对应的函数。 文件系统层:不同的文件系统实现了VFS的这些函数,通过指针注册到VFS里面。所以,用户的操作
刘盼
2022-08-26
2.6K0
Slub分配器的来龙去脉
slab分配器设计的需求 在Linux内核的内存子系统中,伙伴系统无疑处于内存管理的核心地带,但是如果将内存管理从逻辑上分层,它的位置则处于最底层。Buddy是所有物理内存的管家,不论使用何种接口申请内存都要经由伙伴系统进行分配。但是,伙伴系统管理的物理内存是以页为单位,以4K页为例,它也包含了4096个字节。但是无论是内核自己还是用户程序,在日常的使用中都很少会需要使用四千多字节大小的内存。试想如果我们仅需要为10个字符的字符串分配内存,但是伙伴系统却给了我们一页,那这一页剩余没有使用的内存就浪费了,而且
刘盼
2022-07-18
9710
Crash工具实战-结构体解析
系统崩溃,死机,卡顿等问题经常遇到,但又很棘手,这里推荐个分析神器,视频号里也做过类似的分析。 Crash 工具用于解析 kdump 抓取的 vmcore信息,如之前分析,vmcore 实际为系统运行当时的内存镜像,其中包括了所有的内存中可以看到的信息,通过 Crash 工具可以解析 vmcore 中的详细数据,本文主要以 sk_buff 数据结构为例简单说明 Crash 中间中对结构体的解析。 基本用法 Crash中使用struct命令解析结构体,具体用法为: [struct] <结构体名称> <结构体虚
刘盼
2022-05-30
2K0
学习下 eMMC
eMMC 简介 Host Interface Flash Controller Flash Memory eMMC 分区管理 Boot Area Partitions eMMC 分区应用实例 eMMC 总线协议 eMMC 总线接口 eMMC 总线模型 eMMC 简介 eMMC 是 embedded MultiMediaCard 的简称。MultiMediaCard,即MMC, 是一种闪存卡(Flash Memory Card)标准,它定义了 MMC 的架构以及访问 Flash Memory 的接口和协议。而
刘盼
2022-04-06
1.9K0
高薪诚聘|安全领域Linux内核/驱动/应用技术专家
01 公司简介 安芯网盾(北京)科技有限公司是专注于内存安全的高新技术企业,致力于为政府、金融、运营商、军工、教育、医疗、互联网及大型企业等行业客户提供新一代高级威胁实时防护端点安全解决方案。安芯网盾拥有赶超国际的内存保护技术,核心团队成员自2005年就专注于信息安全攻防对抗产品的研发并斩获多项国际大奖,被评为具有发展潜力和行业价值的网络安全新创企业。 公司是内存安全领域的开拓者和领军者,帮助企业防御并终止在业务关键应用程序中的内存/漏洞利用攻击、内存马攻击、无文件攻击等高级威胁,切实有效保障用户的核心业
刘盼
2022-04-06
6260
CPU 进入 IDLE 都做了啥?
每一个 CPU 核心都会有一个 idle 进程,idle 进程是当系统没有调度 CPU 资源的时候,会进入 idle 进程,而 idle 进程的作用就是不使用 CPU,以此达到省电的目的。
刘盼
2022-01-27
2.4K0
一文搞懂 | Linux 时钟子系统
Clock 时钟就是 SoC 中的脉搏,由它来控制各个部件按各自的节奏跳动。比如,CPU主频设置,串口的波特率设置,I2S的采样率设置,I2C的速率设置等等。这些不同的clock设置,都需要从某个或某几个时钟源头而来,最终开枝散叶,形成一颗时钟树。可通过 cat /sys/kernel/debug/clk/clk_summary 查看这棵时钟树。
刘盼
2022-01-04
4.1K0
应读者要求讲讲 DMA
DMA 传输是由 CPU 发起的:CPU 会告诉 DMA 控制器,帮忙将 source 地方的数据搬到 dest 地方。CPU 发完指令之后,就不管了。具体怎么搬,何时搬,完全由 DMA 控制器决定。DMA 控制器搬运数据的方向有如下几种:
刘盼
2021-12-15
1.7K0
Linux 内核的网络协议栈
封装:当应用程序用 TCP 协议传送数据时,数据首先进入内核网络协议栈中,然后逐一通过 TCP/IP 协议族的每层直到被当作一串比特流送入网络。对于每一层而言,对收到的数据都会封装相应的协议首部信息(有时还会增加尾部信息)。TCP 协议传给 IP 协议的数据单元称作 TCP 报文段,或简称 TCP 段(TCP segment)。IP 传给数据链路层的数据单元称作 IP 数据报(IP datagram),最后通过以太网传输的比特流称作帧(Frame)。
刘盼
2021-11-23
2.9K1
ARM SMMU学习笔记
DMA:((Direct Memory Access),直接内存存取, 是一种外部设备不通过CPU而直接与系统内存交换数据的接口技术 。外设可以通过DMA,将数据批量传输到内存,然后再发送一个中断通知CPU取,其传输过程并不经过CPU, 减轻了CPU的负担。但由于DMA不能像CPU一样通过MMU操作虚拟地址,所以DMA需要连续的物理地址。
刘盼
2021-11-04
1.7K0
吐血整理 | 肝翻 Linux 中断所有知识点
GIC,Generic Interrupt Controller。是ARM公司提供的一个通用的中断控制器。主要作用为:接受硬件中断信号,并经过一定处理后,分发给对应的CPU进行处理。
刘盼
2021-08-25
3.5K1
Linux 内核进程管理之基础
这是进程在内核中的结构形式,那么内核是如何来以树形结构管理描述这些进程的呢?用来描述进程的数据结构,可以理解为进程的属性。比如进程的状态、进程的标识(PID)等,都被封装在了进程描述符 task_struct 这个数据结构中。
刘盼
2021-04-29
1.3K0
一文搞懂 Linux 内核链表(深度分析)
在 Linux 内核中使用最多的数据结构就是链表了,其中就包含了许多高级思想。 比如面向对象、类似C++模板的实现、堆和栈的实现。
刘盼
2021-03-24
7.9K0
Linux进程的内存管理
一个进程的虚拟地址空间主要由两个数据结来描述,一个是 mm_struct,一个是 vm_area_structs。
刘盼
2021-03-23
3.3K0
进程内存管理初探
随着cpu技术发展,现在大部分移动设备、PC、服务器都已经使用上64bit的CPU,但是关于Linux内核的虚拟内存管理,还停留在历史的用户态与内核态虚拟内存3:1的观念中,导致在解决一些内存问题时存在误解。
刘盼
2020-06-19
2.4K0
聊聊Linux IO(中)
结合这个图,想想Linux系统编程里用到的Buffered IO、mmap(2)、Direct IO,这些机制怎么和Linux IO栈联系起来呢?上面的图有点复杂,我画一幅简图,把这些机制所在的位置添加进去:
刘盼
2018-09-25
2.2K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档