1 of 46

Cursul #02

Utilizarea sistemului de fișiere

1

2 of 46

Best file compression around:

"DEL *.*" = 100% compression

2

3 of 46

3

Evenimentele următoare

  • Curs de Dezvoltare Liberă (CDL)
    • Cursuri în afara curiculei (containerizare, GitHub)
    • Veți contribui la un proiect open source
    • Cartea voastră de vizită pentru internship sau GSoC
    • 9 octombrie deadline submisie
    • https://cdl.rosedu.org
  • Academy War Games
    • Competiții de board games și jocuri video
    • Singurul loc unde poți să-ți bați asistentul
    • 10 octombrie, Hol EC
    • Link înregistrare: https://awg.sprk.ro/

4 of 46

4

Evenimentele următoare

  • Workshopuri Keysight
    • Diferite teme tehnice
    • Laboratoare în stilul USO unde vor fi cunoștințe de containere, 5G, rețelistică
    • Pizza și suc gratis
    • 16 octombrie
  • OmniOpenCon
    • Conferință despre proiecte OpenSource
    • Puteți vorbi cu dezvoltatorii la proiecte
    • Workshopuri și prezentări tehnice
    • Link înregistrare: https://omniopencon.org
    • 17-19 octombrie

5 of 46

Suport de curs

  • Utilizarea sistemelor de operare
    • Capitolul 2 – Utilizarea sistemului de fișiere

5

6 of 46

Recapitulare

6

Hardware

Kernel

Low Level Utilities

Shell

Applications

User

7 of 46

Recapitulare

7

8 of 46

De ce?

  • Sistemele de fișiere sunt banale, dar...
  • Critice pentru funcționarea sistemului de operare
    • Permit controlul unei cantități tot mai mari de date
    • Separă resursele între utilizatorii multipli: umani și non-umani

8

9 of 46

Ce este un fișier?

9

10 of 46

Ce este un fișier?

  • Un document digital
    • O poză, o melodie, un clip, o scrisoare, o pagină dintr-un jurnal de călătorie
    • Mai multe tipuri
  • O formă de organizare digitală a datelor
    • O separare a informațiilor în fragmente cu sens pentru utilizator și gestionabile de sistem
    • Au forma unei înșiruiri de octeți

10

11 of 46

De ce folosim fișiere?

  • Pentru a stoca informația în mod persistent
    • Astfel aceasta nu se pierde la reboot
  • Pentru a controla informația
    • Informațiile folosite direct de utilizatorii umani: poze, documente etc
    • Informațiile folosite de aplicații
      • Fișiere de configurare, baze de date, sunete

11

12 of 46

Ce este un director?

  • O colecție de fișiere și subdirectoare
    • Identificată printr-un nume
    • En.: folder, directory
  • Permit organizarea ierarhică a informației
    • Organizare ierarhică vs. plată
  • Dacă fișier = foaie, atunci director = dosar
    • Directoarele pot fi goale
    • Directoarele pot conține alte directoare
    • Dar directoarele sunt tot fișiere în Linux și Mac OS X

12

13 of 46

Sistemul de fișiere

  • Controlează totalitatea directoarelor și fișierelor
    • Numirea lor
    • Atributele lor
    • Accesul
  • Oferă o metodă de organizare fizică și logică a fișierelor într-un mediu de stocare
  • Are o organizare ierarhică:
    • Director rădăcină (root directory)
    • Subdirectoare
    • Fișiere

13

14 of 46

Structură plată vs ierahică

14

15 of 46

Structura plată

15

16 of 46

Structura ierahică

16

17 of 46

Exemplu: 1.000.000 poze

17

18 of 46

Ce ne dorim de la sistemul de fișiere?

  • Să meargă repede, să ajungem repede unde ne dorim
  • Să putem găsi ușor informația
  • Să putem face operații multiple (creare, ștergere, redenumire etc)
  • Să ofere securitate (să nu ștergem fișiere aiurea) și partiționare (să avem spații de lucru separate pentru utilizatori)

18

19 of 46

Ierarhia sistemului de fișiere (Unix/Linux)

19

20 of 46

Ierarhia în Windows

20

21 of 46

Directorul rădăcină

  • Linux și Mac OS: un singur director rădăcină
  • Windows: câte o rădăcină pentru fiecare partiție
    • A, B: floppy
    • C: hard disk
    • D sau alte litere după hard disk-uri: CD-ROM, DVD-ROM
    • E: USB drive

