QEMU działa na procesorach procesorach: emuluje procesory: dostępne dla s.o. hosta:

Podobne dokumenty
Q E M U.

Prezentacja emulatora QEMU Zajęcia SO

Wirtualizacje. Opracowali: Piotr Dąbrowiecki Jakub Gołębiowski Winicjusz Szyszka

U M L. System operacyjny Linux zagnieżdżony w zewnętrznym systemie operacyjnym (Linux)

Linux -- u mnie działa!

Systemy Operacyjne Wirtualizacja

WIRTUALIZACJA teoria i praktyka. Oskar Skibski, Piotr Sikora, Mateusz Kruszyński

Wirtualizacja. Piotr Sikora Tomasz Ziółkowski

VMware, QEMU, UML. oraz inne wirtualne maszyny. Piotr Findeisen Filip Grządkowski Piotr Kuśka Krzysztof Mroczek

Wirtualizacja. Metody, zastosowania, przykłady

Wirtualizacja. Maciej Pawlisz, Konrad Tomala, Paweł Łukasz

WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski. 12 listopada 2007 WIRTUALIZACJA. Kamil Frydel, Julia Romanowska, Maciej Sokołowski

Emulacja maszyny. Program udaje zupełnie inną architekturę. Musi przetłumaczyć instrukcje emulowane na instrukcje platformy, na której działa

