博客园 - tolimit
uuid:6cbd1ba2-f883-4c34-aed1-30dde64a3a3e;id=703955
2021-09-22T03:14:16Z
tolimit
https://www.cnblogs.com/tolimit/
feed.cnblogs.com
https://www.cnblogs.com/tolimit/p/8779876.html
linux内核源码分析 - nvme设备的初始化 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 本文基于3.18.3内核的分析,nvme设备为pcie接口的ssd,其驱动名称为nvme.ko,驱动代码在drivers/block/nvme-core.c. 驱动的加载 驱动加载实际就是module的加载,而m
2018-04-14T08:15:00Z
2018-04-14T08:15:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 本文基于3.18.3内核的分析,nvme设备为pcie接口的ssd,其驱动名称为nvme.ko,驱动代码在drivers/block/nvme-core.c. 驱动的加载 驱动加载实际就是module的加载,而m <a href="https://www.cnblogs.com/tolimit/p/8779876.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/5481419.html
linux内存源码分析 - 零散知识点 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 直接内存回收中的等待队列 内存回收详解见linux内存源码分析 - 内存回收(整体流程),在直接内存回收过程中,有可能会造成当前需要分配内存的进程被加入一个等待队列,当整个node的空闲页数量满足要求时,由ksw
2016-05-11T07:15:00Z
2016-05-11T07:15:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 直接内存回收中的等待队列 内存回收详解见linux内存源码分析 - 内存回收(整体流程),在直接内存回收过程中,有可能会造成当前需要分配内存的进程被加入一个等待队列,当整个node的空闲页数量满足要求时,由ksw <a href="https://www.cnblogs.com/tolimit/p/5481419.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/5435068.html
linux内存源码分析 - 内存回收(整体流程) - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 当linux系统内存压力就大时,就会对系统的每个压力大的zone进程内存回收,内存回收主要是针对匿名页和文件页进行的。对于匿名页,内存回收过程中会筛选出一些不经常使用的匿名页,将它们写入到swap分区中,然
2016-05-03T02:48:00Z
2016-05-03T02:48:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 当linux系统内存压力就大时,就会对系统的每个压力大的zone进程内存回收,内存回收主要是针对匿名页和文件页进行的。对于匿名页,内存回收过程中会筛选出一些不经常使用的匿名页,将它们写入到swap分区中,然 <a href="https://www.cnblogs.com/tolimit/p/5435068.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/5447448.html
linux内存源码分析 - 内存回收(lru链表) - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 对于整个内存回收来说,lru链表是关键中的关键,实际上整个内存回收,做的事情就是处理lru链表的收缩,所以这篇文章就先说说系统的lru链表。 内存回收的核心思想,就是如果一些数据能够保存到磁盘,在内存不足时
2016-04-30T08:47:00Z
2016-04-30T08:47:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 对于整个内存回收来说,lru链表是关键中的关键,实际上整个内存回收,做的事情就是处理lru链表的收缩,所以这篇文章就先说说系统的lru链表。 内存回收的核心思想,就是如果一些数据能够保存到磁盘,在内存不足时 <a href="https://www.cnblogs.com/tolimit/p/5447448.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/5432674.html
linux内存源码分析 - 内存碎片整理(同步关系) - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 最近在看内存回收,内存回收在进行同步的一些情况非常复杂,然后就想,不会内存碎片整理的页面迁移过程中的同步关系也那么复杂吧,带着好奇心就把页面迁移的源码都大致看了一遍,还好,不复杂,也容易理解,这里我们就说说
2016-04-25T12:55:00Z
2016-04-25T12:55:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 最近在看内存回收,内存回收在进行同步的一些情况非常复杂,然后就想,不会内存碎片整理的页面迁移过程中的同步关系也那么复杂吧,带着好奇心就把页面迁移的源码都大致看了一遍,还好,不复杂,也容易理解,这里我们就说说 <a href="https://www.cnblogs.com/tolimit/p/5432674.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/5398552.html
linux内存源码分析 - 内存回收(匿名页反向映射) - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 看完了内存压缩,最近在看内存回收这块的代码,发现内容有些多,需要分几块去详细说明,首先先说说匿名页的反向映射,匿名页主要用于进程地址空间的堆、栈、还有私有匿名共享内存(用于有亲属关系的进程),这些匿名页所属
2016-04-17T07:01:00Z
2016-04-17T07:01:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 看完了内存压缩,最近在看内存回收这块的代码,发现内容有些多,需要分几块去详细说明,首先先说说匿名页的反向映射,匿名页主要用于进程地址空间的堆、栈、还有私有匿名共享内存(用于有亲属关系的进程),这些匿名页所属 <a href="https://www.cnblogs.com/tolimit/p/5398552.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/5286663.html
linux内存源码分析 - 内存碎片整理(实现流程) - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 本文章最好结合linux内存管理源码分析 - 页框分配器与linux内存源码分析 -伙伴系统(初始化和申请页框)一起看,会涉及里面的一些知识。 我们知道内存是以页框为单位,每个页框大小默认是4K(大页除外)
2016-03-23T03:06:00Z
2016-03-23T03:06:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 本文章最好结合linux内存管理源码分析 - 页框分配器与linux内存源码分析 -伙伴系统(初始化和申请页框)一起看,会涉及里面的一些知识。 我们知道内存是以页框为单位,每个页框大小默认是4K(大页除外) <a href="https://www.cnblogs.com/tolimit/p/5286663.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/5287801.html
linux内存源码分析 - 伙伴系统(释放页框) - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 翻了一下之前的文章,发现竟然忘记写内核是如何释放页框的,罪过。 释放页框很简单,其实只有几步 释放页框的操作最后都会调用到__free_pages()函数,我们主要从这个函数跟踪下去,看看内核是怎么执行的。 热页
2016-03-17T08:06:00Z
2016-03-17T08:06:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 翻了一下之前的文章,发现竟然忘记写内核是如何释放页框的,罪过。 释放页框很简单,其实只有几步 释放页框的操作最后都会调用到__free_pages()函数,我们主要从这个函数跟踪下去,看看内核是怎么执行的。 热页 <a href="https://www.cnblogs.com/tolimit/p/5287801.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/5266575.html
linux内存源码分析 - 内存池 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 内存池是用于预先申请一些内存用于备用,当系统内存不足无法从伙伴系统和slab中获取内存时,会从内存池中获取预留的那些内存。内存池与特殊slab一样,需要使用的设备需要自己创建内存池,而不是系统会自动生成。书上形容
2016-03-12T07:08:00Z
2016-03-12T07:08:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 内存池是用于预先申请一些内存用于备用,当系统内存不足无法从伙伴系统和slab中获取内存时,会从内存池中获取预留的那些内存。内存池与特殊slab一样,需要使用的设备需要自己创建内存池,而不是系统会自动生成。书上形容 <a href="https://www.cnblogs.com/tolimit/p/5266575.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/5065761.html
内核参数说明 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 因个人能力有限,不能保证所有描述都正确,还请大家集思广益,有错误的地方欢迎大家留言指正,同时也欢迎大家留言对未标注项进行补偿,谢谢。 内核参数列表 内存参数列表 网络参数列表 文件系统参数列表 用于注册或修改以上
2015-12-22T02:24:00Z
2015-12-22T02:24:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 因个人能力有限,不能保证所有描述都正确,还请大家集思广益,有错误的地方欢迎大家留言指正,同时也欢迎大家留言对未标注项进行补偿,谢谢。 内核参数列表 内存参数列表 网络参数列表 文件系统参数列表 用于注册或修改以上 <a href="https://www.cnblogs.com/tolimit/p/5065761.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/4775945.html
总结一下linux中的分段机制 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 这篇文章主要说一下linux对于分段机制的处理,虽然都说linux不使用分段机制,但是分段机制属于CPU的一个功能,即使linux不使用,也要通过代码想办法绕过它,况且linux也使用到了分段机制中的某些功能。
2015-10-13T07:06:00Z
2015-10-13T07:06:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 这篇文章主要说一下linux对于分段机制的处理,虽然都说linux不使用分段机制,但是分段机制属于CPU的一个功能,即使linux不使用,也要通过代码想办法绕过它,况且linux也使用到了分段机制中的某些功能。 <a href="https://www.cnblogs.com/tolimit/p/4775945.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/4654109.html
linux内存源码分析 - SLUB分配器概述 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/SLUB和SLAB的区别 首先为什么要说slub分配器,内核里小内存分配一共有三种,SLAB/SLUB/SLOB,slub分配器是slab分配器的进化版,而slob是一种精简的小内存分配算法,主要用于嵌入式系统。...
2015-07-21T02:51:00Z
2015-07-21T02:51:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/SLUB和SLAB的区别 首先为什么要说slub分配器,内核里小内存分配一共有三种,SLAB/SLUB/SLOB,slub分配器是slab分配器的进化版,而slob是一种精简的小内存分配算法,主要用于嵌入式系统。... <a href="https://www.cnblogs.com/tolimit/p/4654109.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/4643323.html
给ubuntu换内核 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/下载内核源码 有两种方式,一种方式是直接从官网:https://www.kernel.org/直接下载,另一种方式是通过git进行下载。 首先,在官网内核版本分为三种:mainline:主线版本,最新的stab...
2015-07-13T09:49:00Z
2015-07-13T09:49:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/下载内核源码 有两种方式,一种方式是直接从官网:https://www.kernel.org/直接下载,另一种方式是通过git进行下载。 首先,在官网内核版本分为三种:mainline:主线版本,最新的stab... <a href="https://www.cnblogs.com/tolimit/p/4643323.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/4624070.html
几句话总结内核中的锁 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 原子操作(atomic): 通过在汇编操作码前缀加个lock(0xf0)来给add命令上锁, 这个锁可能是对cache上锁(数据在cache中)或者对总线上锁(数据在内存中, 不在cache中),让其他CPU无法
2015-07-06T04:28:00Z
2015-07-06T04:28:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 原子操作(atomic): 通过在汇编操作码前缀加个lock(0xf0)来给add命令上锁, 这个锁可能是对cache上锁(数据在cache中)或者对总线上锁(数据在内存中, 不在cache中),让其他CPU无法 <a href="https://www.cnblogs.com/tolimit/p/4624070.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/4610974.html
linux内存源码分析 - 伙伴系统(初始化和申请页框) - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 之前的文章已经介绍了伙伴系统,这篇我们主要看看源码中是如何初始化伙伴系统、从伙伴系统中分配页框,返回页框于伙伴系统中的。 我们知道,每个管理区都有自己的伙伴系统管理属于这个管理区的页框,这也说明了,在伙伴系统初始
2015-07-01T07:59:00Z
2015-07-01T07:59:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 之前的文章已经介绍了伙伴系统,这篇我们主要看看源码中是如何初始化伙伴系统、从伙伴系统中分配页框,返回页框于伙伴系统中的。 我们知道,每个管理区都有自己的伙伴系统管理属于这个管理区的页框,这也说明了,在伙伴系统初始 <a href="https://www.cnblogs.com/tolimit/p/4610974.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/4585803.html
linux内存源码分析 - 页表的初始化 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 本文章中系统我们假设为x86下的32位系统,暂且不分析64位系统的页表结构。 linux分页 linux下采用四级分页,一个线性地址会分为5个偏移量用于寻址,具体看图: 虽然有四级,但并不是每一级都会用到,在li
2015-06-23T09:49:00Z
2015-06-23T09:49:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 本文章中系统我们假设为x86下的32位系统,暂且不分析64位系统的页表结构。 linux分页 linux下采用四级分页,一个线性地址会分为5个偏移量用于寻址,具体看图: 虽然有四级,但并不是每一级都会用到,在li <a href="https://www.cnblogs.com/tolimit/p/4585803.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/4566189.html
linux内存源码分析 - SLAB分配器概述 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 之前说了管理区页框分配器,这里我们简称为页框分配器,在页框分配器中主要是管理物理内存,将物理内存的页框分配给申请者,而且我们知道也可页框大小为4K(也可设置为4M),这时候就会有个问题,如果我只需要1KB大小的内
2015-06-11T04:19:00Z
2015-06-11T04:19:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 之前说了管理区页框分配器,这里我们简称为页框分配器,在页框分配器中主要是管理物理内存,将物理内存的页框分配给申请者,而且我们知道也可页框大小为4K(也可设置为4M),这时候就会有个问题,如果我只需要1KB大小的内 <a href="https://www.cnblogs.com/tolimit/p/4566189.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/4551428.html
linux内存管理源码分析 - 页框分配器 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 最近在学习内核模块的框架,这里做个总结,知识太多了。 分段和分页 先看一幅图 也就是我们实际中编码时遇到的内存地址并不是对应于实际内存上的地址,我们编码中使用的地址是一个逻辑地址,会通过分段和分页这两个机制把它转
2015-06-05T08:23:00Z
2015-06-05T08:23:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 最近在学习内核模块的框架,这里做个总结,知识太多了。 分段和分页 先看一幅图 也就是我们实际中编码时遇到的内存地址并不是对应于实际内存上的地址,我们编码中使用的地址是一个逻辑地址,会通过分段和分页这两个机制把它转 <a href="https://www.cnblogs.com/tolimit/p/4551428.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/4530370.html
linux源码分析 - 进程 - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 最近在回想一些知识点的时候,觉得对进程这一块有些模糊,特别写一篇随笔对进程信息进行巩固和复习。 程序和进程 以我个人的理解就是,程序是一段二进制编码甚至是一个简单的可执行文件,而当程序这段二进制编码放入内存运行时
2015-05-27T02:14:00Z
2015-05-27T02:14:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 最近在回想一些知识点的时候,觉得对进程这一块有些模糊,特别写一篇随笔对进程信息进行巩固和复习。 程序和进程 以我个人的理解就是,程序是一段二进制编码甚至是一个简单的可执行文件,而当程序这段二进制编码放入内存运行时 <a href="https://www.cnblogs.com/tolimit/p/4530370.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/tolimit/p/4495128.html
linux中断源码分析 - 软中断(四) - tolimit
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 在上一篇文章中,我们看到中断实际分为了两个部分,俗称就是一部分是硬中断,一部分是软中断。软中断是专门用于处理中断过程中费时费力的操作,而为什么系统要分硬中断和软中断呢?问得明白点就是为什么需要软中断。我们可以试着
2015-05-12T09:37:00Z
2015-05-12T09:37:00Z
tolimit
https://www.cnblogs.com/tolimit/
【摘要】本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 在上一篇文章中,我们看到中断实际分为了两个部分,俗称就是一部分是硬中断,一部分是软中断。软中断是专门用于处理中断过程中费时费力的操作,而为什么系统要分硬中断和软中断呢?问得明白点就是为什么需要软中断。我们可以试着 <a href="https://www.cnblogs.com/tolimit/p/4495128.html" target="_blank">阅读全文</a>