结合如今比较流行的技术,经过一个demo 展现一个全栈式设计的各类技能。python
一个全栈式的工程师,应该能设计经过verilog/VHDL作logical设计。能写内核驱动,能架站。linux
要熟悉verilog/VHDL, C/C++, shell, python, JS, HTML, CSS等语言。shell
发现本身不少细节还须要了解。网站
简单的说,qemu 是一个开源软件,能够模拟整个计算机系统, 包括多种CPU和各类外设。spa
咱们能够形象的比喻 qemu就是一个虚拟的攒机器商。或者简单的理解为,他就是神舟或者联想。设计
用qemu生成一个电脑过程,不少人都去过中关村攒过机器(DIY)过程同样。htm
好比说咱们列一个清单,须要2个x86的CPU, 须要2G RAM, 须要一个网卡,须要一个声卡,须要一个20G的硬盘。 如今交给 qemu来完成。请 执行 ($ man qemu) 查看qemu的用法。接口
$ sudo qemu-system-x86_64 -boot c -m 20480 -hda /home/kvm/winxp.img -net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tap0,script=no -clock rtc -soundhw es1370 -smp 2ip
qemu-system-x86_64 表示是x86的CPU, -smp 2表示是2个CPU内存
-m 20480 即是是2G 内存。
-net nic,vlan=0,macaddr=52-54-00-12-34-01 -net tap,vlan=0,df=h,ifname=tap0,script=no表示增长的了一个网卡接口。
-soundhw es1370 表示声卡。
-hda /home/kvm/winxp.im 就是咱们的硬盘。 具体大小是咱们建立的时候的大小。 经过qemu-image来建立这个硬盘,而且制定硬盘大小。 请 执行($ man qemu-image)来查看用法。
咱们的这个电脑就攒好了。
qemu模拟的CPU是经过一个动态二进制编译的技术, 请参考《编译原理》。
详情,请参考
qemu 官方网站: http://wiki.qemu.org/Main_Page
wikibooks: http://en.wikibooks.org/wiki/QEMU
是一个开源的系统虚拟化模块。简单的说,他就是一个linux 驱动, 能提供一个执行跟运行KVM自身相同的CPU的指令集的环境。
KVM的虚拟化须要硬件支持(如Intel VT技术或者AMD V技术)。是基于硬件的彻底虚拟化。
详情,请参考 kvm官方网站 http://www.linux-kvm.org/page/Main_Page
经过上面的简单介绍,咱们知道,qemu能够经过模拟的CPU执行指令。
而KVM 则能用硬件提供的虚拟化功能, 直接让真 实CPU执行虚拟机内存里的指令。
那咱们确定回想,可让qemu直接调用kvm而不使用模拟的CPU吗?
是的,能够。
$ sudo qemu-system-x86_64 --enable-kvm ...
经过KVM, qem模拟的电脑能够接近真实电脑的速度。