Linux内核源代码解析之——我与神童聊Linux内核
本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/11619609
我的朋友里,至少有2.5个神童。
有的书上说,一个人的能力取决于他的朋友圈子的能力。所以,我是幸运的,因为我的很多朋友都比我更优秀。
雅丽是公认的神童。北漂族、帅气、博学、擅长多国语言,同时,公认的Oracle大神。他自认是个文科生,跟计算机毫无关系,不过大量的兄弟伙在他们的Oracle数据库快死的时候会向雅丽求救,同时,获得起死回生的灵药。
童鞋们感兴趣可以去他的院子逛逛:http://www.dbaleet.org/
在我的朋友里,老周是另外一个神童。或许,只有老周能在英语上与雅丽一较高下——老周的爷爷二战时,是美国大兵的翻译官。
他和雅丽有很多共同之处。比如说,语言上的天赋、年龄。
虽然他们都是神童,但并不是说,他们的年龄很小,相反,他们的年龄都比我大。只不过,他们的年纪相比于他们的能力,实在太小了。
今天聊了一个关于mlock的话题。
mlock的代码在Linux内核里只经历过2个作者的维护。
原作者是Linus Torvalds,起源于1995年。
修改者是Christoph Hellwig,修改于2002年。
之后一直没有变动。
自RedHat Linux 6之后,RedHat Linux内核给Lru list加了一个patch——Split Lru
详细介绍如下:
Starting from the premise that not all data is equal, a Red Hat engineer implemented a set ofpatches that handle different types of pages differently and finds pages that can be evicted withminimal scanning. These patches were, of course, pushed upstream and accepted into the Linuxkernel before being included in Red Hat Enterprise Linux 6. The result is the Split LRU VM (Splitleast recently used virtual memory manager).The Split LRU VM uses several lists of memory pages instead of a single, monolithic memorymanager. These include separate page lists for filesystem backed data (the master data exists ina file in the storage subsystem and can be read again whenever needed), swap backed data (theVM can page out memory to disk and read it back in when needed), and non-reclaimable pages(pages that can not be discarded by the VM).
那mlock是否会被split lru影响呢?
split lru把原本单一的lru list划分成了多个队列表。
其中,包括filesystem backed data zone,swap backed data zone,non-reclaimable pages zone。
关键点就在这里,Linux内核怎么知道一个page应该挂接在哪一个zone里呢?
翻一下mlock.c这个文件吧。
生命是多么美好:)
Linux内核源代码解析之——我与神童聊Linux内核的更多相关文章
- Linux内核源代码解析——TCP状态转移图以及其实现
本文原创为freas_1990,转载请标明出处http://blog.csdn.net/freas_1990/article/details/10223581 TCP状态转移的原理并不高深,但是处理逻 ...
- Linux内核源代码解析之——sock's buffer参数
本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/11539695 关于socket与sock的关系再简单 ...
- Linux内核源代码解析——用户发送数据包的起源之sendto
本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/10162853 Jack:我想知道用户如何把数据发送到 ...
- Linux内核源代码解析之TCP面向字节流
本文原创为freas_1990,转载请标明出处:http://blog.csdn.net/freas_1990/article/details/11264237 大家都知道TCP是面向stream,而 ...
- Ubuntu:编译Linux内核源代码和内核模块
1. 目的 内核模块需要运行在Linux 3.8.13内核中,因此需要为此内核重新编译内核模块源代码. 2. 步骤 1.在Ubuntu 14.04 64位(内核3.13.0-24-generic)上, ...
- Linux内核源代码情景分析系列
http://blog.sina.com.cn/s/blog_6b94d5680101vfqv.html Linux内核源代码情景分析---第五章 文件系统 5.1 概述 构成一个操作系统最重要的就 ...
- linux device tree源代码解析--转
//Based on Linux v3.14 source code Linux设备树机制(Device Tree) 一.描述 ARM Device Tree起源于OpenFirmware (OF), ...
- Linux内核源代码获取教程
Linux内核源代码获取方法 什么叫Linux 什么叫Linux内核 Linux内核源代码的获取 什么叫Linux? Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UN ...
- 如何切入 Linux 内核源代码
Makefile不是Make Love 从前在学校,混了四年,没有学到任何东西,每天就是逃课,上网,玩游戏,睡觉.毕业的时候,人家跟我说Makefile我完全不知,但是一说Make Love我就来劲了 ...
随机推荐
- 分区 Service Bus 队列和主题
编辑人员注释:本文章由 Windows Azure Service Bus 团队的二级项目经理 Ruppert Koch 撰写. 上周,Microsoft 发布了 Azure SDK 2.2 和 Se ...
- DMA(STM32)
1.DMA:data memory access //实际的内存存储 注:DMA干活的时候是不须要CPU干涉的 2. ①内存(定义的变量)---外设(寄存器). ②内存---内存 ③外设---外 ...
- openstack之Glance
一.Glance简介.基本概念: Glance是openstack项目中负责镜像管理的模块,其功能包括虚拟机镜像的查找.注册和检索等操作. Glance提供restful API可以查询虚拟机镜像的m ...
- asp.net MVC 使用JQuery.Ajax
使用到:Jquery.js 以及 Newtonsoft.Json.dll 客户端调用方式: $("#ButAjax").click(function() {$.ajax({type ...
- springdata+redis配置详解
springdata设计初衷是位简化数据类型和数据的持久化存储,它并不局限是关系型数据库还是nosql数据库,都提供了简化的数据库连接,让数据获取变得更加的简单.所有这些的实现有统一的api提供. 本 ...
- FreeCodeCamp:Slasher Flick
要求: 打不死的小强! 返回一个数组被截断n个元素后还剩余的元素,截断从索引0开始. 结果: slasher([1, 2, 3], 2) 应该返回 [3]. slasher([1, 2, 3], 0) ...
- 去掉word2007回车后自动编号
1. 在使用word自动编号时,回车续写上一编号内容可能会行距很宽,这时候使用shift+回车不会自动下一编号,而且是正常行距 取消回车自动编号: 打开Word文档,单击菜单栏上的[格式]→[自动套用 ...
- WebSphere优化
优化WebSphere WebSphere里的profile刚配完,一般默认的heapsize即Xms与Xmx值只有256mb,而IBM WAS是几个J2EE服务器中最吃内存的机器,在布署一些EAR应 ...
- The Power of Reading——英语学习小技巧之七
This method is "The Power of Reading" and it comes from an article by Dr.Stephen Krashen. ...
- RSA, ACS5.X 集成配置
目的是RSA和ACS集成,ACS作为RADIUS服务器提供二次验证服务. ①配置RSA SecurID Token Servers 按照如下网址配置: http://www.cisco.com/c ...