代码改变世界

[置顶]长期招收linux驱动工程师

2018-10-25 11:29 by tolimit, 441 阅读, 收藏, 编辑
摘要: 公司:宝存科技 工作内容: 1.负责企业级ssd的feature设计和开发工作 2.负责ftl算法的设计及开发 3.排查客户问题 任职要求: 1.精通C语言 2.熟练掌握linux操作系统使用 3.熟悉kernel机制,包括但不限于内存分配,中断原理,tasklet,spin lock,mutex,阅读全文

长期招收linux驱动工程师

2018-10-25 11:29 by tolimit, 441 阅读, 收藏, 编辑
摘要: 公司:宝存科技 工作内容: 1.负责企业级ssd的feature设计和开发工作 2.负责ftl算法的设计及开发 3.排查客户问题 任职要求: 1.精通C语言 2.熟练掌握linux操作系统使用 3.熟悉kernel机制,包括但不限于内存分配,中断原理,tasklet,spin lock,mutex,阅读全文

linux内核源码分析 - nvme设备的初始化

2018-04-14 16:15 by tolimit, 3326 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 本文基于3.18.3内核的分析,nvme设备为pcie接口的ssd,其驱动名称为nvme.ko,驱动代码在drivers/block/nvme-core.c. 驱动的加载 驱动加载实际就是module的加载,而m阅读全文

linux内存源码分析 - 零散知识点

2016-05-11 15:15 by tolimit, 2769 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 直接内存回收中的等待队列 内存回收详解见linux内存源码分析 - 内存回收(整体流程),在直接内存回收过程中,有可能会造成当前需要分配内存的进程被加入一个等待队列,当整个node的空闲页数量满足要求时,由ksw阅读全文

linux内存源码分析 - 内存回收(整体流程)

2016-05-03 10:48 by tolimit, 7964 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 当linux系统内存压力就大时,就会对系统的每个压力大的zone进程内存回收,内存回收主要是针对匿名页和文件页进行的。对于匿名页,内存回收过程中会筛选出一些不经常使用的匿名页,将它们写入到swap分区中,然阅读全文

linux内存源码分析 - 内存回收(lru链表)

2016-04-30 16:47 by tolimit, 5519 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 对于整个内存回收来说,lru链表是关键中的关键,实际上整个内存回收,做的事情就是处理lru链表的收缩,所以这篇文章就先说说系统的lru链表。 内存回收的核心思想,就是如果一些数据能够保存到磁盘,在内存不足时阅读全文

linux内存源码分析 - 内存压缩(同步关系)

2016-04-25 20:55 by tolimit, 1773 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 最近在看内存回收,内存回收在进行同步的一些情况非常复杂,然后就想,不会内存压缩的页面迁移过程中的同步关系也那么复杂吧,带着好奇心就把页面迁移的源码都大致看了一遍,还好,不复杂,也容易理解,这里我们就说说在页阅读全文

linux内存源码分析 - 内存回收(匿名页反向映射)

2016-04-17 15:01 by tolimit, 4123 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 看完了内存压缩,最近在看内存回收这块的代码,发现内容有些多,需要分几块去详细说明,首先先说说匿名页的反向映射,匿名页主要用于进程地址空间的堆、栈、还有私有匿名共享内存(用于有亲属关系的进程),这些匿名页所属阅读全文

linux内存源码分析 - 内存压缩(实现流程)

2016-03-23 11:06 by tolimit, 4870 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 概述 本文章最好结合linux内存管理源码分析 - 页框分配器与linux内存源码分析 -伙伴系统(初始化和申请页框)一起看,会涉及里面的一些知识。 我们知道内存是以页框为单位,每个页框大小默认是4K(大页除外)阅读全文

linux内存源码分析 - 伙伴系统(释放页框)

2016-03-17 16:06 by tolimit, 1511 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 翻了一下之前的文章,发现竟然忘记写内核是如何释放页框的,罪过。 释放页框很简单,其实只有几步 释放页框的操作最后都会调用到__free_pages()函数,我们主要从这个函数跟踪下去,看看内核是怎么执行的。 热页阅读全文

linux内存源码分析 - 内存池

2016-03-12 15:08 by tolimit, 2384 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 内存池是用于预先申请一些内存用于备用,当系统内存不足无法从伙伴系统和slab中获取内存时,会从内存池中获取预留的那些内存。内存池与特殊slab一样,需要使用的设备需要自己创建内存池,而不是系统会自动生成。书上形容阅读全文

内核参数说明

2015-12-22 10:24 by tolimit, 14595 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 因个人能力有限,不能保证所有描述都正确,还请大家集思广益,有错误的地方欢迎大家留言指正,同时也欢迎大家留言对未标注项进行补偿,谢谢。 内核参数列表 内存参数列表 网络参数列表 文件系统参数列表 用于注册或修改以上阅读全文

总结一下linux中的分段机制

2015-10-13 15:06 by tolimit, 3134 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 这篇文章主要说一下linux对于分段机制的处理,虽然都说linux不使用分段机制,但是分段机制属于CPU的一个功能,即使linux不使用,也要通过代码想办法绕过它,况且linux也使用到了分段机制中的某些功能。...阅读全文

linux内存源码分析 - SLUB分配器概述

2015-07-21 10:51 by tolimit, 5813 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/SLUB和SLAB的区别 首先为什么要说slub分配器,内核里小内存分配一共有三种,SLAB/SLUB/SLOB,slub分配器是slab分配器的进化版,而slob是一种精简的小内存分配算法,主要用于嵌入式系统。...阅读全文

给ubuntu换内核

2015-07-13 17:49 by tolimit, 5321 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/下载内核源码 有两种方式,一种方式是直接从官网:https://www.kernel.org/直接下载,另一种方式是通过git进行下载。 首先,在官网内核版本分为三种:mainline:主线版本,最新的stab...阅读全文

几句话总结内核中的锁

2015-07-06 12:28 by tolimit, 1263 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 原子操作(atomic): 通过在汇编操作码前缀加个lock(0xf0)来给内存总线上锁(其他CPU无法访问这个内存单元),直到这条指令完成。atomic_t类型为volatile int。 自旋锁(spinlo阅读全文