System wspomagania zarządzania wirtualizacją

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Hosting WWW Bezpieczeństwo hostingu WWW. Dr Michał Tanaś (

Jądro systemu operacyjnego

VMware. Prezentacja na Systemy Operacyjne

Wirtualizacja w praktyce.

Monitor maszyn wirtualnych

Wirtualizacja. Przegla d wybranych technik. Magda Michalska Krzysztof Kulewski Andrzej Pacuk. Systemy operacyjne 2006

Konfiguracja i kompilacja jądra Linux. Based on Free Electrons

Zastosowanie emulatorów w rozbudowie systemów wbudowanych

Podstawowe zagadnienia

Przegląd dostępnych hypervisorów. Jakub Wojtasz IT Solutions Architect

Zadanie1. Wykorzystując serwis internetowy Wikipedii wyjaśnij następujące pojęcia: wirtualizacja, VirtualBox, Vmware, KVM, Virtual PC, Hyper-V.

Materiały pomocnicze do laboratorium z Architektury Komputerów II.

Konwersja maszyny fizycznej na wirtualną

Wirtualizacja. czyli trochę co innego niż rzeczy do tej pory omawiane

Prezentacja systemu RTLinux

Dział Dopuszczający Dostateczny Dobry Bardzo dobry Celujący

Działanie systemu operacyjnego

Skrócony przewodnik OPROGRAMOWANIE PC. MultiCon Emulator

Działanie systemu operacyjnego

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Działanie systemu operacyjnego

Skrócony przewodnik OPROGRAMOWANIE PC. MultiCon Emulator

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Systemy operacyjne II

SYSTEMY OPERACYJNE WYKŁAD 1 INTEGRACJA ZE SPRZĘTEM

CyberGuru Wirtualizacja na platformie Hyper-V w pigułce. Prezentuje: Kamil Frankowicz

Technologia informacyjna. Urządzenia techniki komputerowej

System komputerowy. System komputerowy

INSTRUKCJA I WSKAZÓWKI

Opis efektów kształcenia dla modułu zajęć

Programowanie Systemów Czasu Rzeczywistego

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Podstawy Informatyki Języki programowania c.d.

Linux KVM - wparcie dla wirtualizacji w kontekście serwerów ARM

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Wirtualizacja systemów

Podstawy programowania

SYSTEMY OPERACYJNE. kik.pcz.czest.pl/so. (C) KIK PCz Materiały pomocnicze 1 PROWADZI: PODSTAWOWA LITERATURA: ZAJĘCIA: STRONA

RDZEŃ x86 x86 rodzina architektur (modeli programowych) procesorów firmy Intel, należących do kategorii CISC, stosowana w komputerach PC,

Przepełnienie bufora. SQL Injection Załączenie zewnętrznego kodu XSS. Nabycie uprawnień innego użytkownika/klienta/administratora

Stronicowanie w systemie pamięci wirtualnej

X P.I.W.O. Portowanie Tizena na nowe architektury na przykładzie ARMv6. Maciej Wereski Samsung R&D Institute Poland. 17 Maj Poznań, Polska

Translacja wprowadzenie

Podstawy obsługi komputerów. Budowa komputera. Podstawowe pojęcia

Działanie systemu operacyjnego

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

6. Algorytmy ochrony przed zagłodzeniem dla systemów Linux i Windows NT.

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Baza danych Oracle 11g Express Edition

Mikroprocesory rodziny INTEL 80x86

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

BSD - alternatywa dla Linuksa

Systemy operacyjne. Paweł Pełczyński

Programowanie w języku C++ Grażyna Koba

Kernel Kompilacja jądra

Know your tools KVM. Dariusz Puchalak Dariusz_Puchalak < at > ProbosIT.pl

Materiały dodatkowe. Simulink Real-Time

Wirtualizacja. Co to właściwie jest? Jak działa? W jaki sposób jej używać? Systemy operacyjne 2007/08

Opis efektów kształcenia dla modułu zajęć

IdyllaOS. Prosty, alternatywny system operacyjny. Autor: Grzegorz Gliński. Kontakt:

WZÓR UMOWY. Zawarta w Białymstoku, w dniu.. pomiędzy:

Przegląd współczesnych systemów operacyjnych

System pamięci. Pamięć wirtualna

Licencjonowanie pytania i odpowiedzi

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

8-calowa cyfrowa ramka do zdjęć! Wbudowane 128 MB

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

System operacyjny System operacyjny

Przegląd technik wirtualizacji i separacji w nowoczesnych systemach rodziny UNIX

Konwersja maszyny fizycznej na wirtualną.

Wstęp do wirtualizacji

Wprowadzenie do obsługi systemów obliczeniowych PCSS

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Tworzenie plików w formacie DjVu z wykorzystaniem oprogramowania DocumentExpress Enterprise Edition

Szkolenie autoryzowane. MS Administracja i obsługa Windows 7. Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Przykładowe sprawozdanie. Jan Pustelnik

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Microsoft System Center Virtual Machine Manager 2012

Laboratorium - Instalacja Virtual PC

Czym jest wirtualizacja

Technologie informacyjne (2) Zdzisław Szyjewski

Transkrypt:

QEMU Stosunkowo szybki emulator procesora, korzystający z tzw. dynamicznej translacji i kilku innych ciekawych technik programistycznych i optymalizacyjnych. działa na procesorach procesorach: Intel x86, AMD64, IA-64, PowerPC, Alpha, SPARC 32 and 64, ARM, S/390, M68k emuluje procesory: Intel x86, AMD64, ARM, SPARC 32 and 64, PowerPC, MIPS dostępne dla s.o. hosta: Windows, Linux, OS X, FreeBSD, BeOS gość osiąga zwykle 10-20% prędkości hosta

Dwa tryby pracy emulacja pełnego systemu (włączając procesor i urządzenia peryferyjne) Może być używany do uruchamiania różnych systemów operacyjnych bez restartowania systemu bądź np. debugowania kodu systemowego emulacja trybu użytkownika (tylko, gdy Linux jest hostem) Potrafi uruchamiać procesy linuxowe skompilowane dla jednego procesora na innym procesorze. Może być użyty dla przeprowadzania crosskompilacji, cross-debugowania.

Zalety QEMU wsparcie dla wielu architektur można zadeklarować wielogigabajtowy wirtualny napęd (drive), a obraz dysku będzie dokładnie tak duży, jak wymaga tego aktualne użycie można trzymać zapis ( snapshot ) systemu gościa, a zmiany zapisywać zmiany do oddzielnego pliku obrazu. możliwość emulacji karty sieciowej wsparcie dla SMP (architektury wieloprocesorowej) narzędzia konsoli pozwalają w pełni kontrolować qemu wsparcie dla USB pełna obsługa wyjątków i przerwań

Wady QEMU niepełne wsparcie dla MS Windows nie wspiera mniej popularnych platform sprzętowych wymaga X11 i SDL (X11 - system okienkowy, obsługujący też urządzenia wejściowe, SDL - Simple DirectMedia Layer - biblioteka ułatwiająca pisanie gier i programów multimedialnych) nie do końca pełna obsługa rozkazów architektury x86

Dynamiczna translacja Technika poprawiania wydajności Dynamiczny translator, w trakcie wykonywania kodu, dokonuje konwersji instrukcji emulowanego procesora na zbiór instrukcji hosta Otrzymany kod binarny jest przechowywany w cache`u, tak, że może być używany wielokrotnie Korzyść w porównaniu z interpreterem jest taka, że instrukcje są sprowadzane i odkodowywane tylko raz Ciekawym ulepszeniem zastosowanym w QEMU jest łączenie kawałków kodu maszynowego generowanego offline przez kompilator C technika mikrooperacji

Technika mikrooperacji Instrukcje emulowanego procesora rozdzielane są na kilka prostszych instrukcji nazywanych mikrooperacjami. Każda z nich jest implementowana przez mały kawałek kodu w C. Ten niewielki kod źródłowy w C jest kompilowany przez GCC. Kod maszynowy, powstały po jego skompilowaniu, może juz być wielokrotnie używany do tłumaczenia w miejscu danej instrukcji. Osiągamy korzyści w wydajności i przenośności na inne platformy

Samomodyfikujący się kod W architekturze x86 aplikacje nie mają mechanizmu sygnalizacji, że kod jest modyfikowany. Podstawowy pomysł - ustawienie odpowiednich stron pamięci hosta na "tylko do odczytu" (mprotect()). Gdy podejmowana jest próba zapisu na tej stronie, podnoszony jest SEGV. QEMU rozpoznaje wtedy, że należy unieważnić cały przetłumaczony kod, składowany na tej stronie i znów umożliwić zapisywanie na niej. Wiemy też, który fragment kodu należy przetłumaczyć raz jeszcze. Poprawne i efektywne - dzięki utrzymywaniu listy przetłumaczonych bloków.

Zarządzanie pamięcią QEMU udostępnia dwa tryby: do symulacji MMU gościa używa jednostki zarządzania pamięcią gospodarza (używa mmap()). Działa tak długo, jak emulowany system operacyjny nie używa rejonu zarezerwowanego dla hosta. Działa szybko dość szybko, ale brak rozdzielenia między pamięcią hosta i gościa zagraża bezpieczeństwu danych. by móc uruchomić jakikolwiek system, QEMU może używać MMU, tworzonego przez oprogramowanie. W tym trybie tłumaczenie adresu wirtualnego na fizyczny dokonuje się przy każdym dostępie do pamięci. Działa wolniej, ale zapewnia separację przestrzeni adresowej hosta i gościa.

Acceleration Module Moduł kqemu (QEMU Accelerator) około pięciokrotnie przyspiesza pracę QEMU, zbliżając się tym samym do prędkości natywnej wykonywania. Jest to możliwe, dzięki temu że znaczna część kodu jest uruchamiana od razu na procesorze hosta. Emuluje się tylko instrukcje trybu jądra i trybu rzeczywistego. Zasada działania jest podobna jak u przedstawicieli wirtualizacji (Virtual PC, VMware) Na razie przeznaczony tylko dla nowszych wersji Linuxa i Windows 2000/XP

Uruchamianie tworzenie pustego wirtualnego dysku qemu-img.exe create -f qcow hda.img 3G instalowanie systemu qemu.exe -L. -cdrom "\\.\D:" -hda hda.img -m 256 -boot d qemu.exe -L. -cdrom my_os_install.iso -hda hda.img -m 256 -boot d uruchamianie akceleratora net start kqemu uruchamianie qemu.exe -L. -hda hda.img -m 256 -kernel-kqemu

Bibliografia QEMU, a Fast and Portable Dynamic Translator - http://www.usenix.org/publications/library/proceedings/usenix05/tech/free nix/full_papers/bellard/bellard_html/index.html QEMU Documentation - http://fabrice.bellard.free.fr/qemu/user-doc.html Wikipedia - http://en.wikipedia.org/wiki/qemu