Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
device-modeling-language — Domänenspezifische Sprache zum Schreiben schneller funktionaler Gerätemodelle für virtuelle Plattformen. Kompiliert DML zu C mit für den Intel Simics Simulator maßgeschneiderten API-Aufrufen und ermöglicht so Hardwaresimulation und Sicherheitstests. | Kitploit
Tools/GitHubGitHub/intel/device-modeling-language
Embedded-System-SicherheitSicherheitsvirtualisierungHardware-SicherheitHardware- & IoT-SicherheitFirmware-Analyse
GitHubintel/device-modeling-language

device-modeling-language

Domänenspezifische Sprache zum Schreiben schneller funktionaler Gerätemodelle für virtuelle Plattformen. Kompiliert DML zu C mit für den Intel Simics Simulator maßgeschneiderten API-Aufrufen und ermöglicht so Hardwaresimulation und Sicherheitstests.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
13952vor 1 MonatVon Kitploit geprüft

Gerätemodellierungssprache

Die Device Modeling Language (DML) ist eine domänenspezifische Sprache zum Schreiben schneller funktionaler oder transaktionsorientierter Gerätemodelle für virtuelle Plattformen. DML bietet High-Level-Abstraktionen, die für funktionale Gerätemodelle geeignet sind, einschließlich Konstrukten wie Registerbänken, Registern, Bitfeldern, Ereignisauslösung, Schnittstellen zwischen Modellen und Protokollierung. DML-Code wird vom DML Compiler (DMLC) kompiliert, wodurch C-Code mit API-Aufrufen erzeugt wird, die auf einen bestimmten Simulator zugeschnitten sind.

Derzeit unterstützt der Compiler die Erstellung von Modellen für den Intel® Simics® Simulator, aber in Zukunft können weitere Backends hinzugefügt werden.

Erstellen und Testen von DMLC

Um DMLC zu erstellen, benötigen Sie eine Simics-Simulator-Installation und ein eingerichtetes Simics-Projekt.

Verwendung der öffentlichen Veröffentlichung des Intel Simics Simulators

Falls Sie noch keine Simics-Simulator-Installation haben oder keinen Zugang zum Simics-Simulator über kommerzielle Kanäle haben, installieren Sie die Public Release of the Intel Simics simulator und erstellen Sie ein Simics-Projekt (automatisch im Standard-Installationsablauf).

Erstellen von DMLC aus einem Simics-Projekt

Checken Sie in Ihrem Simics-Projekt das DML-Repository in das Verzeichnis modules/dmlc aus. Führen Sie auf der obersten Ebene des Projekts make dmlc (oder bin\make dmlc unter Windows) aus.

Testen von DMLC aus einem Simics-Projekt

Um die mit DMLC bereitgestellten Komponententests auszuführen, führen Sie make test-dmlc oder bin/test-runner --suite modules/dmlc/test von der obersten Ebene des Projekts aus.

Umgebungsvariablen

Die folgenden Umgebungsvariablen sind bei der Entwicklung von DMLC nützlich. Wenn Sie regelmäßig mit einem lokal erstellten DMLC arbeiten, sollten Sie die Variablen DMLC_DIR T126_JOBS, DMLC_PATHSUBST und PY_SYMLINKS in Ihrer .bashrc setzen. Die übrigen Variablen sollten Sie besser nur bei Bedarf aktivieren.

DMLC_DIR

Nach dem Erstellen von DMLC müssen Sie bei nachfolgenden Aufrufen von make DMLC_DIR auf <your-project>/<hosttype>/bin setzen, um Geräte mit dem lokal erstellten Compiler zu bauen. <hosttype> ist entweder linux64 oder win64, abhängig von Ihrem Host-Typ.

T126_JOBS

Wenn diese Variable gesetzt ist, wird die angegebene Anzahl von Tests parallel ausgeführt.

DMLC_PATHSUBST

