1 Praca z maszyną wirtualną qemu/kvm



Podobne dokumenty
1 Zapoznanie się ze środowiskiem Xenomai.

Instalacja i konfiguracja serwera telnet.

Instalacja i konfiguracja serwera SSH.

Praca zdalna z poziomu systemu Linux

Skrócony przewodnik OPROGRAMOWANIE PC. MultiCon Emulator

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Uruchomienie Raspberry Pi

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

IBM SPSS Statistics dla systemu Linux Instrukcje instalacji (licencja sieciowa)

Kopiowanie plików. 1. Z sieci wewnętrznej PK. System Windows

Ćwiczenie 6. Wiadomości ogólne.

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja wielokrotna)

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Instalacja programu Warsztat 3 w sieci

Dodatki. Dodatek A Octave. Język maszyn

Praca w sieci zagadnienia zaawansowane

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

PORADNIK KORZYSTANIA Z SERWERA FTP ftp.architekturaibiznes.com.pl

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Korzystanie z edytora zasad grupy do zarządzania zasadami komputera lokalnego w systemie Windows XP

T: Zabezpieczenie dostępu do komputera.

Zadanie1: Odszukaj w Wolnej Encyklopedii Wikipedii informacje na temat NAT (ang. Network Address Translation).

Instalacja Wirtualnego Serwera Egzaminacyjnego

Konfiguracja oprogramowania w systemach MS Windows dla kont z ograniczonymi uprawnieniami

UNIFON podręcznik użytkownika

Memeo Instant Backup Podręcznik Szybkiego Startu

Usługi sieciowe systemu Linux

Protokół HTTP (2) I) Wprowadzenie. II) Użyte narzędzia: III) Kolejność działań

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu ftp.

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Rys. 1. Widok uruchomienia polecenia apt-get install build-essential. Rys. 2. Widok uruchomienia polecenia apt-get install apache2

Spis treści. Rozdział 3. Podstawowe operacje na plikach...49 System plików Konsola Zapisanie rezultatu do pliku... 50

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

Wstęp 5 Rozdział 1. SUSE od ręki 13

11. Rozwiązywanie problemów

Tworzenie maszyny wirtualnej

Synchronizator plików (SSC) - dokumentacja

Przekierowanie portów w routerze TP-LINK na przykładzie kamery Kenik. Po co wykonujemy przekierowanie portów? Spójrzmy na rysunek

Przekierowanie portów w routerze TP-LINK na przykładzie kamery Kenik. Po co wykonujemy przekierowanie portów? Spójrzmy na rysunek poniżej:

IBM SPSS Statistics Wersja 22. Linux - Instrukcja instalacji (licencja autoryzowanego użytkownika)

Definiowanie drukarek w programie ZAFIR

Zespół Szkół Technicznych w Suwałkach. Pracownia Systemów Komputerowych. Ćwiczenie Nr 25 ARCHITEKTURA SYSTEMU LINUX. Opracował Sławomir Zieliński

SystimPlus. Dokumentacja (FAQ) dla wersji: v

Tak wygląda taki kabel

Instrukcja instalacji BMW INPA do interfejsu BMW USB VIAKEN

Tomasz Greszata - Koszalin

VinCent Administrator

System kontroli dostępu ACCO NET Instrukcja instalacji

Ewidencja Wyposażenia PL+

Jak używać funkcji prostego udostępniania plików do udostępniania plików w systemie Windows XP

Skrócony przewodnik OPROGRAMOWANIE PC. MultiCon Emulator

Instrukcja instalacji Control Expert 3.0

Konfiguracja klientów SSH - PuTTY i WinSCP

4. Podstawowa konfiguracja

IBM SPSS Statistics dla systemu Windows Instrukcje instalacji (licencja sieciowa)

System operacyjny UNIX Ćwiczenie 1. Podstawowe polecenia systemu Unix

Windows Server 2008 Standard Str. 1 Ćwiczenia. Opr. JK. I. Instalowanie serwera FTP w Windows Server 2008 (zrzuty ekranowe z maszyny wirtualnej)

Instrukcje dotyczące systemu Windows w przypadku drukarki podłączonej lokalnie

CZĘŚĆ A PIERWSZE KROKI Z KOMPUTEREM

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2018 CZĘŚĆ PRAKTYCZNA

