虚拟MMU---客户机页表遍历
客户 机页表的遍历 MMU的功能: 虚拟 机地址转换为物理地址,下面函数模拟此过程。 1.数据结构 struct guest_walker { int level; gfn_t table_gfn[PT_MAX_FULL_LEVELS]; pt_element_t ptes[PT_MAX_FULL_LEVELS]; gpa_t pte_gpa[PT_MAX_FULL_LEVELS]; unsign
客户机页表的遍历
MMU的功能:虚拟机地址转换为物理地址,下面函数模拟此过程。
1.数据结构
struct guest_walker {int level;
gfn_t table_gfn[PT_MAX_FULL_LEVELS];
pt_element_t ptes[PT_MAX_FULL_LEVELS];
gpa_t pte_gpa[PT_MAX_FULL_LEVELS];
unsigned pt_access;
unsigned pte_access;
gfn_t gfn;
u32 error_code;
};
+-------+
| |
+-------+
| c |
|-------| | |
+-------+
|-------|
|-------|
+-------+ 某级页表
a:页表项基地址
b:index的地址
c:index的地址内容
遍历完成后,数据结构内容为
gfn:客户机页表转换后物理地址页框号
假设PT_MAX_FULL_LEVELS=4
table_gfn【0-3】存放 4级页表项基地址
pte_gpa【0-3】 存放4级页表项中index基地址
ptes【0-3】 存放4级页表项中index基地址内容
pt_access: gfn的访问权限
pte_access: gfn的访问权限
2:客户机页表的遍历,也是虚拟MMU
static int FNAME(walk_addr)(struct guest_walker *walker,
struct kvm_vcpu *vcpu, gva_t addr,
int write_fault, int user_fault, int fetch_fault)
walker->level = vcpu->arch.mmu.root_level;//64位客户机系统,页表级数为4.
pte = vcpu->arch.cr3; //页目录基地址
for (;;) { //从64位客户机页目录开始遍历,最后到页表
index = PT_INDEX(addr, walker->level);
table_gfn = gpte_to_gfn(pte);
pte_gpa = gfn_to_gpa(table_gfn);
pte_gpa += index * sizeof(pt_element_t);
walker->table_gfn[walker->level - 1] = table_gfn; //存放页表基地址
walker->pte_gpa[walker->level - 1] = pte_gpa; //存放页表index基地址
if (kvm_read_guest(vcpu->kvm, pte_gpa, &pte, sizeof(pte)))//获取存放页表index基地址页表项
goto not_present;
pte_access = pt_access & FNAME(gpte_access)(vcpu, pte);//获取存放页表index基地址页表项权限
walker->ptes[walker->level - 1] = pte;//存放存放页表index基地址页表项
if ((walker->level == PT_PAGE_TABLE_LEVEL)//页表的最后一级存放客户机物理页地址
{
int lvl = walker->level;
walker->gfn = gpte_to_gfn_lvl(pte, lvl);//转换客户机物理页地址为客户机物理页框号
walker->gfn += (addr & PT_LVL_OFFSET_MASK(lvl))
>> PAGE_SHIFT;
break;
}
pt_access = pte_access;
--walker->level; //遍历下一级页表
}
//页表遍历完成后,获取页表的访问权限,存放到数据结构中
walker->pt_access = pt_access;
walker->pte_access = pte_access;
pgprintk("%s: pte %llx pte_access %x pt_access %x\n",
__func__, (u64)pte, pt_access, pte_access);
return 1;
}

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Sie fragen sich vielleicht, was der Microsoft Wi-Fi Direct Virtual Adapter auf Ihrem PC macht. Seien Sie besser versichert, dass dieser Netzwerkadapter von Microsoft stammt und absolut sicher ist. Wenn der Adapter Ihre Aktivitäten jedoch durcheinander bringt und Sie sich fragen, ob es sich lohnt, ihn aufzubewahren, finden Sie in diesem Leitfaden alles, was Sie wissen müssen. Was macht der virtuelle Microsoft Wi-Fi Direct-Adapter? Wie der Name schon sagt, hilft der Microsoft Wi-Fi Direct Virtual Adapter dabei, Ihren PC zu einem drahtlosen Hotspot zu machen. Auf diese Weise können andere Computer eine Verbindung zu Ihrem PC herstellen, um auf das Internet zuzugreifen. Dies geschieht durch die Virtualisierung drahtloser Netzwerkadapter. Auf diese Weise wird Ihr einzelner physischer WLAN-Adapter in zwei virtuelle umgewandelt

Zuschauer, die mit „Westworld“ vertraut sind, wissen, dass diese Show in einem riesigen High-Tech-Themenpark für Erwachsene in der Zukunftswelt spielt. Die Roboter haben ähnliche Verhaltensfähigkeiten wie Menschen und können sich an das erinnern, was sie sehen und hören, und die Kernhandlung wiederholen. Jeden Tag werden diese Roboter zurückgesetzt und in ihren Ausgangszustand zurückversetzt. Nach der Veröffentlichung des Stanford-Artikels „Generative Agents: Interactive Simulacra of Human Behavior“ ist dieses Szenario nicht mehr auf Filme und Fernsehserien beschränkt Szene in Smallvilles „Virtual Town“ 》Übersichtskarten-Papieradresse: https://arxiv.org/pdf/2304.03442v1.pdf

Java ist eine beliebte Programmiersprache mit leistungsstarken Funktionen zur Dateiverarbeitung. In Java ist das Durchsuchen eines Ordners und das Abrufen aller Dateinamen ein üblicher Vorgang, der uns dabei helfen kann, Dateien in einem bestimmten Verzeichnis schnell zu finden und zu verarbeiten. In diesem Artikel wird erläutert, wie eine Methode zum Durchlaufen eines Ordners und zum Abrufen aller Dateinamen in Java implementiert wird, und es werden spezifische Codebeispiele bereitgestellt. 1. Verwenden Sie die rekursive Methode, um den Ordner zu durchlaufen. Die rekursive Methode ist eine Möglichkeit, sich selbst aufzurufen und den Ordner effektiv zu durchlaufen.

Laut Nachrichten vom 25. September hat die Huawei Mall damit begonnen, Reservierungen für das Wenjie M9-Auto von AITO entgegenzunehmen. Dieses Auto ist als Panorama-Smart-Flaggschiff-SUV mit auffälligen Merkmalen positioniert. Verbraucher müssen lediglich eine Anzahlung von 5.000 Yuan leisten, mit der die Restzahlung von bis zu 10.000 Yuan ausgeglichen werden kann. Das neue Auto wird in zwei Versionen erhältlich sein, nämlich der Version mit erweiterter Reichweite und der reinen Elektroversion. Der Preis wird voraussichtlich zwischen 500.000 und 600.000 Yuan liegen, was ihn auf dem High-End-SUV-Markt wettbewerbsfähig macht. Wenjie M9 wird voraussichtlich im vierten Quartal 2023 offiziell auf den Markt kommen. Es wurden noch keine Informationen zu seiner spezifischen Konfiguration bekannt gegeben. Es wird davon ausgegangen, dass das M9-Modell eine familienorientierte Designsprache übernimmt. Den beiden offiziellen Bildern nach zu urteilen sind die Seitenlinien des Fahrzeugs glatt und die Türgriffe haben ein verstecktes Design, was dem gesamten Fahrzeug Technologie verleiht.

Beispiel für die Verwendung der PHPglob()-Funktion: Alle Dateien in einem bestimmten Ordner durchsuchen Bei der PHP-Entwicklung ist es häufig erforderlich, alle Dateien in einem bestimmten Ordner zu durchsuchen, um einen Stapelvorgang oder das Lesen von Dateien zu implementieren. Um diese Anforderung zu erfüllen, wird die glob()-Funktion von PHP verwendet. Die Funktion glob() kann die Pfadinformationen aller Dateien im angegebenen Ordner abrufen, die die Bedingungen erfüllen, indem sie ein Platzhalter-Übereinstimmungsmuster angibt. In diesem Artikel zeigen wir, wie Sie mit der Funktion glob() alle Dateien in einem bestimmten Ordner durchlaufen

Microsoft hat heute eine frühe Vorschau der SharePoint-Integration mit Copilot in Dynamics 365 Customer Service angekündigt. Durch diese Integration erhalten Kundendienstmitarbeiter Zugriff auf ein breiteres Spektrum an Wissensquellen, was zu einer höheren Produktivität und verbesserten Kundeninteraktionen führt. Derzeit nutzt Copilot im Dynamics365 Customer Service eine interne Wissensdatenbank, um Kundendienstmitarbeitern Anleitung zu geben. Durch das Vorschlagen von Chat- und Entwurfs-E-Mail-Inhalten ist Copilot zu einem wichtigen Tool zur Steigerung der Produktivität Ihres Kundenservice-Teams geworden. Kundenfeedback zeigt jedoch, dass das Tool Wissen aus externen Quellen wie SharePoint nutzen muss. SharePoint Collaborative Driving Integration Als Reaktion auf dieses Feedback

Konzeptionelle Unterschiede: Iterator: Iterator ist eine Schnittstelle, die einen Iterator darstellt, der Werte aus einer Sammlung erhält. Es bietet Methoden wie MoveNext(), Current() und Reset(), mit denen Sie die Elemente in der Sammlung durchlaufen und das aktuelle Element bearbeiten können. Iterable: Iterable ist ebenfalls eine Schnittstelle, die ein iterierbares Objekt darstellt. Es stellt die Methode Iterator() bereit, die ein Iterator-Objekt zurückgibt, um das Durchlaufen der Elemente in der Sammlung zu erleichtern. Verwendung: Iterator: Um Iterator zu verwenden, müssen Sie zuerst ein Iterator-Objekt abrufen und dann die Methode MoveNext() aufrufen, um zum nächsten zu wechseln

Top 10 Währungsplattformen in der Kryptowährung von 2025: OKX, eine hohe Liquidität, eine geringe Gebühren und eine reichliche Binance; .
