摘要: 转载请注明:【转载自博客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, git checkout 4d9367b76f71c6d938cf8201392abe4bfb1136cb 一、Qemu的内存模型Qemu中的内存模型,简单来说就是Qemu申请用户态内存并进行管理,并将该部分申请的. 阅读全文
posted @ 2013-12-25 20:51 xelatex 阅读(4748) 评论(1) 推荐(0) 编辑
摘要: 转载请注明出处,并保留以上所有对文章内容、图片、表格的来源的描述。一、Linux Namespace Linux Namespace是Linux提供的一种OS-level virtualization的方法。目前在Linux系统上实现OS-level virtualization的系统有Linux VServer、OpenVZ、LXC Linux Container、Virtuozzo等,其中Virtuozzo是OpenVZ的商业版本。以上种种本质来说都是使用了Linux Namespace来进行隔离。 那么究竟什么是Linux Namespace?Linux很早就实现了一个系统调用chroo 阅读全文
posted @ 2013-12-25 20:21 xelatex 阅读(3889) 评论(0) 推荐(1) 编辑
摘要: 前三个和最后一个是两个类型。前三个主要是Linux用来创建新的进程(线程)而设计的,exec()系列函数则是用来用指定的程序替换当前进程的所有内容。所以exec()系列函数经常在前三个函数使用之后调用,来创建一个全新的程序运行环境。Linux用init进程启动其他进程的过程一般都是这样的。 下面说fork、vfork和clone三个函数。这三个函数分别调用了sys_fork、sys_vfork、sys_clone,最终都调用了do_fork函数,差别在于参数的传递和一些基本的准备工作不同。可见这三者最终达到的最本质的目的都是创建一个新的进程。在这里需要明确一下,Linux内核中没有独立的“线. 阅读全文
posted @ 2013-12-25 20:09 xelatex 阅读(1023) 评论(0) 推荐(1) 编辑
摘要: 转载请注明出处,并保留以上所有对文章内容、图片、表格的来源的描述。一、ASLR的问题ASLR(Address Space Layout Randomization),可以通过/proc/sys/kernel/randomize_va_space修改。但是较新的内核版本该值默认为2(在3.2.0如此),老版本为1(在2.6.18如此)。至少可以知道为0的时候是关闭,为1和为2有什么差别还不知道。可以在Documentation/sysctl/kernel.txt中找到如下一段话:=========================================================== 阅读全文
posted @ 2013-12-25 20:01 xelatex 阅读(8819) 评论(0) 推荐(1) 编辑
摘要: 转载请注明出处,并保留以上所有对文章内容、图片、表格的来源的描述。Linux的内存管理 Linux的内存管理是一个非常复杂的过程,主要分成两个大的部分:内核的内存管理和进程虚拟内存。内核的内存管理是Linux内存管理的核心,所以我们先对内核的内存管理进行简介。一、物理内存模型 物理内存模型主要分为两种:UMA(Uniform Memory Access)和NUMA(Non-Uniform Memory Access)。UMA模型是指物理内存是连续的,SMP系统中的每个处理器访问各个内存区都是同样快的;而NUMA模型则是指SMP中的每个CPU都有自己的物理内存区,虽然CPU可以访问其他CPU的内 阅读全文
posted @ 2013-12-25 19:58 xelatex 阅读(7224) 评论(0) 推荐(0) 编辑