Windows Server 2012 Active Directory

Pracownia internetowa w każdej szkole (edycja jesień 2005)

Brinet sp. z o.o. wyłączny przedstawiciel DrayTek w Polsce

INTERFEJS DIAGNOSTYCZNY BMW INPA / ADS/ GT1/ DIS / EDIABAS INSTRUKCJA OBSŁUGI Strona 1

IBM SPSS Statistics dla systemu Windows Instrukcje dotyczące instalacji (licencja sieciowa)

Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami

Najczęściej występujące problemy z instalacją i konfiguracją i ich rozwiązania.

Szybki start instalacji SUSE Linux Enterprise Server 11 SP1

Pracownia internetowa w każdej szkole (edycja jesień 2005)

Instrukcja postępowania w procesie aktualizacji systemu UPLOOK / STATLOOK z wersji 3.0 do wersji 3.2

Instrukcja konfigurowania sieci WiFi w Akademii Leona Koźmińskiego dla systemu Windows XP

IBM SPSS Statistics Version 22. Windows - Instrukcja instalacji (licencja wielokrotna)

Szkolenie dla nauczycieli SP10 w DG Operacje na plikach i folderach, obsługa edytora tekstu ABC. komputera dla nauczyciela. Materiały pomocnicze

Państwowa Wyższa Szkoła Zawodowa w Gorzowie Wlkp. Laboratorium architektury komputerów

5.6.2 Laboratorium: Punkty przywracania

Instalacja programu S4H

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

IBM SPSS Statistics dla systemu Windows Instrukcje dotyczące instalacji (jeden użytkownik)

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

Laboratorium - Użycie narzędzia Przywracanie systemu w systemie Windows 7

Instrukcja instalacji i obsługi systemu AR4vision (wersja 1.0.0)

Rozdział II. Praca z systemem operacyjnym

1. Opis. 2. Wymagania sprzętowe:

Wykorzystanie pamięci USB jako serwera Samba

Pomoc: konfiguracja PPPoE

Podstawy konfiguracji środowiska graficznego. Umieszczamy kursor na pustym obszarze na pulpicie i naciskamy prawy guzik:

Biuletyn techniczny. CDN OPT!MA 12.0 Drukarki fiskalne w usługach terminalowych. Copyright 2007 COMARCH SA

Oprogramowanie OpenVPN jest oprogramowaniem darmowym, które można pobrać ze strony:

Sieci i systemy operacyjne I Ćwiczenie 1. Podstawowe polecenia systemu Unix

Konfiguracja Połączenia

Tomasz Greszata - Koszalin

Instrukcja krok po kroku Konfiguracja Windows. Strona 2 z 14

Moduł Replikacji. Instrukcja użytkownika

Brinet sp. z o.o. wyłączny przedstawiciel DrayTek w Polsce

Sprawdzanie połączenia sieciowego

Następnie kliknąć prawym klawiszem myszy na Połączenie sieci bezprzewodowej i wybrać Wyłącz.

KONFIGURACJA USŁUGI ZSIMED NA SERWERZE ZDALNYM

Qmail radość listonosza. Autorzy: Bartosz Krupowski, Marcin Landoch IVFDS

IBM SPSS Statistics Wersja 24. Windows Instrukcja instalacji (licencja wielokrotna) IBM

Transkrypt:

Poniższy zestaw zadań został opracowany w celu poznania podstawowych mechanizmów czasu rzeczywistego dostępnych w systemie Xenomai. Obejmuje on zapoznanie się ze środowiskiem programistycznym, obsługą zegara i zadań RT, mechanizmami synchronizacji i komunikacji, a także korzystaniem z przerwań. Cały zestaw poprzedzony jest ćwiczeniem wstępnym wprowadzającym do maszyn wirtualnych Qemu/KVM i infrastruktury laboratorium 07/C3. Oryginalne opracowanie: Krzysztof Maziarz, 2011 Aktualizacja: Witold Paluszyński, 2012 1 Praca z maszyną wirtualną qemu/kvm 1.1 Uwagi do pracy w laboratorium Praca w laboratorium odbywa się na terminalach łączących się z serwerem panamint. Żeby uzyskać dostęp do maszyny wirtualnej należy się połączyć (z obsługą środowiska graficznego): $ ssh -X panamint 1.2 Praca w trybie okienkowym W celu umożliwienia bezpiecznego programowania i testowania w środowisku Xenomai został stworzony obraz dysku dla maszyny wirtualnej QEMU (KVM). Zgodnie z poleceniami prowadzącego, przekopiuj podany plik obrazu dysku we wskazane miejsce, z nazwą identyfikującą Ciebie jako właściciela maszyny wirtualnej. Aby uruchomić maszynę w trybie okienkowym z posiadanego obrazu dysku z zainstalowanym systemem, zwykle wystarczy wykonać: $ kvm -hda xenomai.qcow2 Jednak czasami, ze względu na niezgodność obsługi klawiatury przez systemy sieciowe, przez które łączymy się z maszyną gospodarzem (panamintem), do polecenia uruchomienia kvm często trzeba dodać opcję -k en-us. Nastąpi uruchomienie na maszynie wirtualnej systemu Linux Xenomai, do którego można zalogować się jako domyślny użytkownik: user: user password: pass 1