21

22 of 46

Directorul home

  • Fiecare utilizator are un director home
  • /root este pentru root
  • /home/student este pentru student ș.a.m.d
  • Este locul în care un utilizator obișnuit poate face ce dorește
  • „~” este o scurtătură pentru directorul home al utilizatorului curent

22

23 of 46

Cale în sistemul de fișiere

  • path
  • o succesiune de intrări în sistemul de fișiere despărțite prin separator
  • intrările intermediare sunt directoare, iar cele finale pot fi directoare sau fișiere

23

Unix/Linux

/(slash)

/home/student/facultate/curs2.pdf

Windows

\(backslash)

C:\Users\student\Cursuri\curs02.pdf

24 of 46

Tipuri de căi

  • Absolute
    • Pleacă de la directorul rădăcină: / sau ~
    • /home/student/facultate/an-1/uso/lab-01-notite.txt
    • când e cale depărtată și ajungem mai repede pornind de la rădăcină
  • Relative
    • Pleacă de la directorul curent
    • ../uso/lab-01-notite.txt
    • utile când știm cum este poziționată destinația față de directorul curent și e apropiat

24

25 of 46

Intrările . și ..

  • ”.” și ”..” sunt două directoare speciale ce se găsesc în fiecare director
  • ”.” = indică spre același director
  • ”..” = indică spre directorul părinte

25

26 of 46

Navigare în sistemul de fișiere

  • pwd: print working directory
    • Unde mă aflu?
  • ls: list directory
    • Unde pot merge?
  • cd: change directory
    • Cum ajung acolo?

26

student@uso:~$ ls

facultate

student@uso:~$ cd facultate/

student@uso:~/facultate$ ls

an-1 an-2 an-3 an-4

student@uso:~/facultate$ cd an-1/uso/

student@uso:~/facultate/an-1/uso$ pwd

/home/student/facultate/an-1/uso

27 of 46

Formatul fișierelor

  • Pentru utilizator: poze, texte, melodii etc
  • Pentru sistem: fișiere text / fișiere binare
    • Fișiere text
      • Text simplu (plain text): alb.txt
      • Cod sursă: alb.c, alb.java
      • Formate de prezentare: alb.html
    • Fișiere binare = non-text
      • Imagini, programe executabile, fișiere comprimate etc
  • De regulă formatul e asociat cu extensia

27

28 of 46

Date binare vs Date text

28

12/10/2021

Date Text

    • sample.c și notes.txt
    • conținutul poate fi vizualizat de om
    • conține caractere tipăribile
    • create de editoare de text (Vim, Notepad++, Gedit)

Date Binare

    • scan.jpg și curs-02.pdf
    • conținutul nu are sens pentru om
    • conține caractere de orice fel (octeți, bytes)
    • în general mai compacte
    • create de utilitare specifice (suită Office, compilatoare, editoare de imagini)

student@uso:~/facultate/an-1/pc$ file sample-printf.c

sample-printf.c: C source, ASCII text

29 of 46

Extensia fișierelor

  • Extensii: .txt, .tex, .mp3, .bmp, .png etc.
    • Windows: .exe = executabil
    • În Linux executabilele nu au extensie
  • Interfață grafică alege programul de deschidere în funcție de extensie

29

30 of 46

Schimbarea tipului

  • Dacă schimbăm manual extensia nu înseamnă că schimbăm tipul
  • Putem schimba tipul deschizând cu un program și salvând ca alt tip
    • .bmp în .png
    • .docx în .pdf
    • .mp3 în .rar (comprimare, numită și arhivare)
    • .pdf în .rtf (OCR)
    • .pdf în .mp3 (text to voice)

30

31 of 46

Atribute pentru un fișier

31

Fișierul

uso-curs-01.pdf

Nume

uso-curs-01.pdf

Extensie

.pdf

Conținut

-

Dimensiune

1.9M

Tip de fișier

imagine, arhivă, binar, text, etc (format pdf, binar)

Informații de securitate

Permisiuni de acces

Cine a creat / modificat fișierul

Unde au fost editate ultima dată

Toate cele de mai sus, mai puțin conținutul, se cheamă metadate. Conținutul se cheamă date.

32 of 46

„We kill people based on metadata”

General Michael Hayden, former Director of the National Security Agency and Director of the Central Intelligence Agency, 2014

https://www.nybooks.com/daily/2014/05/10/we-kill-people-based-metadata/

