Docker背后的内核知识(一)】的更多相关文章

cgroups资源限制 上一节中Docker背后的内核知识(一),我们了解了Docker背后使用的资源隔离技术namespace,通过系统调用构建了一个相对隔离的shell环境,也可以称之为简单的“容器”.这一节将讲解另一个强大的内核工具——cgroups.它不仅可以限制被namespace隔离起来的资源,还可以为资源设置权重.计算使用量.操控任务(进程或线程)开启和暂停等等.在介绍完基本概念后,将详细讲解Docker中使用到的cgroups内容. cgroups是什么cgroups(Contr…
Docker背后的内核知识 当谈论Docker时,常常会聊到Docker的实现方式.很多开发者都知道,Docker容器本质上是宿主机上的进程.Docker通过namespace实现了资源隔离.通过cgroups实现了资源限制,通过写时复制机制实现了高效的文件操作.但更进一步深入namespace和cgroups等技术细节时,大部分开发者都会感到茫然无措.所以在这里,先带领大家走进Linux内核,了解namespace和cgroups的技术细节. namespace资源隔离 想要要实现一个资源隔离…
时间 2015-04-20 21:10:00 InfoQ 原文  http://www.infoq.com/cn/articles/docker-kernel-knowledge-cgroups-resource-isolation 主题 Cgroups Docker 上一篇中,我们了解了Docker背后使用的资源隔离技术namespace,通过系统调用构建一个相对隔离的shell环境,也可以称之为一个 简单的“容器”.本文我们则要开始讲解另一个强大的内核工具——cgroups.他不仅可以限制被…
参考URL: https://linux.cn/article-5057-1.html 实现代码(网络和用户空间只是看懂了) 实际上,Linux内核实现namespace的主要目的就是为了实现轻量级虚拟化(容器)服务.在同一个namespace下的进程可以感知彼此的变化,而对外界的进程一无所知.这样就可以让容器中的进程产生错觉,仿佛自己置身于一个独立的系统环境中,以此达到独立和隔离的目的. 需要说明的是,本文所讨论的namespace实现针对的均是Linux内核3.8及其以后的版本. Names…
http://www.infoq.com/cn/articles/docker-resource-management-cgroups 随着Docker技术被越来越多的个人.企业所接受,其用途也越来越广泛.Docker资源管理包含对CPU.内存.IO等资源的限制,但大部分Docker使用者在使用资源管理接口时往往只知其然而不知其所以然. 本文将介绍Docker资源管理背后的Cgroups机制,并且列举每一个资源管理接口对应的Cgroups接口,让Docker使用者对资源管理知其然并且知其所以然.…
Libcontainer 是Docker中用于容器管理的包,它基于Go语言实现,通过管理namespaces.cgroups.capabilities以及文件系统来进行容器控制.你可以使用Libcontainer创建容器,并对容器进行生命周期管理. 容器是一个可管理的执行环境,与主机系统共享内核,可与系统中的其他容器进行隔离. 在2013年Docker刚发布的时候,它是一款基于LXC的开源容器管理引擎.把LXC复杂的容器创建与使用方式简化为Docker自己的一套命令体系.随着Docker的不断发…
原文: http://www.sizeofvoid.net/goroutine-under-the-hood/ 文章写的非常好, 对内部原理解释的非常清楚, 是我喜欢的风格, 感谢作者的精彩文章. ================================================== Go语言从诞生到普及已经三年了,先行者大都是Web开发的背景,也有了一些普及型的书籍,可系统开发背景的人在学习这些书籍的时候,总有语焉不详的感觉,网上也有若干流传甚广的文章,可其中或多或少总有些与事实…
http://www.sizeofvoid.net/goroutine-under-the-hood/ o语言从诞生到普及已经三年了,先行者大都是Web开发的背景,也有了一些普及型的书籍,可系统开发背景的人在学习这些书籍的时候,总有语焉不详的感觉,网上也有若干流传甚广的文章,可其中或多或少总有些与事实不符的技术描述.希望这篇文章能为比较缺少系统编程背景的Web开发人员介绍一下goroutine背后的系统知识. 1. 操作系统与运行库 2. 并发与并行 (Concurrency and Paral…
内核知识第八讲,PDE,PTE,页目录表,页表的内存管理 一丶查看GDT表. 我们通过WinDbg + 虚拟机可以进行双机调试.调试一下看下GDT表 我们知道,GDT表中.存储的是存储段信息. 保存了一系列的段和内存的属性. 但是微软并没有使用. 我们可以通过ring3的段寄存器. 当作GDT表的下标.进行查表. 查询GDT表. 例如我们用OD随便打开一个ring3的exe,然后看下段和虚拟地址.: 虚拟地址: 0040256f  段选择子: cs:1B 那么此时段选择字当下表.虚拟地址当作偏移…
内核知识第12讲,SSDT表.以用户模式到系统模式的两种方式. 一丶IDT解析. 我们知道.IDT表中存放着各种中断信息.比如当我们调用int 3的时候,则会调用IDT表中的第三项来进行调用. 而函数地址则是操作系统给的. 因为中断是CPU和操作系统通信的一种方式. 查看IDTR  (IDT表)第三项. IDT首地址给出了,其中表项是7ff 我们每一项是8个字节,所以 7ff/8 = 255 项.也就是IDT表中是0-256 其中重要的是有个int 3 我们对其 u,则可以看int 3的指令的.…