代码改变世界

随笔分类 -  [linux内核]

linux内存源码分析 - 内存碎片整理(同步关系)

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

内核参数说明

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

总结一下linux中的分段机制

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

几句话总结内核中的锁

2015-07-06 12:28 by tolimit, 2595 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 原子操作(atomic): 通过在汇编操作码前缀加个lock(0xf0)来给add命令上锁, 这个锁可能是对cache上锁(数据在cache中)或者对总线上锁(数据在内存中, 不在cache中),让其他CPU无法 阅读全文

linux源码分析 - 进程

2015-05-27 10:14 by tolimit, 6722 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 最近在回想一些知识点的时候,觉得对进程这一块有些模糊,特别写一篇随笔对进程信息进行巩固和复习。 程序和进程 以我个人的理解就是,程序是一段二进制编码甚至是一个简单的可执行文件,而当程序这段二进制编码放入内存运行时 阅读全文

关于linux系统如何实现fork的研究(二)

2015-02-04 16:37 by tolimit, 2405 阅读, 收藏, 编辑
摘要: 本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 引言 前一篇关于linux系统如何实现fork的研究(一)通过代码已经说明了从用户态怎么通过软中断实现调用系统调用clone函数,而clone函数的精华copy_process函数就在此篇文章中进行分析。我们知道 阅读全文

关于linux系统如何实现fork的研究(一)

2015-01-30 17:22 by tolimit, 3779 阅读, 收藏, 编辑
摘要: 引言 fork函数是用于在linux系统中创建进程所使用,而最近看了看一个fork()调用是怎么从应用到glibc,最后到内核中实现的,这片文章就聊聊最近对这方面研究的收获吧。我们主要聊聊从glibc库进入内核,再从内核出来的情景,而从应用到glibc这部分本片文章就不详细说明了。为了方便期间,我... 阅读全文

关于for,while,dowhile效率测试

2015-01-22 11:03 by tolimit, 4821 阅读, 收藏, 编辑
摘要: 引言 大家都知道每种循环对应的效率是不同的,书中都说在循环中使用减法的效率是比加法的效率高的,具体情况是怎么样,我们将详细列出各循环的执行效率问题。本文通过查看汇编代码比较各循环的效率以及i++,++i,i--,--i在循环中使用的效率问题,仅供抛砖引玉,测试平台为intel i5 4440,编译... 阅读全文

谈谈arm下的函数栈

2015-01-16 17:14 by tolimit, 3482 阅读, 收藏, 编辑
摘要: 引言 这篇文章简要说说函数是怎么传入参数的,我们都知道,当一个函数调用使用少量参数(ARM上是少于等于4个)时,参数是通过寄存器进行传值(ARM上是通过r0,r1,r2,r3),而当参数多于4个时,会将多出的参数压入栈中进行传递(其实在函数调用过程中也会把r0,r1,r2,r3传递的参数压入栈),... 阅读全文

IO端口和IO内存

2015-01-14 15:23 by tolimit, 1183 阅读, 收藏, 编辑
摘要: 为什么会有IO端口和IO内存 这主要原因是因为处理器的架构不同,这里我们使用arm来代表典型的使用IO内存架构,intel 80x86代表典型的使用IO端口架构。简单来说arm把所有寄存器(包括外部设备的)、内存等所有需要寻址才能访问的东东全部丢到了一个地址空间中,而80x86则是分为了两个地址空... 阅读全文

linux笔记 - 配置与编译

2014-10-30 15:35 by tolimit, 2209 阅读, 收藏, 编辑
摘要: linux内核下载地址:https://www.kernel.org/ubuntu下载内核对应源码:sudo apt-get source linux-$(uname -r) #此命令下载的源码存放在/usr/src/文件夹中配置: 内核编译时会根据内核目录下的.config文件进行编译,而... 阅读全文