Sală de laborator

Sistemul de operare utilizat pentru laboratorul de SO2 este Linux, distribuția Debian 7.0 (Wheezy). Configurația software în Linux este protejată printr-un sistem de freeze; la repornirea sistemului, orice actualizări sunt modificate.

Sistemele din laborator au configurate două mașini virtuale (o mașină virtuală Linux și o mașină virtuală Windows) care vor fi utilizate pe parcursul orelor de laborator.

Sistemul de freeze permite studenților să efectueze orice tip de modificări asupra configurației software (inclusiv configurări greșite) și asigură refacerea configurației inițiale în momentul repornirii sistemului. Astfel, în laborator, fiecare student beneficiază de condiții identice și, în același timp, sistemele sunt protejate de erori care le-ar putea face neutilizabile.

Reguli

  • La terminarea activității în laborator, obligatoriu fiecare student va da restart sau shut down (dacă nu urmează altă oră de laborator în acea sală) la mașina gazdă.
  • Monitorul nu trebuie închis; va intra automat în modul standby.

Mod de lucru

Exerciții Linux

Pentru rezolvarea exercițiilor de Linux, sunt posibile două moduri de lucru:

  • Editare surse prin SSH (folosind vim, emacs sau alt editor text-based); compilare prin SSH
  • Se pornește mașina virtuală de Linux.
  • Se deschide o conexiune SSH cu mașina virtuală, executând într-un terminal comanda: ssh root@spook.local
    (sau forma echivalentă: ssh -l root spook.local).
  • Se descarcă scheletul laboratorului, executând într-un terminal comanda: get-lab XX (se înlocuiește XX cu numărul laboratorului curent). Scheletul va fi descărcat și extras în directorul curent.
  • Se poate folosi un tab suplimentar în terminal pentru compilarea surselor. Se apasă Ctrl+Shift+T în terminal pentru a deschide un tab nou și se realizează înca o conexiune SSH în acest tab.
  • Se deschide Netconsole Terminal (icon-ul este pe Desktop) pentru a primi mesajele trimise de kernelul mașinii virtuale.

Editare surse local (folosind un editor vizual cum ar fi gedit sau gVim); compilare prin SSH

  • Se pornește mașina virtuală de Linux.
  • Se montează directorul /home/student de pe mașina virtuală în directorul /home/student/spook-share/ al mașinii gazdă, folosind Mount spook-share (icon-ul este pe Desktop; dupa rularea scriptului se confirmă montarea apăsând OK, apoi se așteaptă mesajul de succes sau de eroare; nu se va rula scriptul a doua oară inainte de a primi acele mesaje); alternativ, se poate executa într-un terminal comanda mount-spook-share sau comanda de montare manuală (mount /home/student/spook-share).
  • Se verifică montarea corectă a directorului: ls /home/student/spook-share/ (ar trebui să se vada un fișier hello.txt; prezența unui fișier not-mounted.txt indică faptul că în acel director nu este montat nimic).
  • Se descarcă scheletul laboratorului, executând comanda: get-lab XX (se înlocuiește XX cu numărul laboratorului curent). Scheletul va fi descărcat și extras în directorul curent.
  • Se deschide editorul preferat (gedit, gVim) și se încarcă scheletul primului exercițiu din directorul /home/student/spook-share/labXX-tasks/.
  • Se deschide o conexiune SSH cu mașina virtuală pentru compilarea surselor. Din terminalul deschis mai sus, se execută comanda: ssh root@spook.local (sau forma echivalentă: ssh -l root spook.local). Apoi se navighează în directorul primului exercițiu: cd labXX-tasks/…
  • Se deschide Netconsole Terminal (icon-ul este pe Desktop) pentru a primi mesajele trimise de kernelul mașinii virtuale.

Exerciții Windows

Se va lucra direct pe mașina virtuală de Windows.

Sfaturi utile:

  • Pentru compilarea modulelor de kernel, se foloseste numai consolax86 Checked Build Environment. Compilând cu această consolă vor fi activate warning-urile, care de cele mai multe ori vă indică probleme serioase în cod.
  • Pentru compilarea aplicațiilor user-space (de exemplu, testerele care însoțesc scheletul), se folosește numai consola Visual Studio 2008 Command Prompt.
  • Deschideți DbgView înainte să inserați orice modul în kernel.

Observații generale

  • Dacă hostname-urile spook.local sau chooch.local nu sunt recunoscute:
    • Verificați că mașina virtuală respectivă este pornită și funcțională.
    • Porniți manual Avahi mDNS/DNS-SD daemon, executând comanda următoare într-un terminal de pe mașina gazdă: sudo /etc/init.d/avahi-daemon start

Editarea folosind vim

Sfaturi utile pentru editarea folosind vim:

  • Paste fără linii “în scară”: Când se face paste, editorul va încerca să indenteze automat liniile ca și cum ar fi scrise de la tastatură.
    • Pentru a păstra formatarea codului, inainte de a da paste se execută comanda :set paste
    • Pentru a reveni la modul normal, în care indentarea se realizează automat, se executa comanda: :set nopaste
  • Cut, copy, paste în mod vizual: Pentru a selecta rapid text nu se folosește mouse-ul (nu funcționează cum ar trebui prin SSH).
    • Editorul vim are un buffer intern (ca un clipboard) în care se poate stoca un bloc de text. O parte a buffer-ului este păstrată și după ieșirea din editor (în fișierul ~/.viminfo)
    • Se intră în modul vizual apăsând tasta v (pentru modul de selecție caracter-cu-caracter) sau tasta V (pentru modul de selecție linie-cu-linie).
    • Selecția începe de la caracterul curent / linia curentă.
    • Se folosesc săgețile pentru a selecta bucata de cod relevantă și în final se apasă d (delete) pentru a șterge selecția și a o pune în buffer sau y (yank) pentru a copia selecția în buffer. Se va reveni automat la modul comandă.
    • Se deplasează cursorul cu săgețile și se poziționează înainte de caracterul / linia unde se vrea să se insereze conținutul buffer-ului.
    • Se apasă p (paste) pentru a insera conținutul buffer-ului după caracterul / linia curentă. Se poate folosi P pentru a insera conținutul buffer-ului înainte de caracterul / linia curentă.
  • Cut, copy, paste rapid: Se folosește pentru a șterge, muta sau copia câteva linii.
    • Pentru a copia linia curentă în buffer se apasă yy.
    • Pentru a muta linia curentă în buffer se apasă dd.
    • Pentru a copia/muta în buffer mai multe linii, se prefixează comanda cu un număr. De exemplu, 10dd mută 10 linii în buffer.
    • Pentru a insera conținutul buffer-ului se folosește comanda p (inserare inainte de linia curentă) sau P (inserare după linia curentă).
  • Tags pentru căutare rapidă în surse: sunt configurate deja în vim pentru mașina virtuală de Linux de la laborator, deci e de ajuns să folosiți shortcut-urile specifice: se poziționează cursorul pe un identifcator/nume de fișier include și se apasă Ctrl+] ; pentru a reveni se apasă Ctrl+t . Mai multe detalii aici.
so2/resurse/sala-de-laborator.txt · Last modified: 2015/02/22 21:34 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0