原创 推薦個看kernel源碼的好網站。

好吧,其實我是準備看KVM代碼的。 http://www.cs.fsu.edu/~baker/devices/lxr/http/source/linux/virt/kvm/kvm_main.c 爭取九月份能來KVM源代碼分析,Com

原创 看操作系統虛擬化原理總結篇——軟件虛擬化中的IO虛擬化

1,首先明確,如果以純軟件的方式去模擬IO,那簡直是作死。因爲大部分都是用模擬的方式,這樣效率不會太高。 在模擬的時候,只需要正確模擬出目標設備的軟件接口就可以保證客戶機操作系統觀察到的虛擬設備和目標設備一致,而不需要考慮真實的硬件構造

原创 看操作系統虛擬化原理總結篇——VMCS詳解

1.VMCS的組成 有三部分:偏移0處是版本標識,偏移4處是中止指示,偏移8處是VMCS的數據域,其中第三部分纔是我們要考慮的重點。它是被保存在內存中的。 2,爲什麼要引入VMCS 這完全是由於Intel VT_x來引起的,它主要被CP

原创 看操作系統虛擬化原理總結篇——基於軟件的完全虛擬化——cpu

1,軟件虛擬化的可行方案 模擬執行和源代碼改寫。 下面也分爲三個部分來介紹軟件虛擬化 1.CPU的虛擬化: 通過之前的學習,我們已經知道了CPU的虛擬化本質是指令的虛擬化,即VMM能捕獲客戶機的敏感指令或者特權指令,通過陷入和模擬的方

原创 如何對待一個人好

如果是男朋友,那麼對你的好很強硬,很直接,不接受也得接受。 可惜我不是,對你好還需要保持好度,保持好距離。 生日快樂。 點贊 收藏 分享 文章舉報 xiaqing01 發佈

原创 影子頁表和EPT

影子頁表 不得不承認,一直對影子頁表和EPT技術都一知半解,是時候好好的認真的理解了。 先說普通的內存地址轉換,首先明確基本知識點。 頁表:確定了線性地址和物理地址的轉換。 TLB 就是保存頁表中對應的線性地址和物理地址的轉換,這樣的作

原创 看操作系統虛擬化原理總結篇——虛擬化概述原理

1.如何判斷一個架構能否虛擬化 先說下虛擬化的三個典型特徵:同質,高效,資源受控。 再說下指令:系統中有一些操作和管理關鍵系統資源的指令被定義成特權指令,這些指令只能運行在最高特權級上。 另外還有部分指令,可能需要讀取敏感寄存器,內存地址

原创 看操作系統虛擬化原理總結篇——硬件虛擬化中的內存虛擬化-EPT

EPT: 先說EPT的優勢吧:可以由CPU自動的完成兩級頁錶轉換,即不用影子頁表也可以迅速的從GVA ---> HPA。 然後既然是影子頁表的補充:那我們分析下影子頁表的劣勢。第一,影子頁表實現比較複雜,導致其維護,調試等都比較困難;第

原创 最後一次開學

這可能是人生中最後一次的開學經歷了,再過半年,就徹底的擺脫學生這個身份,這個伴隨着自己二十多年的身份了。 昨天晚上睡不着,逛了下豆瓣。聊到了同桌的你,看完之後確實是那麼的傷感。我也曾努力的回想,同桌的你,你在哪裏? 我也想慢慢的列出以前的

原创 謝謝你的早餐,謝謝

哈,Hui 謝謝你的早餐。 點贊 收藏 分享 文章舉報 xiaqing01 發佈了111 篇原創文章 · 獲贊 8 · 訪問量 8萬+ 私信

原创 四天沒見了

Hui,四天沒見了。 再見面卻不知道說啥,很奇怪的感覺,越是想念一個人越會讓自己無措。sign... 點贊 收藏 分享 文章舉報 xiaqing01 發佈了111 篇原創文章

原创 看操作系統虛擬化原理總結篇——基於軟件的完全虛擬化——內存

內存虛擬化的目標: 兩個:第一個是提供給虛擬機一個從零開始連續的物理內存空間;     第二個是對不同的虛擬機進行內存資源的共享和隔離。 至於內存虛擬化需要完成兩次轉換呀,客戶機維持前半部分,物理機維護後半部分,這都是基礎,先不說了。只

原创 kvm 源代碼雜篇

分析KVM,對我這種菜鳥確實難度太大。下面簡單的先從虛擬機的創建和運行調用的函數分析。。。 首先申明一個kvm_context_t 變量用以描述用戶態虛擬機上下文信息,然後調用kvm_init()函數初始化虛擬機上下文信息;函數kvm_

原创 看操作系統虛擬化原理總結篇——硬件虛擬化中的CPU虛擬化

1,回顧 首先回顧下沒有Intel -VT的支持的時候如何用軟件虛擬化CPU. 之前有三種方法支持CPU的模擬的,解釋執行,掃描修補,二進制翻譯。具體內容可以參考之前的文章。 其實,軟件模擬的時候,最重要的就是對敏感指令的模擬,要使敏感指

原创 看操作系統虛擬化原理總結篇——硬件虛擬化中的IO虛擬化

1,先說下IO虛擬化的指標: 性能和通用性,這裏硬件虛擬化中主要添加的功能是性能的擴展。因爲基於純軟件的方式可以看出性能並不太好,因爲中間的指令都是經過模擬,模擬的性能遠不及虛擬。 所以intel引入 VT-d技術。 2,詳解VT-d技