Kategorie
Materiały
Linki zewnętrzne
Autor: Tomasz Jaworski, IIS (tjaworski@iis.p.lodz.pl)
Wersja dokumentu: 2. Poprawki: Artur Mokrosiński, Szymon Skura.
Poniższy dokument opisuje instalację skonfigurowanego już środowiska programisty dla Studentów pierwszego roku Informatyki Politechniki Łódzkiej. Środowisko to posiada wszystkie niezbędne narzędzia potrzebne z punktu widzenia nauki programowania w języku C oraz spełnienia wymogów zaliczenia kursów:
Skonfigurowane narzędzia pozwolą skupić się Studentowi na najistotniejszych problemach, związanych z samym językiem oraz algorytmiką a pominąć różnice oraz problemy z mnogością implementacji języka C w różnych kompilatorach. Podstawą konfiguracji jest pełna zgodność środowiska pracy Studenta z systemem testów maszynowych Mrówka, w którym to każdy Student zobowiązany jest testować swoje programy.
Uwaga! Przygotowane środowisko to Debian 9.3.0 w wersji x86 (32 bity) podczas gdy Mrówka wykorzystuje Debiana 9.3.0 w wersji x64 (64 bity). Jest to jedyna różnica między rzeczywistym systemem testującym a środowiskiem roboczym. Należy o tym pamiętać, gdyż różnica ta wpływa na między innymi na długość wskaźnika, niektórych typów liczbowych oraz sposób umieszczania pól w strukturach.
Platforma | sizeof(long int) | sizeof(void*) |
---|---|---|
x86 (32 bity) | 4 | 4 |
x64 (64 bity) | 8 | 8 |
Wersja x64 w przygotowaniu…
Wersję instalacyjną środowiska Oracle VirtualBox należy pobrać z oficjalnej strony, dostępnej pod adresem https://www.virtualbox.org/wiki/Downloads. Dostępna jest ona w sekcji VirtualBox X.Y.Z platform packages. W zależności od posiadanej platformy hosta (aktualnie zainstalowanego systemu) należy wybrać odpowiednią wersję programu. Dalsza cześć dokumentu zakłada system Windows jako system hostujący.
Po zakończeniu instalacji (głównie poprzez klikanie przycisku Next) należy uruchomić VirtualBox.
Po wykonaniu nowej instalacji należy doinstalować paczkę rozszerzeń Extension Pack. Rozszerzenia te pozwalają na istotne przyspieszenie systemu gościa (pracującego w symulowanej maszynie środowiska VirtualBox). Dostępna jest ona pod adresem https://www.virtualbox.org/wiki/Downloads, w sekcji VirtualBox X.Y.Z Oracle VM VirtualBox Extension Pack. Pobrany plik można uruchomić jak zwykły program, z poziomu Exploratora Windows lub bezpośrednio z programu Virtual Box, za pomocą polecenia File → Preferences → Extensions.
Należy kliknąć Install oraz zaakceptować warunki licencji.
Zostaniemy zapytani o możliwość aktualizacji paczki rozszerzeń Extension Pack. Należy się zgodzić, klikając Download.
Całą pracę z pobieraniem powinien wykonać sam program. Użytkownik musi jedynie kliknąć Download oraz Install.
Następnie instalator wyświetli wersję obu paczek rozszerzeń i poprosi o akceptację:
Należy kliknąć Upgrade oraz zaakceptować warunki licencji.
Środowisko, w postaci zainstalowanego i skonfigurowanego systemu Debian 9.3, dostępne jest pod adresem http://pp.iis.p.lodz.pl/mrowkojad/Mrowka, Debian x86, CodeLite.ova. Plik ten należy pobrać. Plik ten waży ok. 2.5GB.
Wersja x64: http://pp.iis.p.lodz.pl/mrowkojad/Dante, Debian x64, CodeLite.ova.
Po zakończeniu pobrania plik należy zaimportować do VirtualBoxa, za pomocą polecenia File → Import Appliance.
Po wybraniu pliku, należy kliknąć Next. W następnym oknie możliwe jest ustawienie podstawowych parametrów wirtualnej maszyny, np. liczbę przydzielonych rdzeni macierzystego CPU czy wielkość pamięci.
Po pomyślnym imporcie pobranego pliku, w środowisku VirtualBox dostępna będzie nowa wirtualna maszyna.
Przed przystąpieniem do pracy należy skonfigurować maszynę, aby pasowała do posiadanego środowiska hosta.
Uwaga! Trzymaj swoje dane/programy/materiały w katalogu współdzielonym. W przypadku aktualizacji maszyny wirtualnej cała jej zawartość jestlikwidowana
.
Pierwszym krokiem jest ustawienie współdzielonego folderu, widzianego zarówno przez maszynę hosta jak i maszynę gościa. W tym folderze będzie można trzymać pisane projekty, programy oraz wszystkie elementy, które powinny być dostępne w obu systemach operacyjnych.
Wybierz polecenie Machine → Settings a następnie opcję Shared Folders.
Po dwukrotnym kliknięciu na wpis Documents należy ustawić wybraną ścieżkę. Domyślna wartość to C:\Users\Tomek\VirtualBox VMs, która nie istnieje na Twoim komputerze (chyba, że masz taką samą nazwę użytkownika). Dla przykładu, może to być np. D:\studia\programowanie_w_C. Zawartość tego katalogu będzie widoczna w systemie gościa, w katalogu /home/student/student. Zmianę należy zatwierdzić, klikając OK.
System operacyjny gościa można uruchomić w pełnym ekranie tak, aby całkowicie przesłaniał elementu pulpitu systemu hosta. W takim przypadku powrót do systemu hosta możliwy jest jedynie poprzez: * wyłączenie wirtualnej maszyny. * użycie skrótu klawiatury, przełączającego pełny ekran do okna.
Skrót ten można ustawić za pomocą polecenia File → Preferences → Input. Następnie należy wybrać zakładkę Virtual Machine.
W polu Host Key Combination należy wybrać klawisz modyfikatora, który będzie interpretowany przez przechwytywany przez maszynę wirtualną (nie będzie przekazywany do systemu gościa). Ja preferuję Scroll Lock (i takie jest domyślne ustawienie maszyny), jednak niektóre laptopy nie mają takiego klawisza. Należy wybrać taki klawisz, którego się praktycznie nie używa. Wprowadzone zmiany należy zatwierdzić, klikając OK.
Po wprowadzeniu wszystkich zmian można uruchomić wirtualną maszynę, klikając na ikonę Start. Następnie trzeba poczekać na start systemu operacyjnego gościa.
Po pomyślnym uruchomieniu powinniśmy zobaczyć poniższy widok - okno logowania Debiana.
Zainstalowany system posiada dwa konta:
pp
student
Po zalogowaniu się do konta student możemy zacząć pracować w nowym systemie.
W ramach wirtualnej maszyny dostępne są preinstalowane oraz skonfigurowane:
Do pisania kodu należy skorzystać ze środowiska CodeLite. Po jego uruchomieniu należy utworzyć nową przestrzeń roboczą (Workspace). Jest to odpowiednik np. Rozwiązania (Solution) ze środowiska Visual Studio. Jest to operacja, która należy wykonać jednokrotnie, po pierwszym uruchomieniu środowiska.
Praktycznie wszystkie środowiska programistyczne nie pozwalają na kompilację pojedynczych plików - kompilują wyłącznie całe projekty. Oczywiście, w skład projektu może wchodzić jeden plik. Jednak projekt posiada również informacje o parametrach kompilatora, konsolidatora oraz platformy docelowej - informacje niezbędne do poprawnej kompilacji. W przypadku tej maszyny wirtualnej CodeLite został skonfigurowany tak, aby jak najlepiej odwzorowywać środowisko uruchomieniowe systemu HW. Szczególnie tyczy się to parametrów kompilatora/konsolidatora - te są identyczne.
Zatem, aby praca teraz i później przebiegała bez problemów należy przyjąć, że jedno zadanie = jeden projekt.
Aby utworzyć nowy projekt, wykonujemy:
Po utworzeniu projektu możemy rozwinąć jego listę plików do takiej formy: Plik main.c jest naszym plikiem roboczym w ramach projektu (zadania) 21.1.
Uwaga! W przypadku wielu projektów CodeLite musi mieć wskazany aktywny projekt (ten, który będzie kompilowany i uruchamiany). Status ten przedstawiany jest przez środowisko jako pogrubienie i kursywa nazwy projektu: Aktywny projekt można zmienić, klikając dwukrotnie na innym.
Po utworzeniu przestrzeni roboczej, utworzeniu projektu oraz otworzeniu pliku main.c możemy przystąpić do pisania kodu. Poniżej przedstawiono domyślną zawartość pliku głównego.
Po napisaniu kodu można go uruchomić. Do tego celu służą poniższe przyciski w pasku narzędzi:
Możliwy problem: Komunikat Clock skew detected w oknie Build → patrz koniec dokumentu.
Od tej chwili można swobodnie pracować nad kodem - powodzenia!
W tej sekcji będę umieszczał rozwiązania wszystkich problemów technicznych, na jakie napotkacie podczas pracy z maszyną wirtualną. Jeśli problem nie jest opisany a występuję - proszę się ze mną skontaktować (tjaworski@iis.p.lodz.pl).
Błąd wynika z konfiguracji katalogu /home/student/Documents. Pliki w nim zapisywane są z czasem modyfikacji systemu hostującego a nie systemu gościa. Ze względu na naturę symulacji Virtual Box, czas modyfikacji pliku może być „nieco w przyszłości”. Należy zmienić sposób informowania systemu gościa o czasie systemu hostującego. W tym celu należy :
Chwilę po starcie system Linux zatrzymuje się ze zbliżonym komunikatem:
Możliwe scenariusze: