docker原理与上帝进程

做个笔记, 先水一会。

虚拟机指的是: 在软件的层面上通过模拟硬件进行的输入输出。

docker原理:
docker就是一个linux系统的进程, 它通过 Linux 的 namespaces 对不同的容器实现了资源隔离,然后上面再跑一层rootfs文件系统
当容器使用的时候为了单个容器不榨干系统资源,所以就使用cgroup来做控制

那么下面就很好理解了:

docker的文件系统分为两层:bootfsrootfs
bootfs

包含了bootloader和linux内核。用户是不能对这层作任何修改的。在内核启动之后,bootfs实际上会unmount掉。
rootfs

则包含了一般系统上的常见目录结构,类似于/dev, /proc, /bin等等以及一些基本的文件和命令。
linux上不同版本的问题,docker可以同时运行多个rootfs。

上帝进程idle

1.简单的说idle是一个进程, 贴切一点说是系统创建的第一个进程(idle进程由系统自动创建, 运行在内核态 ),其pid号为 0。其前身是系统创建的第一个进程,也是唯一一个没有通过fork()产生的进程, 完成加载系统后,演变为进程调度、交换, idle进程最终调用了cpu_idle()函数。
2.主处理器上的idle由原始进程(pid=0)演变而来。从处理器上的idle由init进程fork得到,可是它们的pid都为0。
3.Idle进程为最低优先级。且不參与调度。仅仅是在执行队列为空的时候才被调度。
4.Idle循环等待need_resched置位。默认使用hlt节能。

原文地址:https://www.cnblogs.com/chenglee/p/10435616.html