50、虚拟机:如何成立子公司,让公司变集团?

我们前面所有章节涉及的Linux操作系统原理,都是在一台Linux服务器上工作的。在前面的原理阐述中,我们一直把Linux当作一家外包公司的老板来看待。想要管理这么复杂、这么大的一个公司,需要配备咱们前面讲过的所有机制。 Linux很强大,Linux...

趣谈Linux操作系统

51、计算虚拟化之CPU(上):如何复用集团的人力资源?

上一节,我们讲了一下虚拟化的基本原理,以及qemu、kvm之间的关系。这一节,我们就来看一下,用户态的qemu和内核态的kvm如何一起协作,来创建虚拟机,实现CPU和内存虚拟化。 这里是上一节我们讲的qemu启动时候的命令。 12qemu-syste...

趣谈Linux操作系统

52、计算虚拟化之CPU(下):如何复用集团的人力资源?

上一节qemu初始化的main函数,我们解析了一个开头,得到了表示体系结构的MachineClass以及MachineState。 4.初始化块设备我们接着回到main函数,接下来初始化的是块设备,调用的是configure_blockdev。这里我...

趣谈Linux操作系统

53、计算虚拟化之内存:如何建立独立的办公室?

上一节,我们解析了计算虚拟化之CPU。可以看到,CPU的虚拟化是用户态的qemu和内核态的KVM共同配合完成的。它们二者通过ioctl进行通信。对于内存管理来讲,也是需要这两者配合完成的。 咱们在内存管理的时候讲过,操作系统给每个进程分配的内存都是虚...

趣谈Linux操作系统

54、存储虚拟化(上):如何建立自己保管的单独档案库?

前面几节,我们讲了CPU和内存的虚拟化。我们知道,完全虚拟化是很慢的,而通过内核的KVM技术和EPT技术,加速虚拟机对于物理CPU和内存的使用,我们称为硬件辅助虚拟化。 对于一台虚拟机而言,除了要虚拟化CPU和内存,存储和网络也需要虚拟化,存储和网络...

趣谈Linux操作系统

55、存储虚拟化(下):如何建立自己保管的单独档案库?

上一节,我们讲了qemu启动过程中的存储虚拟化。好了,现在qemu启动了,硬盘设备文件已经打开了。那如果我们要往虚拟机的一个进程写入一个文件,该怎么做呢?最终这个文件又是如何落到宿主机上的硬盘文件的呢?这一节,我们一起来看一看。 前端设备驱动virt...

趣谈Linux操作系统

56、网络虚拟化:如何成立独立的合作部?

上一节,我们讲了存储虚拟化,这一节我们来讲网络虚拟化。 网络虚拟化有和存储虚拟化类似的地方,例如,它们都是基于virtio的,因而我们在看网络虚拟化的过程中,会看到和存储虚拟化很像的数据结构和原理。但是,网络虚拟化也有自己的特殊性。例如,存储虚拟化是...

趣谈Linux操作系统

57、容器:大公司为保持创新,鼓励内部创业

上一章,我们讲了虚拟化的原理。从一台物理机虚拟化出很多的虚拟机这种方式,一定程度上实现了资源创建的灵活性。但是你同时会发现,虚拟化的方式还是非常复杂的。这有点儿像,你去成立子公司,虽然说公司小,但毕竟是一些独立的公司,麻雀虽小,五脏俱全,因而就像上一...

趣谈Linux操作系统

58、Namespace技术:内部创业公司应该独立运营

上一节我们讲了Docker的基本原理,今天我们来看一下,“看起来隔离的”技术namespace在内核里面是如何工作的。 既然容器是一种类似公司内部创业的技术,我们可以设想一下,如果一个创新项目要独立运营,应该成立哪些看起来独立的组织和部门呢? 首先是...

趣谈Linux操作系统

59、cgroup技术:内部创业公司应该独立核算成本

我们前面说了,容器实现封闭的环境主要靠两种技术,一种是“看起来是隔离”的技术Namespace,另一种是用起来是隔离的技术cgroup。 上一节我们讲了“看起来隔离“的技术Namespace,这一节我们就来看一下“用起来隔离“的技术cgroup。 c...

趣谈Linux操作系统
14567