Laborator 01 - Introducere

Obiective

Ce obții în urma acestui laborator?

  • Te vei acomoda cu resursele facultății și ale cursului de USO.
  • Vei obține niște prime cunoștințe despre Linux și sisteme de operare.
  • Vei dobândi minimul necesar pentru lucrul în linia de comandă.

Evenimente pentru studenții de anul I @ ACS

Academy War Games

LAN Party, cu multe jocuri, ce are loc vineri, 6 octombrie 2017, în holul EC al Facultății de Automatică și Calculatoare. Detalii puteți afla pe http://awg.acs.pub.ro

Treasure Hunt

Eveniment de explorare și de descoperire a întregului campus al Universității POLITEHNICA București. Ai ocazia să explorezi și să descoperi locuri în care ți-ai putea petrece viața de student. Evenimentul are loc duminică, 8 octombrie 2017, începând cu ora 15:00, cu punct de plecare hol EC.. Detalii aflați pe http://treasure.innovationlabs.ro/

LIF - Linux Install Fest

Eveniment în urma căruia vă puteți instala Linux pe sistemele personale: sâmbătă, 7 octombrie 2017, între orele 10:00 și 16:00, în hol EC.

1. Resursele cursului de USO

Echipa de asistenți a USO

Îl puteți cunoaște pe profesorul de la curs, pe asistentul vostru, dar și pe colegii lor accesând pagina echipei.

acs.curs.pub.ro

Link: http://acs.curs.pub.ro/

Informații despre conturi găsiți pe prima pagina a site-ului.

Este platforma de cursuri online a facultății de Automatică și Calculatoare. Atât pentru cursul de USO, cât și pentru alte cursuri care folosesc platforma Moodle veți găsi:

  • Link-uri către cursuri și laboratoare
  • Anunțuri utile pentru voi
  • Forum de discuții, unde puteți pune întrebări legate de curs sau de facultate
  • Puteți oferi feedback echipei de asistenți
  • Link-uri către temele de casă și termenele limită pentru acestea

Orice nelămurire cu privire la cursul sau laboratorul de USO, sau la materie în general, orice întrebare care are legătură cu USO sau cu facultatea, adresați-o pe forumul dedicat în cadrul materiei USO pe Moodle.

Pe forumul de discuții de pe platforma Moodle veți primiți răspunsuri rapide, prompte și avizate la probleme legate de cursul de USO și activitățile acestuia. Folosiți cu încredere forumurile aferente atunci nu sunteți la curs sau laborator și nu puteți discuta direct cu titularul de curs sau asistentul de laborator.

Înainte de a pune o întrebare, asigurați-vă că nu a mai fost pusă de altcineva înainte.

Contactați asistenții sau titularii de curs pe adresa de e-mail personală doar în cazuri de probleme private sau care nu interesează pe toți colegii voștri prezenți pe forum.

Support (issues)

Link: https://support.curs.pub.ro/

