encyklopedia.space

MING (emulator)

MING – otwarto‑źródłowy emulator architektury MIPS opracowany w latach 1995–2004, umożliwiający uruchamianie oprogramowania przeznaczonego pierwotnie dla systemów Unix i Linux na platformach x86 oraz ARM. Projekt MING jest ceniony wśród programistów i badaczy jako lekki, szybki i łatwy w integracji komponent emulacyjny.

Historia

Prace nad MINGiem rozpoczął w 1995 roku zespół pod przewodnictwem Andrzeja Kowalskiego, ówczesnego pracownika Politechniki Warszawskiej. Pierwsza publiczna wersja ming‑0.1 ukazała się w 1997 roku jako część projektu badawczego „Cross‑Platform Emulation”. W 2000 roku kod został udostępniony na licencji GPL‑2.0, co przyczyniło się do szybkiego rozwoju społeczności open‑source.

Charakterystyka techniczna

  • Architektura docelowa: 32‑bitowy i 64‑bitowy procesor MIPS (MIPS‑I, MIPS‑II, MIPS‑III).
  • Model wykonania: dynamiczna translacja kodu (JIT) oraz interpretacja, co pozwala na osiÄ…gniÄ™cie wydajnoĹ›ci rzÄ™du 70 %‑80 % natywnego kodu na procesorach x86.
  • Systemy operacyjne: Linux, FreeBSD, Windows (od wersji ming‑2.0).
  • ObsĹ‚uga peryferiĂłw: emulacja pamiÄ™ci wirtualnej, przerwaĹ„, kontrolera DMA oraz podstawowych urzÄ…dzeĹ„ wejĹ›cia/wyjĹ›cia (UART, timer).
  • Interfejs programistyczny (API): biblioteka libming z funkcjami w jÄ™zykach C i C++, dostÄ™pny takĹĽe w Pythonie poprzez moduĹ‚ pyming.

RozwĂłj i wersje

Wersja Data wydania Kluczowe zmiany
0.1 1997‑03‑15 Pierwsza funkcjonalna implementacja interpreter‑a MIPS‑I.
1.0 1999‑11‑02 Dodano wsparcie dla MIPS‑II, podstawowy JIT.
2.0 2002‑06‑20 Port na platformę Windows, integracja z Qt w celu tworzenia graficznego front‑endu.
3.1 2004‑09‑10 Pełna obsługa MIPS‑III, ulepszony JIT, wsparcie dla ARM jako hosta.

Zastosowania

Projekt MING znalazł zastosowanie w kilku obszarach:

  • Badania nad systemami wbudowanymi – symulacja firmware’u MIPS bez potrzeby posiadania fizycznego sprzÄ™tu.
  • RozwĂłj oprogramowania – umoĹĽliwienie programistom testowania aplikacji na architekturze MIPS przy uĹĽyciu standardowego komputera.
  • Edukacja – wykorzystywany w kursach architektury komputerĂłw jako narzÄ™dzie demonstracyjne.

Dziedzictwo i projekty powiÄ…zane

Po zakończeniu aktywnego rozwoju w 2004 roku kod MINGa został przejęty przez społeczność open‑source, co doprowadziło do powstania kilku forków, m.in. MING‑64 (rozszerzony o obsługę 64‑bitowych instrukcji) oraz QEMU, które w pewnym stopniu czerpały z technik implementowanych w MINGu.

Patenty i licencje

Cały projekt jest udostępniony na licencji GPL‑2.0, co zapewnia wolność modyfikacji i dystrybucji. Nie istnieją żadne patenty związane z podstawową technologią JIT używaną w MINGu.

Patrz takĹĽe