Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
device-modeling-language — 가상 플랫폼을 위한 빠른 기능적 장치 모델을 작성하는 도메인 특화 언어입니다. DML을 Intel Simics 시뮬레이터에 맞춘 API 호출이 포함된 C로 컴파일하여 하드웨어 시뮬레이션 및 보안 테스트를 가능하게 합니다. | Kitploit
도구/GitHubGitHub/intel/device-modeling-language
Embedded Systems SecuritySecurity VirtualizationHardware SecurityHardware & IoT SecurityFirmware Analysis
GitHubintel/device-modeling-language

device-modeling-language

가상 플랫폼을 위한 빠른 기능적 장치 모델을 작성하는 도메인 특화 언어입니다. DML을 Intel Simics 시뮬레이터에 맞춘 API 호출이 포함된 C로 컴파일하여 하드웨어 시뮬레이션 및 보안 테스트를 가능하게 합니다.

저장소 보기
139521개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

장치 모델링 언어

Device Modeling Language (DML)는 가상 플랫폼을 위한 빠른 기능적 또는 트랜잭션 수준의 장치 모델을 작성하기 위한 도메인 특화 언어입니다. DML은 레지스터 뱅크, 레지스터, 비트 필드, 이벤트 포스팅, 모델 간 인터페이스, 로깅과 같은 기능적 장치 모델에 적합한 고수준 추상화를 제공합니다. DML 코드는 DML 컴파일러(DMLC)에 의해 컴파일되어 특정 시뮬레이터에 맞춤화된 API 호출이 포함된 C 코드를 생성합니다.

현재 컴파일러는 Intel® Simics® 시뮬레이터용 모델 구축을 지원하지만, 향후 다른 백엔드가 추가될 수 있습니다.

DMLC 빌드 및 테스트

DMLC를 빌드하려면 Simics 시뮬레이터 설치와 Simics 프로젝트 설정이 필요합니다.

Intel Simics 시뮬레이터 공개 릴리스 사용

아직 Simics 시뮬레이터 설치가 없거나 상업적 채널을 통해 Simics 시뮬레이터에 액세스할 수 없는 경우, Intel Simics 시뮬레이터 공개 릴리스를 설치하고 Simics 프로젝트를 생성하십시오(기본 설치 흐름에서 자동으로 수행됨).

Simics 프로젝트에서 DMLC 빌드

Simics 프로젝트에서 DML 저장소를 modules/dmlc 디렉토리로 체크아웃하십시오. 프로젝트 최상위에서 make dmlc(Windows에서는 bin\make dmlc)를 실행하십시오.

Simics 프로젝트에서 DMLC 테스트

DMLC와 함께 제공된 단위 테스트를 실행하려면 프로젝트 최상위에서 make test-dmlc 또는 bin/test-runner --suite modules/dmlc/test를 실행하십시오.

환경 변수

다음 환경 변수는 DMLC 개발 시 유용합니다. 로컬로 빌드된 DMLC를 정기적으로 사용하는 경우, .bashrc에 DMLC_DIR, T126_JOBS, DMLC_PATHSUBST, PY_SYMLINKS 변수를 설정하는 것을 고려하십시오. 나머지 변수는 필요할 때만 활성화하는 것이 좋습니다.

DMLC_DIR

DMLC를 빌드한 후, 로컬로 빌드된 컴파일러로 장치를 빌드하려면 이후 make 호출에서 DMLC_DIR을 <your-project>/<hosttype>/bin으로 설정해야 합니다. <hosttype>은 호스트 유형에 따라 linux64 또는 win64입니다.

T126_JOBS

설정되면 지정된 수의 테스트가 병렬로 실행됩니다.

DMLC_PATHSUBST

DMLC 빌드는 몇 가지 DML 라이브러리 파일(예: dml-builtins.dml)을 <hosttype>/bin에 복사합니다. 컴파일 오류가 발생하면 오류 메시지는 일반적으로 소스가 아닌 이 복사본을 가리킵니다. DMLC_PATHSUBST를 <hosttype>/bin/dml=modules/dmlc/lib로 설정하면 오류 메시지가 대신 소스 파일을 가리키도록 다시 작성됩니다. <hosttype>은 호스트 유형에 따라 linux64 또는 win64입니다.

PY_SYMLINKS

1로 설정하면 make dmlc가 Python 파일을 복사하는 대신 심볼릭 링크를 생성합니다. 이는 두 가지 효과가 있습니다. Python 역추적(traceback)이 저장소의 소스 파일로 연결되며, Python 파일을 편집한 후 make를 다시 실행할 필요가 없습니다.

DMLC_DEBUG

1로 설정하면 컴파일러의 예상치 못한 예외가 stderr로 출력됩니다. 기본값은 역추적을 dmlc-error.log 파일에 숨기는 것입니다.

DMLC_CC

단위 테스트에서 기본 컴파일러를 재정의합니다.

DMLC_PROFILE

설정되면 DMLC가 자체 프로파일링을 수행하고 프로파일을 .prof 파일에 씁니다.

DMLC_DUMP_INPUT_FILES

설정되면 DMLC는 모든 DML 소스 파일을 포함하는 .tar.bz2 아카이브를 내보내며, 독립적으로 컴파일할 수 있는 형태로 패키징됩니다. 이는 복잡한 빌드 환경에서 DML 문제가 발생하여 문제를 격리하여 재현하려는 경우 유용합니다. 생성된 아카이브에서 모든 DML 파일은 동일한 디렉토리(최상위 또는 _이라는 일련의 하위 디렉토리 아래)에 위치하며, 상대 가져오기를 처리하기 위해 아카이브에 심볼릭 링크도 포함됩니다. Windows에서는 DMLC가 이러한 심볼릭 링크를 올바르게 확인하지 못하는 경우가 있습니다. 이러한 이유로 아카이브는 Linux에서만 추출 및 컴파일하는 것이 좋습니다.

DMLC_GATHER_SIZE_STATISTICS

설정되면 DMLC는 -size-stats.json으로 끝나는 파일을 출력하며, 이 파일은 생성된 코드 크기를 줄이고 컴파일 속도를 높이는 데 유용한 코드 생성 통계를 보여줍니다. 이 파일은 각 DML 메서드에 대해 생성된 C 코드의 양을 나열합니다. 출력은 [tot_size, location, num] 트리플 목록입니다. 여기서 tot_size는 하나의 메서드 선언에서 생성된 C 코드의 총 바이트 수, num은 이 선언에서 C 코드가 생성된 횟수(템플릿에 의해 확장되었기 때문에), location은 선언의 소스 위치입니다.

tot_size가 크고 num이 큰 항목은 메서드를 shared로 선언하여 줄일 수 있습니다. 이렇게 하면 크기가 대략 num으로 나누어집니다. num이 1인 큰 tot_size 항목은 일반적으로 메서드가 #foreach 또는 #select와 같은 구문에 의해 지배된다는 것을 의미하며, 루프 본문을 별도의 메서드로 분리하거나 루프를 foreach와 같은 다른 구문으로 재작업하여 줄일 수 있습니다.

통계에는 메서드 선언에서 직접 생성된 코드만 포함됩니다. 총 코드 크기에는 훨씬 더 많은 것이 포함됩니다. 메서드 선언의 코드 크기 1메가바이트는 일반적으로 컴파일 시간에 몇 초를 기여합니다.

도구 다운로드