32

33 of 46

Director vs fișier

  • aceleași metadate
  • directoarele nu au, în general, extensie
  • directoarele conțin alte fișiere și directoare (nu conțin date)

33

34 of 46

Dimensiunea datelor

  • datele sunt stocate/transferate în biți sau octeți
  • bit: valoare de 0 sau 1
  • byte (octet): 8 biți, între 0 și 255 (11111111)

34

2^10 octeți = 1024 octeți = 1KB (kilobyte)

2^20 octeți = 1048576 octeți = 1MB (megabyte)

Gigabyte, terrabyte, petabyte, exabyte

35 of 46

Operații uzuale cu fișiere

35

36 of 46

Operații uzuale cu fișiere

  • afișarea conținutului unui fișier - cat
  • deschidere unui fișier într-o aplicație
  • editarea unui fișier – vim, gedit, etc
  • crearea unui fișier - touch
  • ștergerea unui fișier - rm
  • copierea unui fișier - cp
  • mutarea/Redenumirea unui fișier - mv

36

37 of 46

Operații pe directoare

  • listarea conținutului unui director - ls
  • afișarea directorului curent - pwd
  • schimbarea unui director - cd
  • crearea unui director - mkdir
  • ștergerea unui director – rmdir, rm
  • copierea unui director - cp
  • mutarea/redenumirea unui director - mv

37

38 of 46

Linia de comandă

  • Command line interface (CLI)
  • Interfață de lucru direct cu sistemul
  • Alternativă la interfața grafică
  • Universală
  • Mai rapidă de folosit

38

39 of 46

Prompul Unix/Linux

39

student@uso:/home/student$

Utilizatorul curent

Hostname

Directorul curent

Utilizatorul nu este administrator

40 of 46

Ce este o comandă?

  • șir de caractere corespunzător unei acțiuni de executat
  • poate avea parametri
  • comanda poate eșua, caz în care urmărim informațiile afișate
  • după orice comandă de modificare/actualizare/configurare, e indicată folosirea unei comenzi de verificare/validare (cd cu pwd, touch cu ls etc)

40

41 of 46

Tipuri de utilizatori

Utilizatori neprivilegiați

  • au acces la un director home, fără alte privelegii
  • au acces la directorul /tmp
  • promptul se încheie în „$” (dollar)

41

Utilizatorul privilegiat

  • are acces la întreg sistemul de fișiere
  • controlează sistemul: gestiunea pachetelor software, gestiunea de utilizatori, gestiunea rețelei
  • promptul se încheie în „#” (diez, hash)

42 of 46

Advanced Programming in the Unix Environment

  • 1992
  • Richard W. Stevens (cărți depre Unix și TCP/IP)
  • Steven Rago – ediția a 2-a, 2005
  • Una dintre cele mai renumite cărți de programare în Unix
  • Carte de căpătâi pentru programarea de sistem
  • OSNews: „one of the best tech books ever published”

42

43 of 46

Theodore Ts’o

  • Unul dintre primii contribuitori în nucleul Linux
  • Dezvoltator și maintainer al ext2, ext3, ext4
  • Contribuții în zona sistemelor de fișiere
  • Lucrează la google
  • Autorul /dev/random/

43

44 of 46

  • www.oracle.com
  • Larry Ellison
  • Înființat în 1977
  • Al treilea producător de software (după Microsoft și IBM)
  • „flagship product” – Oracle Databse
  • A cumpărat Sun Microsystems în ianuarie 2010: servere, Java, MySQL, ZFS

44

45 of 46

  • B-tree file system
  • Copy-on-write file system
  • Open source
  • Început de Oracle în 2007
  • Înca instabil
  • Facilități similare cu ZFS de la Sun:
  • Snapshots
  • Partiții foarte mari
  • Creșterea/Reducerea dinamică a partițiilor
  • Viitorul sistem de fișiere pe Linux

45

46 of 46

Cuvinte cheie

  • fișier
  • director
  • prompt
  • comandă
  • nume
  • extensie
  • metadate
  • date
  • stat
  • date binare
  • date text
  • ascii
  • bit, byte
  • file
  • operații

46

  • cat
  • ls
  • touch
  • mkdir
  • cp
  • mv
  • rm
  • rmdir
  • pwd
  • cd
  • ierarhie
  • director rădăcină
  • cale relativă și absolută
  • separator
  • . și ..