Ponieważ jest to Twoja własna maszyna, zmień hasło użytkownika user na swoje indywidualne, i zapamiętaj to hasło do dalszego korzystania z maszyny. Poleceniem startx można uruchomić środowisko graficzne X Window i menedżer okien Fluxbox. Aby aktywować obsługę myszy w emulatorze wystarczy kliknąć w jego okno. Kombinacja klawiszy <ctrl> + <alt> przywraca mysz gospodarzowi. Wypróbuj te mechanizmy. Na maszynie wirtualnej zainstalowane są domyślnie edytory vim, emacs i nano. Uruchom i przećwicz wybrany edytor, tak aby swobodnie posługiwać się nim w trakcie wykonywania dalszych ćwiczeń. 1.3 Kopiowanie plików z i do maszyny wirtualnej Program scp służy do kopiowania plików, jednak w domyślnej konfiguracji może być użyte jedynie z wewnątrz maszyny (pliki mogą być kopiowane w obu kierunkach). 1.4 Opcje zaawansowane port szeregowy Warto jednak dodać kilka opcji, które mogą okazać się przydatne w pracy z systemem. Jedną z takich opcji jest przekierowanie wyjścia wirtualnego portu szeregowego. W praktyce oznacza to, że w przypadku zawieszenia systemu (Kernel Panic) będzie można odczytać ostatnie logi systemu, czyli najprawdopodobniej poznać przyczynę awarii. $ kvm -hda xenomai.qcow2 -serial /dev/stdout To spowoduje bezpośrednie przekierowanie na terminal, można również wysłać logi do pliku -serial file:log.txt. 1.5 Przekierowanie portów sieciowych Kolejną istotną sprawą jest komunikacja z gospodarzem, czyli komputerem na którym maszyna działa. Najwygodniej jest to zrobić poprzez przekierowanie pakietów sieciowych i połączenie np. poprzez ssh. W tym celu należy uruchomić maszynę w podany sposób: $ kvm -hda xenomai.qcow2 -redir tcp:5022::22 W ten sposób uruchomiona maszyna wirtualna tworzy port sieciowy w systemie gospodarza, do którego podłączony jest serwer połączeń ssh w systemie gościa. Pozwala ol łączyć się z systemem na maszynie za pomocą polecenia: 2

$ ssh user@localhost -p 5022 W podobny sposób można kopiować pliki poleceniem scp do i z systemu gościa, ale tym razem inicjując transfery z maszyny gospodarza. Uwaga: numer portu 5022 jest przykładem indywidualnie wybranego numeru portu. Należy wybrać jakiś własny numer portu, różny od numerów użytych przez innych użytkowników systemu gospodarza. Gdyby okazało się, że ktoś inny w tym samym momencie zajął już nasz wybrany port sieciowy na panamincie, to polecenie kvm z takim przekierowaniem nie uda się, i otrzymamy komunikat o błędzie. Należy wtedy wybrać inny numer przekierowania portu sieciowego. Przekierowany numer portu pozostaje w użyciu i jest zajęty przez cały czas uruchomienia maszyny wirtualnej. Przy kolejnym uruchomieniu maszyny można wybrać inny numer. 1.6 Uruchamianie w trybie demona kvm -k en-us -net nic -net user -vga cirrus -hda xenomai.qcow2 \ -redir tcp:5022::22 -nographic -daemonize 1.7 Opcje zaawansowane montowanie systemu plików Wygodnie jest również zamontować system plików z maszyny gościa, co umożliwi edycję źródeł programów na maszynie gospodarza. Poniższe polecenie zamontuje katalog /home/user/ w utworzonym katalogu np. ~/xenomaifs/. Należy jednak pamiętać, że kompilacja musi się odbyć bezpośrednio na maszynie z Xenomai. $ sshfs user@localhost:/home/user/ ~/xenomaifs/ -p 5022::22 Żeby uzyskać dostęp do połączenia z internetem na maszynie gościa należy dodać opcje -net nic -net user. Ostatecznie polecenie uruchomienia emulatora z opisanymi opcjami wygląda następująco: $ kvm -net nic -net user -serial /dev/stdout -redir tcp:5022::22 \ -hda xenomai.qcow2 3

