linux驱动个人学习

231 篇文章
58 人订阅

全部文章

233333

内存相关工具

memstat可以通过sudo apt install memstat安装,安装包括两个文件memstat和memstat.conf。

1102
233333

高端内存映射之vmalloc分配内存中不连续的页--Linux内存管理(十九)

根据上文的讲述, 我们知道物理上连续的映射对内核是最好的, 但并不总能成功地使用. 在分配一大块内存时, 可能竭尽全力也无法找到连续的内存块.

611
233333

linux Page cache和buffer cache正解

Page cache和buffer cache一直以来是两个比较容易混淆的概念,在网上也有很多人在争辩和猜想这两个cache到底有什么区别,讨论到最后也一直没有...

632
233333

Page Cache与Page回写

Page cache是通过将磁盘中的数据缓存到内存中,从而减少磁盘I/O操作,从而提高性能。此外,还要确保在page cache中的数据更改时能够被同步到磁盘上...

542
233333

高端内存映射之kmap持久内核映射--Linux内存管理(二十)

尽管vmalloc函数族可用于从高端内存域向内核映射页帧(这些在内核空间中通常是无法直接看到的), 但这并不是这些函数的实际用途.

801
233333

宋宝华:关于Ftrace的一个完整案例【转】

Ftrace是Linux进行代码级实践分析最有效的工具之一,比如我们进行一个系统调用,出来的时间过长,我们想知道时间花哪里去了,利用Ftrace就可以追踪到一级...

501
233333

KASAN实现原理【转】

KASAN是一个动态检测内存错误的工具。KASAN可以检测全局变量、栈、堆分配的内存发生越界访问等问题。功能比SLUB DEBUG齐全并且支持实时检测。越界访问...

1152
233333

高端内存映射之kmap_atomic固定映射--Linux内存管理(二十一)

linux高端内存中的临时内存区为固定内存区的一部分, 对于固定内存在linux内核中有下面描述

924
233333

kmalloc分配物理内存与高端内存映射--Linux内存管理(十八)

尽管vmalloc函数族可用于从高端内存域向内核映射页帧(这些在内核空间中通常是无法直接看到的), 但这并不是这些函数的实际用途.

1072
233333

宋宝华:Docker 最初的2小时(Docker从入门到入门)【转】

最初的2小时,你会爱上Docker,对原理和使用流程有个最基本的理解,避免满世界无头苍蝇式找资料。本人反对暴风骤雨式多管齐下狂轰滥炸的学习方式,提倡迭代学习法,...

642
233333

Linux内核最新的连续内存分配器(CMA)——避免预留大块内存【转】

在我们使用ARM等嵌入式Linux系统的时候,一个头疼的问题是GPU,Camera,HDMI等都需要预留大量连续内存,这部分内存平时不用,但是一般的做法又必须先...

792
233333

alloc_page分配内存空间--Linux内存管理(十七)

在内核初始化完成之后, 内存管理的责任就由伙伴系统来承担. 伙伴系统基于一种相对简单然而令人吃惊的强大算法.

1071
233333

伙伴系统之避免碎片--Linux内存管理(十六)

页是信息的物理单位, 分页是为了实现非连续分配, 以便解决内存碎片问题, 或者说分页是由于系统管理的需要. 段是信息的逻辑单位,它含有一组意义相对完整的信息, ...

993
233333

伙伴系统之伙伴系统概述--Linux内存管理(十五)

在内核初始化完成之后, 内存管理的责任就由伙伴系统来承担. 伙伴系统基于一种相对简单然而令人吃惊的强大算法.

693
233333

LRU算法

内存管理的一种页面置换算法,对于在内存中但又不用的数据块(内存块)叫做LRU,操作系统会根据哪些数据属于LRU而将其移出内存而腾出空间来加载另外的数据。

1202
233333

Jenkins自动化部署-----持续交付【转】

在很早之前就接触过敏捷开发。什么是敏捷开发,简单来说就是让软件可靠地,快速地发布出来的一种开发方法和技巧。

1094
233333

Docker 教程(一)

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

972
233333

Docker 架构(二)【转】

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。

913
233333

USB初学(一)---USB-HID的初步认识【转】

HID是一种USB通信协议,无需安装驱动就能进行交互,在学习HID之前,先来复习一下USB协议的相关内容。

1043
233333

启动期间的内存管理之bootmem_init初始化内存管理–Linux内存管理(十二)

首先我们来看看start_kernel是如何初始化系统的, start_kerne定义在init/main.c?v=4.7, line 479

1163

扫码关注云+社区