做者:snsn1984 linux
最近在研究QEMU,讀了一些QEMU的源碼,由於涉及的東西比較多,找到的資料又都比較破碎,不太完整。因此將最近的成果總結一下。 架構
相比其餘的開源軟件來講,QEMU源碼下面目錄比較多,下面就先把這些目錄的內容大體整理一下。
docs/ 包含了一些文檔,說實話,對初學者來講,讀這些文檔壓根沒有頭緒
hw/ 包含了全部支持的硬件設備 include/ 包含了一些頭文件 linux-user/ 包含了linux下的用戶模式的代碼 target-XXX/ 包含了QEMU目前所支持guset端的處理器架構。包 括:alpha,arm,cris,i386,lm32,m68k,microblaze,mips,openrisc,ppc,s390x,sh4,sparc,unicore32,xtensa. 此處的XXX就是指這其中的一種架構。包含的代碼的主要功能是將該guest架構的指令翻譯成TCG OP代碼。也就是target-arm下的代碼就是將arm架構的指令翻譯成TCG OP。這些目錄佔了源碼目錄的很大一部分。 tcg/ 包含了動態翻譯工具tcg的源碼部分,主要是將TCG OP轉化爲host binary的部分。這個目錄下也包含了多個架構名字命名的目錄,每一個目錄下存放着針對該架構的代碼。後續會詳細介紹。 test/ 從名字上能夠看出,應該是存放測試部分的代碼,可是目前這部分代碼還沒讀。