1.8 Zadanie domowe Z zewnętrznego komputera połącz się z panamintem przez ssh. Nie korzystaj z systemu okienkowego (nie używaj opcji -X ani -Y programu ssh, a zamiast nich użyj opcji -x (małe x)). W systemie Windows konieczne będzie skorzystanie z programu takiego jak putty. Aby wyłączyć połączenie systemu okienkowego w systemie Windows wystarczy nieuruchamiać żadnego serwera ekranowego (jeśli nie wiesz co to jest to najpewniej nie masz go uruchomionego). Można również w ustawieniach programu putty znaleźć ustawienia tuneli, i wyłączyć (dezaktywować) tunel X Window (port 6000). W tym momencie praca na zdalnym komputerze będzie możliwa tylko w trybie tekstowym. Jest to ustawienie konieczne tylko na potrzeby tego zadania. W późniejszych zadaniach możesz włączać lub wyłączać system okienkowy, w zależności od potrzeby. Jednak pracując zdalnie, często praca w trybie okienkowym jest niemożliwa ze względu na jakość połączenia internetowego. Dlatego czasami konieczne jest łączenie się i praca w trybie tekstowym Po połączeniu się z panamintem, uruchom swoją maszynę wirtualną w trybie demona, z przekierowaniem portu ssh (22), używając wcześniej przedstawionych poleceń z przekierowaniem portów sieciowych. Następnie wejdź do maszyny i sprawdź, że możesz na niej pracować, korzystając wyłącznie z programów tekstowych (input/output). Rozłącz się z maszyną wirtualną nie wyłączając jej, rozłącz się z panamintem, a następnie połącz się z nim ponownie, i ponownie wejdź do uruchomionej wcześniej maszyny, sprawdzając, że nadal możesz na niej pracować. Ponownie przećwicz kopiowanie plików w obie strony (z maszyny na panaminta i w drugą stronę), i na dwa sposoby, najpierw inicjując kopiowanie z wewnątrz maszyny, a następnie inicjując kopiowanie z panaminta korzystając z wybranego przekierowanego numeru portu. 4

2 Zapoznanie się ze środowiskiem Xenomai. Wszystkie ćwiczenia oraz programy opracowane zostały w Xenomai w wersji 2.5.6. Dlatego też odwołania do dokumentacji dotyczą dokumentu pod adresem: http://www.xenomai.org/documentation/xenomai-2.5/html/api/ Jest to oficjalna dokumentacja projektu, która stanowi podstawowy materiał do nauki. Dodatkowo używany będzie tylko interfejs natywny (Native Xenomai API). Aby uzyskać do niego dostęp należy po wejściu na stronę dokumentacji wybrać kolejno Modules/ i Native Xenomai API/ z menu znajdującego się po lewej stronie. Inne źródła informacji na temat Xenomai podane są poniżej: http://www.xenomai.org/documentation/xenomai-2.5/pdf/native-api.pdf http://git.xenomai.org/?p=xenomai-2.5.git;a=tree;f=include/native Dokumentacja dostępna jest również lokalnie w katalogu: /usr/xenomai/share/doc/xenomai/ Źródła (pliki nagłówkowe) znajdują się natomiast w katalogu: /usr/xenomai/include/native/ W celu sprawdzenia poprawności działania systemu i jego komponentów Xenomai dostarcza zbiór kilku programów konfiguracyjnych oraz testowych. Aby upewnić się co do wersji zainstalowanego systemu należy wykonać polecenie: $ xeno-config --version 2.5.6 Program ten najbardziej jest jednak przydatny na etapie kompilacji własnych programów. Pamięta prawidłowe ścieżki do bibliotek, plików nagłówkowych, oraz niezbędne flagi. Dodatkowo przechowuje również nazwę zalecanego kompilatora. Środowisko Xenomai oferuje szereg interfejsów programistycznych, z których jeden należy wybrać i wskazać w czasie kompilacji. Wszystkie prezentowane tutaj ćwiczenia i programy zostały wykonane przy użyciu interfejsu native. Flagi CFLAGS i LDFLAGS trzeba sparametryzować nazwą interfejsu, którego chcemy użyć. Polecenie wypisujące flagi dla kompilatora i linkera: $ /usr/xenomai/bin/xeno-config --skin=native --cflags -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT -Wall -pipe -D XENO $ /usr/xenomai/bin/xeno-config --skin=native --ldflags -lnative -L/usr/xenomai/lib -lxenomai -lpthread 5

