Kernel相关
文章平均质量分 74
yzt356
这个作者很懒,什么都没留下…
展开
-
Linux Namespace
转载请注明出处,并保留以上所有对文章内容、图片、表格的来源的描述。 一、Linux Namespace Linux Namespace是Linux提供的一种OS-level virtualization的方法。目前在Linux系统上实现OS-level virtualization的系统有Linux VServer、OpenVZ、LXC Linux Contain原创 2013-12-30 13:34:28 · 1235 阅读 · 0 评论 -
Linux Kernel同步机制
转载请注明:【转载自博客xelatex KVM】,并附本文链接。谢谢。Linux Kernel的同步机制是目前进行Linux Kernel开发所必须了解的一部分。在早期的Kernel版本中,由于Linux不支持SMP和抢占式内核,所以只需要处理中断发生时和内核代码显式reschedule时的锁,其锁机制是非常简单的。但是从2.0版本的内核开始,Linux开始支持SMP,这样多个原创 2014-01-03 12:14:44 · 1403 阅读 · 0 评论 -
Linux进程上下文切换
转载请注明:【转载自博客xelatex KVM】,并附本文链接。谢谢。Process Context Switch in Linux Kernel Basic call path of process scheduling in Linux (start from kernel/sched.c): schedule()->context_swit原创 2013-12-30 20:03:39 · 2197 阅读 · 0 评论 -
Linux进程虚拟地址空间
Linux进程虚拟地址空间的是Linux内存管理的另外一个重要的部分。之前说过Linux对物理内存的管理,对于用户进程的内存访问,Linux提供了一套另外一套更加复杂的模式,这种模式通过页表来访问物理内存,而这种访问模式目前也被大部分CPU体系结构所支持。一、内存虚拟空间的概述内存虚拟空间的布局 我们知道,在IA-32体系结构中,任何一个进程都能够访问4GB的内存空间原创 2013-12-30 13:46:08 · 2102 阅读 · 0 评论 -
如何阅读KVM代码
转载请注明:【转载自博客xelatex KVM】,并附本文链接。谢谢。KVM作为目前越来越流行的VMM,受到越来越多人的关注。但是关于KVM代码的说明却很少,无论是网上还是实体书籍,都少有这方面的资料。一方面是KVM的代码变动的太快了,另外一方面也是因为这个领域里面的人也不多。我在这里简单写一个《如何阅读KVM代码》,一方面是记录一些信息以备查询,另一方面也是能够抛砖引玉,让刚原创 2013-12-30 19:42:10 · 2435 阅读 · 0 评论 -
KVM MMU EPT内存管理
转载请注明:【转载自博客xelatex KVM】,并附本文链接。谢谢。 【注】文章中采用的版本:Linux-3.11,https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.11.tar.gzqemu-kvm,git clone http://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git,原创 2013-12-30 17:47:22 · 9918 阅读 · 0 评论 -
Linux的内存管理
转载请注明出处,并保留以上所有对文章内容、图片、表格的来源的描述。Linux的内存管理 Linux的内存管理是一个非常复杂的过程,主要分成两个大的部分:内核的内存管理和进程虚拟内存。内核的内存管理是Linux内存管理的核心,所以我们先对内核的内存管理进行简介。一、物理内存模型 物理内存模型主要分为两种:UMA(Uniform Memor原创 2013-12-30 13:51:07 · 1178 阅读 · 1 评论 -
ASLR (Address space layout randomization)技术和匿名页
转载请注明出处,并保留以上所有对文章内容、图片、表格的来源的描述。一、ASLR的问题ASLR(Address Space Layout Randomization),可以通过/proc/sys/kernel/randomize_va_space修改。但是较新的内核版本该值默认为2(在3.2.0如此),老版本为1(在2.6.18如此)。至少可以知道为0的时候是关闭,为1和为2有什么差翻译 2013-12-30 13:37:26 · 1761 阅读 · 0 评论 -
fork()、vfork()、clone()和exec()
前三个和最后一个是两个类型。前三个主要是Linux用来创建新的进程(线程)而设计的,exec()系列函数则是用来用指定的程序替换当前进程的所有内容。所以exec()系列函数经常在前三个函数使用之后调用,来创建一个全新的程序运行环境。Linux用init进程启动其他进程的过程一般都是这样的。 下面说fork、vfork和clone三个函数。这三个函数分别调用了sys_fork、原创 2013-12-30 13:35:34 · 650 阅读 · 0 评论 -
Intel VT技术中的Preemption Timer
转载请注明:【转载自博客xelatex KVM】,并附本文链接。谢谢。Intel VT技术中有一些比较奇怪的功能,被使用的并不多,Preemption Timer就是其中一个。该功能在大部分情景下都没有用,但是在某些特殊的情况下可能有很神奇的效果。一、什么是Preemption TimerPreemption Timer是一种可以周期性使原创 2014-01-02 17:27:08 · 3496 阅读 · 3 评论