Der DMLC-Build kopiert einige DML-Bibliotheksdateien, z.B. dml-builtins.dml, in <hosttype>/bin. Wenn ein Kompilierungsfehler auftritt, verweisen Fehlermeldungen normalerweise auf diese Kopie und nicht auf die Quelle. Durch Setzen von DMLC_PATHSUBST auf <hosttype>/bin/dml=modules/dmlc/lib werden Fehlermeldungen umgeschrieben, um stattdessen auf die Quelldatei zu verweisen. <hosttype> ist entweder linux64 oder win64, abhängig von Ihrem Host-Typ.

PY_SYMLINKS

Wenn auf 1 gesetzt, erstellt make dmlc symbolische Links für Python-Dateien anstatt sie zu kopieren. Dies hat zwei Auswirkungen: Python-Tracebacks führen zur Quelldatei im Repository, und Sie müssen make nach dem Bearbeiten von Python-Dateien nicht erneut ausführen.

DMLC_DEBUG

Wenn auf 1 gesetzt, werden unerwartete Ausnahmen im Compiler nach stderr ausgegeben. Standardmäßig werden Tracebacks in einer Datei dmlc-error.log versteckt.

DMLC_CC

Überschreibt den Standard-Compiler in Komponententests.

DMLC_PROFILE

Wenn gesetzt, führt DMLC ein Selbst-Profiling durch und schreibt das Profil in eine .prof-Datei.

DMLC_DUMP_INPUT_FILES

Wenn gesetzt, gibt DMLC ein .tar.bz2-Archiv aus, das alle DML-Quelldateien enthält, verpackt in einer Form, die eigenständig kompiliert werden kann. Dies ist nützlich, wenn ein DML-Problem in einer komplexen Build-Umgebung auftritt, und Sie das Problem isoliert reproduzieren möchten. Im erstellten Archiv befinden sich alle DML-Dateien im selben Verzeichnis (entweder auf oberster Ebene oder unter einer Reihe von Unterverzeichnissen mit dem Namen _), und relative Importe werden durch die Einbeziehung von symbolischen Links im Archiv behandelt. Unter Windows kann DMLC diese symbolischen Links manchmal nicht korrekt auflösen; aus diesem Grund wird empfohlen, das Archiv nur unter Linux zu extrahieren und zu kompilieren.

DMLC_GATHER_SIZE_STATISTICS

Wenn gesetzt, gibt DMLC eine Datei aus, die auf -size-stats.json endet, und Codegenerierungsstatistiken anzeigt, die nützlich sind, um die Größe des generierten Codes zu reduzieren und die Kompilierungsgeschwindigkeit zu erhöhen. Die Datei listet auf, wie viel C-Code für jede DML-Methode generiert wird. Die Ausgabe ist eine Liste von Tripeln [tot_size, location, num], wobei tot_size die Gesamtzahl der Bytes des aus einer Methodendeklaration generierten C-Codes ist, num angibt, wie oft C-Code aus dieser Deklaration generiert wurde (weil sie von einer Vorlage erweitert wurde), und location die Quellposition der Deklaration ist.

Ein Eintrag mit einem großen tot_size und einem großen num kann reduziert werden, indem die Methode als shared deklariert wird; dies sollte die Größe in etwa durch num teilen. Ein Eintrag mit großem tot_size mit num gleich 1 bedeutet normalerweise, dass die Methode von einem Konstrukt wie #foreach oder #select dominiert wird, und kann reduziert werden, indem der Schleifenkörper in eine separate Methode ausgelagert wird, oder indem die Schleife anderweitig in ein anderes Konstrukt wie foreach umgearbeitet wird.

Beachten Sie, dass die Statistik nur den direkt aus Methodendeklarationen generierten Code umfasst; die gesamte Codegröße umfasst viel mehr. Ein Megabyte Codegröße aus Methodendeklarationen trägt normalerweise mit einigen Sekunden Kompilierungszeit bei.

Tool herunterladen