Informacje o systemie, jego zasobach, wątkach oraz wszystkich obiektach utworzonych przez Xenomai znajdują się w postaci plików i katalogów w systemie plików /proc, a dokładnie w /proc/xenomai/. Pliki sched i stat zawierają informacje o uruchomionych procesach RT. Wpisując polecenie cat sched można zauważyć, że uruchomiony jest jeden proces o nazwie ROOT/0 o priorytecie -1. Jest to Linux. Wydając polecenie cat stat wyświetlone zostaną dodatkowe informacje o nim, takie jak zużycie procesora. Uruchamiając teraz jeden z programów testowych Xenomai można zauważyć zmiany w plikach w /proc/xenomai/ spowodowane aktywnością systemu. Program switchtest służy do testowania zmian kontekstu wykonywanych zadań. W pierwszym terminalu należy wpisać: $ /usr/xenomai/bin/switchtest -s50 rtup rtup Po wydaniu tego polecenia naturalne będzie zauważalne spowolnienie reakcji systemu. Spowodowane jest to zamierzonym dodatkowym obciążeniem dodanym parametrem -s50. W drugim terminalu można sprawdzić zawartość plików sched i stat. Jak widać dodane zostały 3 nowe wątki, a proces ROOT/0 nie stanowi już 99czasu procesora. Polecenie $ dmesg wyświetli informacje o wszystkich utworzonych i usuniętych obiektach. W przypadku błędów pojawią się tam również ich kody. Natomiast kody błędów zwracanych przez funkcje natywnego API można rozkodować na podstawie plików: /usr/include/asm-generic/errno-base.h /usr/include/asm-generic/errno.h Kompilacja i uruchomienie programu. Zapoznaj się z plikiem src/ex1/ex1_main.c. W pliku znajdują się komentarze opisujące wszystkie wykonywane instrukcje. Następnie skompiluj go i uruchom według podanych niżej poleceń: $ export XCFG=/usr/xenomai/bin/xeno-config $ export CFLAGS= $XCFG --skin=native --cflags $ export LDFLAGS= $XCFG --skin=native --ldflags $ gcc $CFLAGS $LDFLAGS -lrtdk ex0_main.c -o main $./main Program zawiera umyślnie umieszczoną instrukcję, która powoduje niepożądane opóźnienia - printf. Spowodowane to jest znajdującymi się w niej wywołaniami systemowymi, które prowadzą do przełączenia trybu wykonywania. Ten skok oznacza, że Xenomai nadaje Linuksowi najwyższy 6

priorytet i wykonuje jego procesy, po czym wraca do normalnego trybu. Program po uruchomieniu wyświetla 3 informacje: nazwę zadania, liczbę przełączeń trybu, oraz czasy wykonywania zadania. Jak widać licznik przełączeń wskazuje na 1 z powodu znajdującego się printf. Uruchom program kilka razy i zwróć uwagę na czas wykonywania. Następnie usuń (zakomentuj) printf i uruchom program ponownie kilka razy. Można zauważyć, że czasy wykonywania wyraźnie się zmniejszyły. Korzystając z dokumentacji (źródła podane na początku) sprawdź jakie jeszcze informacje można odczytać z RT_TASK_INFO oraz wypisz je (Task management services / rt_task_inquire). 7