結合如今比較流行的技術,經過一個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模擬的電腦能夠接近真實電腦的速度。