Platforma unde puteți ridica un tichet în cazul în care aveți probleme cu contul de email @stud.acs.upb.ro sau cu contul cu care accesați resursa Moodle (adică site-ul https://acs.curs.pub.ro).

Wiki

Link: http://ocw.cs.pub.ro/courses/uso-ac/

Platforma wiki Open Courseware e locul in care veți găsi, în general, materialele necesare pentru studiu: slide-uri cursurilor, exercițiile de laborator, link-uri către calendar, catalog, mașini virtuale și alte resurse auxiliare necesare.

Cartea de USO

Link: Google Books

Cartea Introducere în sisteme de operare reprezintă suportul de curs și laborator pentru USO. Cartea conține informații detaliate și suplimentare despre materia predată.

Clusterul NCIT al facultății

Link: https://cloud.curs.pub.ro/

Clusterul NCIT al facultății, accesibil prin front-end processor la adresa fep.grid.pub.ro folosind protocolul SSH (despre servicii de rețea vom învăța în laboratorul 7), este o resursă care va fi folosită pentru temele de casă și pentru testul practic. Autentificarea în sistem se face folosind aceleași credențiale cu care vă autentificați pe platforma Moodle (http://cs.curs.pub.ro/).

Infrastructura de cloud din cadrul clusterului NCIT este baza pe solutia opensource Openstack. Aceasta este o solutie de IaaS (Infrastructure as a Service). Va fi folosită pentru a vă crea mașini virtuale în cloud pentru testele practice.

Jocul World of USO

Link: https://wouso.cs.pub.ro/

World of USO este un joc simplu realizat pentru studenții cursului de USO, care are 3 componente majore: Question of the Day, Challenge și The Quest. Autentificarea în joc se face folosind aceleași credențiale cu care vă autentificați pe platforma Moodle (cs.curs.pub.ro). Momentan nu a fost lansat.

Repository Git USO

Link: https://github.com/systems-cs-pub-ro/uso

Repository-ul de Git al cursului de USO: Aici veți găsi materialele auxiliare necesare unui laborator și eventual fișiere cu cod sursă ale rezolvărilor.

2. Prezentarea liniei de comandă

Majoritatea conceptelor din laboratorul de USO vor folosi mediul text ca suport. Interacțiunea este, în general, de tip comandă - răspuns, iar conceptul se numește “a lucra în linie de comandă”. Acțiunile pe care le realizăm în modul grafic (pornire de aplicații, creare de fișiere, descărcare de resurse de pe Internet etc.) sunt realizabile și în linia de comandă.

Programul pe care îl folosim pentru a lansa comenzi se numește, prin abuz de limbaj, shell, terminal, sau consolă.

Pentru a porni un terminal din interfața grafică (GUI) în Ubuntu GNOME (distribuția instalată în laborator), urmăm pașii:

  1. Dăm click pe butonul Activities din colțul stânga sus al desktop-ului.
  2. În bara apărută în stânga, dăm click pe icon-ul Terminal.

În particular, în sala de laborator, găsiți pe Desktop o scurtătură numită Terminal care va deschide o aplicație de tip terminal. Este vorba de o configurare particulară realizată pe sistemele din sala de laborator.

Alternativ, puteți porni orice aplicație, dacă îi știți numele, folosind Alt+F2 și tastând numele aplicației. În particular, pentru a porni o aplicație de tip terminal, folosim combinația de taste Alt+F2 și apoi tastăm numele aplicației (adică gnome-terminal), urmat de apăsrarea tastei Enter.

În multe distribuții ce folosesc mediul grafic GNOME puteți deschide un terminal nou folosind combinația de taste Ctrl+Alt+t.

În terminal, comanda echo afișează pe ecran textul care o urmează. De exemplu, ca să afișăm pe ecran textul "Hello, World", tastăm în terminal comanda

echo "Hello World"

Pentru a rula comanda apasăm Enter.

Observați modul de interacțiune: pornim o comandă, îi dăm de la început argumentele (îi spunem ce să facă). Comanda produce rezultate și se termină. Putem apoi lansa o altă comandă. Comparați acest mod de lucru cu folosirea unui browser web: îl pornim și rămâne pornit în timp ce îi spunem ce să facă. În acest sens, un browser este interactiv.

Observați că înaintea fiecărei comenzi se află o linie de forma vlad@cormyr:~$ . Această linie, numită prompt, are rolul de a identifica utilizatorul, mașina curentă, și directorul în care ne aflăm. Observați formularea user@host, asemănătoare cu o adresă de email.

Rețineți că simbolul ~ (numit tilda) este o prescurtare pentru directorul home al utilizatorului. Fiecare utilizator are un asemenea director, de obicei în directorul /home (de exemplu /home/student). Corespondentul lui în Windows 7 este C:\Users\student\.

În următoarele laboratoare, va trebui să rezolvați mai multe exerciții în linia de comandă. Trebuie să aveți o metodă clară de a le separa, pentru a putea demonstra ușor asistentului că ați rezolvat fiecare exercițiu.

  • Folosiți, în terminal, opțiunea File → Open Tab, sau puteți folosi combinația de taste Ctrl+Shift+t.
    • Dacă nu aveți bară de sus, puteți da right-click în mijlocul ferestrei de terminal și apoi selectați Show menubar.
  • Puteți naviga între tab-uri folosind combinația de taste Ctrl+PageUp/PageDown.
  • Pentru a sări direct la un tab, puteți folosi combinația de taste Alt + <index>, unde index este o cifră de la 0 la 9 reprezentând indexul tab-ului
  • Pentru a închide un tab, folosiți comanda exit sau combinația de taste Ctrl+d.

Ca alternative la lucrul cu multiple terminale, puteți folosi programe precum Guake sau Terminator.

3. Aplicații implicite în Ubuntu GNOME 16.04

  • Firefox - browser web
    • Comanda aferentă este firefox.
  • LibreOffice - suită Office open-source
    • Comanda aferentă este libreoffice.
  • Evince - PDF Viewer
    • Comanda aferentă este evince.
  • EyeOfGnome - default image viewer pe distribuții Ubuntu bazate pe mediul desktop GNOME. Pe distribuții Ubuntu, care folosesc, de exemplu, mediul desktop MATE, utilitarul se numește Eye of Mate.
    • Comanda aferentă este eog.
  • Shotwell - manager de poze
    • Comanda aferentă este shotwell.
  • Empathy este un program de instant messaging cu suport pentru mai multe rețele (Yahoo Messenger, Google Talk, Facebook, etc.) și mai multe forme de comunicare: text, voce, video, transfer de fișiere.
    • Comanda aferentă este empathy.
  • Rhythmbox - player de muzică
    • Comanda aferentă este rhythmbox.
  • Videos - cunoscut în trecut sub numele de Totem, este player-ul implicit de filme în Ubuntu 14.04. Folosește în spate codec-urile gstreamer și e capabil să redea multe formate (.avi, .mp4, .mkv etc.).
    • Comanda aferentă este totem.
  • Transmission - Bit Torrent client (variantă sub Linux similară cu popularul uTorrent)
    • Comanda aferentă este transmission-gtk.
  • Editoare text:
      • Comanda aferentă este gedit
    • Emacs: un editor foarte puternic, printre cele mai folosite în lumea Linux, la un loc cu Vim
      • Comanda aferentă este emacs.
    • vim: un editor folosit pentru eficiența sa și pentru faptul că este prezent, într-o formă sau alta, pe orice sistem Unix sau Linux
      • Comanda aferentă este vim (doar în linia de comandă) sau gvim (în mediul grafic).

O privire de ansamblu drăguță a programelor implicite, cu screenshots și descriere mai amplă, găsiți aici. De asemenea, capitolul 15 - Viața în Linux din cartea de USO conține informații utile pentru a vă acomoda cu Linux ca sistem de operare principal pe desktop-ul/laptop-ul personal.

Exerciții

[00] Verificarea conturilor [0.5p]

Pe parcursul USO și al facultății avem nevoie să fim siguri că vă funcționează conturile în mai multe locuri. Avem checklist-ul de mai jos.

Intrați pe platforma http://studenti.pub.ro. Parola initiala pentru anul 1 este formată din ultimele 6 cifre din CNP sau pasaport. Schimbati parola dupa prima autentificare.

Pentru a afla contul de utilizator de acces la http://acs.curs.pub.ro accesati pagina “Acces site cursuri” de pe http://studenti.pub.ro de la punctul 1.

Au fost create e-mail-urile oficiale pentru studenti din partea UPB. E-mail-ul este de forma username_acs_curs@stud.acs.upb.ro si poate fi accesat de la adresa http://outlook.com/upb.ro. Pentru a se activa, trebuie sa schimbati cel putin o data parola folosind platforma de cursuri (http://acs.curs.pub.ro). Activarea se va realiza in aproximativ 3 ore. E-mail-ul se acceseaza cu aceeasi parola cu cea a site-ului de cursuri.

Unde username_acs_curs este contul de utilizator de mai sus, de acces la http://acs.curs.pub.ro, cu aceeași parolă.

Puteți descărca în mod gratuit produse Microsoft (exceptând suita Office) accesând site-ul http://msdnaa.acs.pub.ro. Folosiți aceleasi credențiale (cont și parolă) ca la site-ul de cursuri/email.

Puteți descărca în mod gratuit suita Microsoft Office accesând adresa http://portal.office.com și folosind ca date de autentificare adresa de e-mail din partea UPB și parola asociată acestuia.

[01] Primul contact cu terminalul Linux [2.5p]

Înainte de a face celelalte exerciții este bine să parcurgeți această secțiune pregătitoare.

  • Cum deschidem rapid un terminal în Ubuntu?
    • R: Folosim combinația de taste Ctrl+Alt+t
  • După ce ați deschis terminalul dați următoarea comandă (nu trebuie să înțelegeți acum ce face):
    cat /dev/urandom | tr -dc _A-Z-a-z0-9 | head -c 33 && echo -ne "\n"
  • NOTĂ: Cum dăm Copy&Paste într-un terminal?
    • Copy: Ctrl+Insert (valabil în orice terminal. În Ubuntu mai poate fi folosită și combinația Ctrl+Shift+c)
    • Paste: Shift+Insert (valabil în orice terminal. În Ubuntu mai poate fi folosită și combinația Ctrl+Shift+v
  • Am dat o comandă lungă pe care vreau să o mai dau o dată. Cum fac?
    • R: apasă uparrow (săgeată sus)
  • Vreau să copiez o comandă din terminal fără a folosi mouse-ul. Cum fac?
    • R: Folosim săgeată sus pentru a prelua comanda lungă anterioară. Apoi vom folosi Ctrl+a pentru a ne duce la începutul rândului. Apoi apăsăm Ctrl+k pentru a copia toată linia. Observăm că a dispărut. Acum apăsăm Ctrl+y (yank - vom mai auzi de acesta noțiune când vom folosi editorul vim).

Vom mai folosi astfel de combinații de taste și în alte laboratoare pentru a ne eficientiza lucrul cu sistemul de operare.

[02] Instalarea aplicațiilor în Linux (Ubuntu GNOME) [2.5p]

Ne propunem în acest exercițiu să instalăm câteva joculețe distractive în linie de comandă. Căutați pachetele care conțin în numele sau în descrierea lor cowsay (e posibil să fie afișate multe rezultate):

student@uso:~$ apt-cache search cowsay

Rețineți că student@uso:~$ nu este parte a comenzii, este promptul pe care îl veți avea afișat. Este posibil să aveți al nume pentru stație, diferit de uso.

Instalați pachetul cowsay:

student@uso:~$ sudo apt-get install cowsay

Dacă vi se cere parola administrativă (posibil să nu fie cazul), parola este student. Rulați comanda după ce s-a instalat pachetul:

student@uso:~$ cowsay "Hello, student!"

Dacă dorim să dezinstalăm un anumit pachet din sistem, putem folosi, în terminal comanda:

student@uso:~$ sudo apt-get remove cowsay

Vrem acum să instalăm mai multe astfel de aplicații. Pe toate deodată și fără să mai fim întrebați dacă suntem siguri (fără Yes/No prompt). Vom folosi comanda:

student@uso:~$ sudo apt-get install -y sl fortune-mod wmfire

Mai multe astfel de joculețe plus ceea ce fac ele găsiți în acest articol de pe tecmint.

Pentru a instala pachete folosind GUI (interfața grafică): În distribuția Ubuntu GNOME, instalată în laborator, deschideți managerul de pachete (Ubuntu Software Center) urmând pașii:

  1. Dați click pe butonul Activities din colțul stânga sus al desktop-ului.
  2. Din bara din stânga, accesați ultimul icon, cel mai de jos, care conține nouă pătrățele gri. Atunci când glisați peste icon, apare mesajul Show Applications.
  3. În fereastra deschisă selectați opțiunea All din partea de jos.
  4. Căutați aplicația Ubuntu Software Center.

[03] Folosire editor text în linie de comandă [2.5p]

Pentru a trece de o problemă existentă pe sistemele instalate, rulați, în prealabil, comanda

student@uso:~$ sudo chown student:student /home/student

Deschideți un terminal. Dorim să ne asigurăm că suntem în directorul /home/student. Folosiți comanda

student@uso:~$ pwd

Dacă nu ne aflăm în /home/student folosim comanda:

student@uso:~$ cd /home/student

Deschideți un nou fișier folosind vim:

student@uso:~$ vim hello.c

Ne propunem să edităm acest fișier (implicit suntem în modul normal). Apăsați tasta I și observați în stânga, jos, la terminal textul –INSERT–. În acest moment putem introduce text în fișier. Scrieți un program C simplu care afișează textul Hello, USO!

Programul va fi scris în C și nu în C++ sau Pascal. O structură a unui program C este următoarea:

#include <stdio.h>
/* ... Other includes or defines ... */
 
int main()
{
     /* Main code here */
     return 0;
}

Dorim acum să salvăm fișierul. Trebuie să revenim în modul normal. Apăsăm tasta ESC după ce am terminat de scris programul. Trebuie să nu mai observăm nici un text în partea de jos a terminalului. Acum apăsăm :wq (Save and Exit). Dacă dorim să dăm doar save apăsăm :w și nu vom părăsi editorul.

Vim este un editor foarte puternic și o formă a sa o veți găsi pe orice distribuție Linux sau Unix. Cunoașterea de bază a editorului este importantă pentru orice persoană cu profil tehnic.

Este bine să parcurgeți de ori de câte ori e nevoie tutorialul de vim al USO. Pentru o învățare mai lină vă recomandăm jocul vim adventures.

De asemenea, este important să folosiț comanda vimtutor pentru un tutorial aplicat de Vim.

În general când lucrați cu Vim, dacă vă loviți de probleme, apăsați ESC pentru a ajunge în modul normal. Și rețineți că puteți folosi, în modul normal, comanda :q! pentru a părăsi editorul fără a salva vreo modificare.

Alternative grafice (inutilizabile atunci când intrăm remote pe o mașină fără server grafic instalat): În afara editorului implicit din GNOME (gedit), mai există:

  • Eclipse IDE - acesta e un întreg Integrated development environment, în care puteți dezvolta aplicații complexe, cu multe linii de cod, cu compilator integrat.

O altă opțiune în linia de comandă pentru editare rapidă de texte, atunci când vim nu e disponibil, este editorul text nano.

[04] Importarea unei mașini virtuale [2p]

Pe parcursul laboratorului de USO, dar și la temele de casă, vom lucra cu mașini virtuale. Pe scurt, rolul lor este de a oferi un sistem de operare în cadrul unui program pentru teste, pentru a nu ne strica sistemul de operare gazdă pe care lucrăm (în cazul stațiilor din laborator Ubuntu). Mai multe despre mașini virtuale pe HowToGeek și pe Wikipedia.

În directorul /mnt/sda5/ se găsesc masini virtuale și alte resurse folosite în cadrul cursului de USO. Importați mașina virtuală descrisă de fișierul /mnt/sda5/uso/lab07/puccini-lab7.ova.

Pentru a importa mașina, deschideți VirtualBox folosind iconița omonimă de pe Desktop și urmați instrucțiunile Oracle de aici.

Mașinile virtuale și alte resurse de mari dimensiuni folosite în cadrul cursului de USO le găsiți la această adresă: http://repository.grid.pub.ro/cs/uso/

La prompt-ul de autentificare folosiți numele de utilizator și parola cu care accesați site-ul http://acs.curs.pub.ro/.

BONUS: Compilarea progrămelului

Deschideți un terminal. Dorim să ne asigurăm că suntem în directorul /home/student. Folosiți comanda

 pwd

Compilați programul scris la exercițiul anterior, folosind comanda

gcc hello.c -o hello

Încercați să scrieți de mână, folosind tasta TAB comanda astfel:

gcc hel<TAB> -o hello 

Spre deosebire de Windows, unde executabilele au, în general extensia .exe, într-un sistem Linux fișierele executabile se numesc, în general, *binare*. hello este un astfel de fișier binar.

Se poate rula folosind comanda:

./hello

BONUS: Instalarea Linux într-o mașină virtuală

Dorim să instalăm Ubuntu 14.04 într-o mașină virtuală VirtualBox.

Pentru început descărcăm imaginea de CD care va fi folosită pentru instalarea Ubuntu 14.04 se găsește în fișierul /mnt/unfrozen/uso/lab-01/ubuntu-14.04.4-desktop-i386.iso.

Dacă nu aveți imaginea de CD la calea /mnt/unfrozen/uso/lab-01/ubuntu-14.04.4-desktop-i386.iso, atunci o puteți descărca de la adresa https://repository.grid.pub.ro/cs/uso/ubuntu-14.04.4-desktop-i386.iso

Vi se va cere în browser un cont de utilizator și o parolă. Folosiți numele de utilizator și parola de pe http://cs.curs.pub.ro

În ultimă instanță, dacă nu vă merge contul și parola, puteți descărca imaginea de la adresa ftp://ftp.lug.ro/ubuntu-releases/14.04.4/ubuntu-14.04.4-desktop-i386.iso

Sistemele din laborator au instalat VirtualBox. Puteți porni VirtualBox folosind combinația de taste Alt+F2 urmată de comanda virtualbox sau puteți folosi iconița de pe Desktop. În fereastra nou deschisă (VirtualBox) vom crea o mașină virtuală.

Pentru a crea o mașină virtuală apăsați butonul New.

  1. Acordați un nume mașini virtuale (de exemplu Ubuntu Linux 32bit).
  2. La Type selectați Linux.
  3. La Version selectați Ubuntu (32 bit).
  4. Alocați memorie RAM pentru mașina voastră virtuală (recomandat: 1 GB).

Este nevoie apoi să configurați hard disk-ul mașinii virtuale:

  1. La Hard Drive selectați Create a virtual hard drive now.
  2. La Hard Drive file type selectați VMDK (Virtual Machine Disk), pentru a fi compatibil și cu soluții de virtualizare de la VMWare.
  3. La Storage on physical hard drive selectați Dynamically allocated, pentru a economisi spațiul de pe discul fizic.
  4. Apoi alocați spațiu pentru hard disk-ul mașinii virtuale (folosiți 8 GB).

Dacă veți crea acasă o mașină virtuală recomandăm să folosiți un spațiu mai mare pentru hard disk, de exemplu 32 GB.

Avem în acest moment o placă de bază virtuală, cu procesor și memorie RAM, dar fără sistem de operare. E nevoie să instalăm un sistem de operare. Vom instala Ubuntu pe acest calculator virtual. Pentru a putea realiza pașii de mai jos, folosim fișierul /mnt/unfrozen/uso/lab-01/ubuntu-14.04.4-desktop-i386.iso, așa cum este descris mai sus.

  1. Selectați mașina virtuală după nume (apare cu Powered Off).
  2. Apăsați Settings.
  3. Mergeți în meniul Storage și la Controller: IDE, selectați icon-ul de CD. La CD/DVD Drive apăsați icon-ul de CD și apoi selectați Choose a virtual CD/DVD file. Veți alege ISO-ul descărcat.

Porniți mașina virtuală. Va boota de pe imaginea CD-ul selectată anterior și va începe instalarea Ubuntu. Cereți indicații asistentului atunci când meniul de instalare al Ubuntu este neclar. După ce a pornit instalarea Ubuntu puteți socializa :-)

Un ISO este un fișier arhivă care este similar unui CD sau DVD introdus în calculator. Numele fișierului provine de la sistemul de fișiere ISO 9660, folosit în CD-ROM media.

Vă reamintim că mașinile virtuale, fișierele de tip ISO și alte resurse de mari dimensiuni folosite în cadrul cursului de USO le găsiți la această adresă: http://repository.grid.pub.ro/cs/uso/

La prompt-ul de autentificare folosiți numele de utilizator și parola cu care accesați site-ul http://cs.curs.pub.ro/.

uso-ac/laboratoare/laborator-01.txt · Last modified: 2017/09/26 21:52 by giorgiana.vlasceanu
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