Differences

This shows you the differences between two versions of the page.

Link to this comparison view

so:laboratoare:laborator-12 [2020/04/18 12:44]
dragos_florin.costea [Rezolvarea unei căi]
so:laboratoare:laborator-12 [2022/05/29 20:59] (current)
maria.mihailescu [Înainte de laborator: Feedback] Fix date
Line 1: Line 1:
 ====== Laborator 12 - Implementarea sistemelor de fișiere ====== ====== Laborator 12 - Implementarea sistemelor de fișiere ======
  
-===== Materiale Ajutătoare ===== 
- 
-  * [[http://​elf.cs.pub.ro/​so/​res/​laboratoare/​lab12-slides.pdf | lab12-slides.pdf]] 
  
 ===== Nice to read =====  ===== Nice to read ===== 
Line 30: Line 27:
   * [[#​dirname_si_basename|dirname și basename]]   * [[#​dirname_si_basename|dirname și basename]]
  
 +===== Înainte de laborator: Feedback =====
 +
 +Pentru a îmbunătăți cursul de SO, componentele sale și modul de desfășurare,​ ne sunt foarte utile opiniile voastre. Pentru aceasta, vă rugăm să accesați și completați formularul de feedback de pe site-ul [[https://​curs.upb.ro|curs.upb.ro]]. Trebuie să fiți autentificați și înrolați în cadrul cursului.
 +
 +Formularul este anonim și este activ în perioada 23 mai 2022 - 3 iunie 2022. Rezultatele vor fi vizibile în cadrul echipei cursului doar după încheierea sesiunii. Este accesibil la link-ul "​Formular feedback"​ a paginii principale a cursului de SO al seriei voastre pe [[https://​curs.upb.ro|curs.upb.ro]]. **Nu** este în meta-cursul disponibil tuturor seriilor.
 +
 +Vă invităm să evaluați activitatea echipei de SO și să precizați punctele tari și punctele slabe și sugestiile voastre de îmbunătățire a disciplinei. Feedback-ul vostru ne ajută să creștem calitatea materiei în anii următori și să îmbunătățim disciplinele pe care le veți face în continuare.
 +
 +Vom publica la începutul semestrului viitor analiza feedback-ului vostru.
 +
 +Ne interesează în special:
 +
 +  * Ce nu v-a plăcut și ce credeți că nu a mers bine?
 +  * De ce nu v-a plăcut și de ce credeți că nu a mers bine?
 +  * Ce ar trebuie să facem ca lucrurile să fie plăcute și să meargă bine?
  
 ===== Device Nodes ===== ===== Device Nodes =====
Line 230: Line 242:
 ===== Rezolvarea unei căi ===== ===== Rezolvarea unei căi =====
  
-Apelul [[http://​man7.org/​linux/​man-pages/​man3/​realpath.3.html | realpath(3)]] dereferențiază link-ul simbolic primit ca argument în ''​path''​ **și** elimină subşirurile ''/​./'',​ ''/​../'' ​plus apariţii în plus ale caracterului ''/''​ pentru a genera o cale absolută plasată în parametrul de ieşire ''​realpath''​.+Apelul [[http://​man7.org/​linux/​man-pages/​man3/​realpath.3.html | realpath(3)]] dereferențiază link-ul simbolic primit ca argument în ''​path''​ **și** elimină subşirurile ''/​./'',​ ''/​../'' ​precum şi apariţii în plus ale caracterului ''/''​ pentru a genera o cale absolută plasată în parametrul de ieşire ''​realpath''​.
  
 Exemplu: Dacă parametrul de intrare ''​path''​ ar fi ''/​home/​madalina/​%%/​%%/​%%/​%%/​so/​tema4/​../​../​seriale/​thewire/''​ , în urma apelului ''​realpath(path,​ resolved_path)'',​ parametrul de ieşire ''​resolved_path''​ devine ''/​home/​madalina/​seriale/​thewire/''​. Presupunem că ierarhia de directoare prezentată în exemplu există deja. Exemplu: Dacă parametrul de intrare ''​path''​ ar fi ''/​home/​madalina/​%%/​%%/​%%/​%%/​so/​tema4/​../​../​seriale/​thewire/''​ , în urma apelului ''​realpath(path,​ resolved_path)'',​ parametrul de ieşire ''​resolved_path''​ devine ''/​home/​madalina/​seriale/​thewire/''​. Presupunem că ierarhia de directoare prezentată în exemplu există deja.
Line 260: Line 272:
  
 ====== Exerciții ====== ====== Exerciții ======
 +
 +<note important>​
 +În cadrul laboratoarelor vom folosi repository-ul de git al materiei SO - https://​github.com/​systems-cs-pub-ro/​so. Va trebui sa clonați repository-ul pe masinile virtuale folosind comanda: ''​git clone https://​github.com/​systems-cs-pub-ro/​so''​. Dacă doriți să descărcați repositoryul în altă locație, folosiți comanda ''​git clone https://​github.com/​systems-cs-pub-ro/​so ${target}''​.
 +
 +Pentru a actualiza repository-ul,​ folosiți comanda ''​git pull origin master''​ din interiorul directorului în care se află repository-ul. Recomandarea este să îl actualizați cât mai frecvent, înainte să începeți lucrul, pentru a vă asigura că aveți versiunea cea mai recentă. În cazul în care gitul detectează conflicte la nivelul vreunui fişier, folosiți următoarele comenzi pentru a vă păstra modificările:​
 +<​code>​
 +git stash
 +git pull origin master
 +git stash pop
 +</​code>​
 +
 +Pentru mai multe informații despre folosirea utilitarului git, urmați ghidul de la https://​gitimmersion.com.
 +</​note>​
  
 ===== Completare feedback ===== ===== Completare feedback =====
Line 265: Line 290:
 Vă invităm să **evaluați activitatea echipei de SO** și să precizați punctele tari și punctele slabe și sugestiile voastre de îmbunătățire a materiei. Feedback-ul vostru este foarte important pentru noi să creștem calitatea materiei în anii următori și să îmbunătățim materiile pe care le veți face în continuare. Vă invităm să **evaluați activitatea echipei de SO** și să precizați punctele tari și punctele slabe și sugestiile voastre de îmbunătățire a materiei. Feedback-ul vostru este foarte important pentru noi să creștem calitatea materiei în anii următori și să îmbunătățim materiile pe care le veți face în continuare.
  
-<note tip>​Găsiți **formularul de feedback** în partea dreaptă a paginii principale de SO de pe [[https://acs.curs.pub.ro|acs.cs.pub.ro]] într-un frame numit //"​FEEDBACK"//​. Trebuie să fiți înrolați la cursul de SO și să intrati pe pagina asociată seriei voastre (nu pe metaserie), altfel veți primi o eroare de acces.+<note tip>​Găsiți **formularul de feedback** în partea dreaptă a paginii principale de SO de pe [[https://​curs.upb.ro|curs.upb.ro]] într-un frame numit //"​FEEDBACK"//​. Trebuie să fiți înrolați la cursul de SO și să intrati pe pagina asociată seriei voastre ​**(nu pe metaserie)**, altfel veți primi o eroare de acces.
 </​note>​ </​note>​
 Vă mulțumim! Vă mulțumim!
Line 271: Line 296:
 ===== Linux ===== ===== Linux =====
  
-<note important>​Pentru rezolvarea laboratorului descărcați arhiva de [[http://​elf.cs.pub.ro/​so/​res/​laboratoare/​lab12-tasks.zip | lab12-tasks.zip]]. ​Codul va fi scris în fișierul ''​mini.c''​ din directorul ''​1-mini/''​. Pentru fiecare exercițiu decomentați linia TODO corespunzătoare. </​note>​ +<note important>​Codul va fi scris în fișierul ''​mini.c''​ din directorul ''​1-mini/''​. Pentru fiecare exercițiu decomentați linia ''​TODO'' ​corespunzătoare. </​note>​
  
  
Line 301: Line 325:
  
 <code bash> <code bash>
-mount /​dev/​mapper/​vagrant--vg-root /mnt/my ext4+mount /​dev/​mapper/​vgvagrant-root /mnt/my ext4
 </​code>​ </​code>​
  
-În cazul în care nu lucraţi în maşina virtuală de SO, folosiţi ''/​dev/​sda1''​ în loc de ''/​dev/​mapper/​vagrant--vg-root''​.+În cazul în care nu lucraţi în maşina virtuală de SO, folosiţi ''/​dev/​sda1''​ în loc de ''/​dev/​mapper/​vgvagrant-root''​.
  
 Într-o altă consolă, într-un shell obișnuit, verificați rezultatele folosind comanda: Într-o altă consolă, într-un shell obișnuit, verificați rezultatele folosind comanda:
Line 319: Line 343:
  
 Pentru testare folosiți, în shell-ul aferent comenzii ''​./​mini'',​ comanda:<​code bash> Pentru testare folosiți, în shell-ul aferent comenzii ''​./​mini'',​ comanda:<​code bash>
-symlink /etc/passwd ​local-passwd+symlink /proc/filesystems ​local-filesystems
 </​code>​ </​code>​
 Ca să verificați,​ într-o altă consolă, în același director cu cel în care ați rulat comanda ''​./​mini'',​ folosiți<​code bash> Ca să verificați,​ într-o altă consolă, în același director cu cel în care ați rulat comanda ''​./​mini'',​ folosiți<​code bash>
Line 325: Line 349:
 </​code>​ </​code>​
 Pentru a șterge symlink-ul folosiți comanda<​code bash> Pentru a șterge symlink-ul folosiți comanda<​code bash>
-unlink local-passwd+unlink local-filesystems
 </​code>​ </​code>​
 Pentru validare rulați din nou comanda<​code bash> Pentru validare rulați din nou comanda<​code bash>
Line 354: Line 378:
  
  
- 
-===== Soluții ===== 
- 
- ​[[http://​elf.cs.pub.ro/​so/​res/​laboratoare/​lab12-sol.zip | Soluții exerciții laborator 12]] 
  
  
so/laboratoare/laborator-12.1587203090.txt.gz · Last modified: 2020/04/18 12:44 by dragos_florin.costea
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