Sisteme de operare - linux

Cuprins


Capitole curs

  1. Interpretorul de comenzi linux si fisierele de comenzi -exemple de scripturi shell
  2. Programare C/C++ sub linux ( compilator gcc si utilitarul make
  3. Exercitii propuse cu procese linux (lista probleme). Secvente de cod cu implementare apeluri sistem pentru procese - exemple
  4. Probleme cu pipe-uri (probleme propuse). Exemple de implemenare - secvente de cod cu system si popen.
  5. Probleme cu blocari de fisiere (lista probleme propuse). Exemple secvente de cod - secvente de cod cu blocari de fisiere
  6. probleme cu semafoare - exemple semafoare

Laboratoare PL | Laboratoare SOD | Python

Laboratoare programare linux

  1. Laborator 1 - Comenzi linux de baza
  2. Laborator 2. Comunicatii: ftp, mail, telnet, X
  3. Laborator 3. Programare shell (1)
  4. Laborator 4. Programare awk
  5. Laborator 5. grep si sed
  6. Laborator 6. Programare shell (2)
  7. Laborator 7. Programare C si utilitarul make
  8. Laborator 8. Procese
  9. Laborator 9. Fisiere
  10. Laborator 10. popen si fifo
  11. Laborator 11. Blocari de fisiere
  12. Laborator 12. Socket
  13. Laborator 13. Tcl
  14. Laborator 14. Tcl/Tk


Laboratoare sisteme de operare distribuite (TMIS)

  • L1
    1. Sa se scrie un script shell care aduna numerele date ca parametrii in linia de comanda.
    2. Sa se scrie un script shell care scrie numerele in ordine descrescatoare incepand de la n dat ca parametru folosind while.
    3. Sa se inverseze cifrele unui numar (254 -> 452).
    4. Scrieti un script care afiseaza data curenta, ora, numele utilizatorului si disrectorul curent.
    5. Scrieti un script care calculeaza suma cifrelor unui numar dat ca parametru.
    6. Scrieti un script care determina daca o comanda contine caracterul "*".
    7. Scrieti un script care afiseaza numerele lui Fibonacci.
    8. Scrieti un script care transforma litere mari in litere mici pentru nume de fisiere primite ca parametru.
  • L2
    1. Scrieti un script shell care afiseaza lista utilizatorilor si timpul cat au fost logati (din ultima sesiune de lucru)
    2. Scrieti un script care implementeaza un browser text folosind comenzile wget si links -dump . Utilizatorul are trei optiuni introduce un URL, b pentru back si q pentru quit. Ultimele 10 URL-uri introduse de user sunt stocate intr-un array, de unde utilizatorul poate sa le acceseze folosind functionalitatea back.
    3. Scrieti un script care automatizeaza instalarea unui pachet de pe Internet (trebuie dat numele, descarcat, dezarhivat si compilat). Doar instalarea poate fi intrerupta.
    4. Scrieti un program C care implementeaza comanda kill.
  • L3
    1. Scrieti un script care pe baza instructiunii if then verifica daca scriptul a primit cel putin doi parametrii si afiseaza eroarea corespunzatoare.
    2. Scrieti un script care verifica daca doua stringuri sunt egale.
    3. Determinati maximul a trei numere primite ca parametru.
    4. Determinati suma numerele de la 1 la n cu ajutorul unuic ciclu while si cu ajutorul unui ciclu for.
    5. Scrieti un script care cere luna si anul si afiseaza zilele din luna respectiva.
    6. Scrieti un script care determina daca o comanda contine caracterul "*".
    7. Scrieti un script care numara cate fisiere si cate subdirectoare sunt intr-un director (recursiv).
    8. Scrieti un script KornShell care foloseste comanda de selectare pentru a afisa o lista de masini si ca raspuns va propune o culoare pentru masina aleasa.
  • L4 (Python)
    1. Scrieti un script care cere de la tastatura 2 stringuri si le compara.
    2. Scrieti un script care cere un numar de la tastatura si verifca daca acesta este patrat perfect.
    3. Cititi o variabile var de la tastatura. Verificati tipul de data pentru variabila citita.
    4. Srieti un program de genul "ghiceste numarul" (progamul da indicatii: mai mare, mai mic si se opreste cand utilizatorul a ghicit).
    5. Creati o lista de mp3-uri(nu de la tastatura). Puneti in evidenta 3 operatii pe aceasta lista
    6. Preluati datele de pe un formular de login folosind un script(cgi) python.
  • L5 (Python)
    1. Scrieti un script care extrage mailurile de pe serverul info.unitbv.ro folosind pop3.
    2. Scrieti un script care extrage mailurile de pe serverul info.unitbv.ro folosind imap.
    3. Generati un grafic pe baza fisierelor de log linux
    4. Generati un raport cu spatiul de pe disc
    5. Sa se iplementeze un scanner de porturi
  • L6 (Python)
    1. Se se exemplifice utilizarea arhivelor tar cu python.
    2. Sa se implementeze adunarea unui sir de numere folosind threaduri.
    3. Sa se scrie un script python care trimite un mail la o adresa data cu lista utilizatorilor logati in ziua curenta.
  • L7
    1. Scrieti un modul in Python si demonstrati utilizarea acestuia intr-un program.
    2. Sa se scrie un program (C/Java/Python) care scaneaza porturile unui calculator. Programul primeste ca parametrii porturile ce trebuie scanate si un IP.
  • L8 (aplicatie client server - JAVA/C#/Python)
    1. Sa se scrie o aplicatie Centralizator care gestioneaza programe Raportor
    2. Sa se propune un protocol de comunicare intre Centralizator si Raportor bazat pe XML
    3. Sa se ruleze in programul Raportor o comanda externa si sa se trasmita rezultatele la Centralizator
    4. Sa se trimita o notificare (exemplu comanda de shutdown) tuturor Raportorilor
  • L9
    1. Sa se trimita un fisier tuturor Raportorilor.
  • L10
    1. Sa se transforme aplicatia Raportor intr-o aplicatie multifir (capabila sa execute mai multe sarcini simultan).
    2. Sa se transforme aplicatia Centralizator intr-o aplicatie multifir (exemplu: interogheaza mai multe aplicatii Raportor simultan).
  • L11-L14
    1. Functionalitati aplicatii Centralizator si Raportor din laborator 8.

Perl / Python

  1. Python - Introducere
  2. Python - Module
  3. Python - SMTP si POP3
  4. Python - Erori si tratare execeptii
  5. Python - Functii
  6. Python - Expresii regulate
  7. Python - Dictionare
  8. Python - Sockets
  9. Python - Clase
  10. Python - Supreascrierea operatorilor
  11. Python - Instructiuni de control
  12. Python - Mostenire
  13. Python - JSON
  14. Python - GD
  15. Python - MySQLdb si SQLite
  16. Python - Structuri de date
  17. Python - Input / Output
  18. Python - Polimorfism
  1. Perl - Clase
  2. Perl - Mostenire
  3. Perl - Operatori
  4. Perl - Functii
  5. Perl - Expresii regulate

Nota examen

  • Nota finala se compune din
    1. Nota examen scris (50%)
    2. Nota laborator - so / programare linux (50%)
      • - nota teme de laborator (33%)
      • - nota program C sau script shell + referat corespunzator (la alegere dintre: procese, gestiunea memeoriei, fisiere, pipe-uri) (33%)
      • - nota prezentare comanda linux - realizarea unei prezentari pdf (folosind foils) (33%)
    3. Nota laborator - sisteme de operare distribuite (50%)
      1. Rezolvare teme de laborator (25%).
      2. Limbaj de scriptare/programare linux - realizarea unei prezentari pdf (folosind foils) (25%).
      3. Implementarea program cu interfata grafica sub linux (25%).
      4. Referat (25%).
    4. Se acorda 1 punct bonus la nota finala pentru configurarea unui serviciu linux (ldap, dovecot, samba, exim4, etc.)

Observatii

  1. Unelte recomdate pentru realizare filme:
    1. ShareX
      1. permite realizarea de capturi de ecran si adnotarea imaginilor obtinute
      2. permite inregistrarea ca film a zonelor de ecran selectate
  2. Orice tip de documentatie se va tehnoredacta in latex folosind MikTex si TeXnicCenter plecand de la acest sablon .
  3. Descarcare exemplu de prezentare latex ce foloseste pachetul foils .
  4. Detalii prezentare/film:
    1. rezolutie 800x600 - deoarece filmul este destinat utilizarii/vizualizarii cu ajutorul browserului, acesta trebuie sa incapa convenabil intr-o fereastra fara ca utilizatorul sa fie nevoit sa realizeze ajustari de rezolutie sau redimensionari pentru a-l urmari
    2. pe desktop nu vor fi schortcut-uri inutile - la realizarea filmului se curata ecranul si se seteaza un fundal implicit (albastru) pentru a nu distrage atentia de la continut (scenariu de utilizare utilitar prezentat)
    3. contine slide de titlu - primul slide contine un titlu si o descriere a continutului filmului.
    4. cel putin o nota pe fiecare slide - pe fiecare cadru din film se va scrie atat cum fac? cat si ce fac?
    5. fara sonor
    6. atentie la miscarile de mouse - daca nu sunt consistente sunt eliminate din film
    7. ca si regula de stil trebuie avut in vedere ca un astfel de film se adreseaza atat persoanelor cu pregatire informatica cat si celor fara pregatire informatica - orice persoana interesata trebuie sa inteleaga ce face si cum reproduce ceea ce se prezinta in film.
  5. Pentru fiecare tema de laborator se primeste o nota de la 1 la 10.
  6. Se penalizeaza orice teme care nu respecta indicatiile de la laborator si nu implementeaza elementele prezentate in laboratorul respectiv.