Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • OS
  • Structura sistemului de fișiere. Sistem de fișiere Linux și structură de directoare

Structura sistemului de fișiere. Sistem de fișiere Linux și structură de directoare

Sistem de fișiere Linux OS

Una dintre cele mai componente importanteîn sistemul de operare Linux este sistemul de fișiere. V aceasta sectiune va lua în considerare conceptul Sistemul de fișiereși scopul acestuia; ierarhia sistemului de fișiere Linux OS; Tipuri de fișiere Linux OS. Restul problemelor legate de administrarea sistemului de fișiere vor fi tratate mai detaliat în Modulul 3.

Scopul sistemului de fișiere

În Linux, ca și în orice alt sistem de operare UNIX, orice obiect este un fișier stocat pe sistemul de fișiere. Un sistem de fișiere este un dispozitiv (cum ar fi un hard disk) formatat pentru a stoca fișiere. Sistemele de fișiere pot fi localizate pe hard disk-uri, dischete, CD-ROM-uri sau alte medii care permit acces aleatoriu sau secvenţial la date.

În mod convențional, sistemul de fișiere Linux poate fi împărțit în următoarele componente.

Spațiu de nume - metode de denumire a obiectelor din sistemul de fișiere și organizarea ierarhică a acestora.

Interfață de programare a aplicațiilor (API) - un set de apeluri de sistem și biblioteci concepute pentru a gestiona obiectele din sistemul de fișiere.

Model de securitate – conține schema generala protecţie, separarea drepturilor de acces la obiecte şi partajarea obiecte.

Implementare tehnica - codul programului legarea modele logice sistem de fișiere cu hardware.

Sarcinile principale ale sistemului de fișiere sunt:

ordonarea datelor stocate;

simplu și acces rapid la datele stocate;

asigurarea integritatii datelor stocate.

Formatul exact și modul de stocare a fișierelor în Linux nu contează, așa cum oferă sistemul interfata comuna pentru toate tipurile de sisteme de fișiere pe care le recunoaște. În OS fișier Linux sistemul implicit este ext3fs. Când accesați orice sistem de fișiere din sistemul de operare date Linux sunt prezentate sub forma unei ierarhii de directoare cu fișiere situate în ele, împreună cu identificatorii proprietarilor și grupurilor, biți de permisiuni și alte atribute.

Ierarhia sistemului de fișiere

Ierarhia directoarelor sistemului de fișiere Linux este conformă cu standardul UNIX Filesystem Hierarchy System (FHS). Avantajul principal a acestui standard lucru este anumite tipuri fișierele sunt localizate în directoarele lor respective.

De exemplu, majoritatea fișierelor de configurare se află în directorul / etc, iar fișierele jurnal pentru diverse servicii sunt localizate în directorul / var / log.

Descrierea directoarelor sistemului de fișiere ale sistemului de operare Linux

Directoarele / bin, / usr / bin, / usr / locl / bin, / sbin, / usr / sbin și / usr / local / sbin conțin comenzile instalate pe sistem. Când lucrați într-un sistem sub utilizator obișnuit, veți avea acces doar la comenzile de director / bin, / usr / bin și / usr / locl / bin, deoarece standardul FHS specifică că directoarele sbin ar trebui să conțină numai comenzi administrative.


Figura 1.2 Structura directorului sistemului de operare Linux

Directorul principal al sistemului de fișiere Linux OS este directorul rădăcină /. Sub directorul rădăcină sunt toate celelalte directoare create pe local subsistem disc sau montat de la dispozitive externe. A monta un sistem de fișiere înseamnă a lega un director al unui sistem de fișiere existent, numit punct de montare, la directorul rădăcină al unui nou sistem de fișiere.

Sistemul de fișiere este montat la un punct de montare folosind comanda mount. Următoarea listă prezintă un exemplu de montare unitate DVD a, care conține distribuția sistemului de operare RedHatEnterpriseLinux 5.

# mount / dev / hdc / mnt /

mount: dispozitivul de blocare / dev / hdc este protejat la scriere, se montează doar în citire

Ca urmare a executării comenzii de montare, sistemul a afișat informații despre care dispozitivul bloc (în în acest caz DVD) a fost montat în modul de citire.

Lista sistemelor de fișiere montate este stocată în fișierul / etc / fstab. Acest lucru face posibil verificare automată integritatea sistemului de fișiere folosind comanda fsck și montarea sistemelor de fișiere la bootstrap precum și executarea comenzilor scurte precum mount / var / spool. Informațiile conținute în acest fișier reflectă locațiile sistemelor de fișiere de pe disc. Fișierul / etc / fstab va fi tratat mai detaliat în Modulul 3.

Demontarea sistemelor de fișiere se face cu comanda umount. Un sistem de fișiere „blocat” nu poate fi demontat. Nu ar trebui să conțină niciunul deschide fișiere nici directoarele curente ale proceselor care rulează. Dacă sistemul de fișiere care este demontat conține programe executabile, acestea nu ar trebui să ruleze. Lista următoare arată un exemplu de demontare a unui sistem de fișiere montat anterior în directorul /mnt.

# umount / mnt # Este -1 / mnt total 0

Pentru a afla ce dispozitive sunt montate pe sistem în acest moment trebuie să rulați comanda mount fără parametri. Următoarea listă prezintă un exemplu de definire a dispozitivelor montate.

# mount / dev / sda2 on / type ext3 (rw)

proc on / proc tip proc (rw)

sunrpc on / var / lib / nfs / rpc_pipefs tip rpc_pipefs (rw) / dev / hdc on / mnt tip iso9660 (ro)

După cum puteți vedea, rezultatul comenzii mount afișează secvențial dispozitivul montat, punctul de montare, tipul sistemului de fișiere și opțiuni suplimentare montură.

Tipuri de fisiere

Când lucrați cu sistemul de operare Linux, este important să înțelegeți că orice obiect al sistemului de operare este un fișier. Aceasta este o caracteristică cheie a Linux în comparație cu sistemele de operare Windows.

Fișierele diferă atât prin structura, cât și prin scopul lor. Sistemul de operare Linux definește șapte tipuri de fișiere:

dosare obișnuite (fișiere obișnuite);

directoare;

conducte numite;

blocați fișierele dispozitivului;

fișierele dispozitivului de caractere.

Puteți determina tipul fișierului folosind comanda Is -Id. Primul caracter din linia de ieșire indică tipul fișierului. Următoarea lista oferă informații despre fișier

/ dev / hdc. # Este -Id / dev / hdc

Fișiere obișnuite

Fișierele obișnuite includ fișiere binare, biblioteci, fișiere text și diferite fișiere de aplicație. Sistemul de operare Linux nu impune nicio restricție asupra structurii de date a fișierelor. Este posibil atât accesul secvenţial, cât şi direct la conţinutul acestora.

Cataloage

Linux are așa-numitele directoare speciale. Directoare speciale, cum ar fi „." și „..” denotă directorul de lucru curent și, respectiv, directorul părinte.

În sistemul de operare Linux, se obișnuiește să se facă distincția între legăturile simbolice și cele hard, fiecare dintre ele având o semnificație specială.

O legătură simbolică vă permite să specificați un alias de fișier în loc de un nume de fișier. În procesul de căutare a unui fișier folosind legături simbolice, nucleul extrage numele stocate în ele. O legătură hard este directă, adică indică direct către inodul unui fișier, în timp ce o legătură simbolică indică un fișier după numele său. Fișierul la care se face referire printr-o legătură simbolică și legătura în sine sunt obiecte diferite în sistemul de fișiere.

Legăturile simbolice pot conține un nume arbitrar, de ex. li se permite să indice fișierele stocate în alte sisteme de fișiere și chiar către fisiere inexistente... Link-urile hard nu pot indica un fișier pe un alt sistem de fișiere.

Sistemul de operare Linux numără numărul de legături către fiecare fișier și, atunci când ștergeți un fișier, nu eliberează blocuri de date până când ultima legătură către acesta este ștearsă.

Prize

Un socket este un tip special de fișier folosit de procese pentru a comunica între ele. Conexiunile stabilite prin prize permit proceselor să comunice fără a fi influențate de alte procese. Există mai multe tipuri de prize în sistemul de operare Linux, a căror utilizare presupune prezența infrastructura retelei... Prizele locale sunt disponibile numai pe computerul local, ele sunt accesate prin obiecte speciale ale sistemului de fișiere și nu prin porturi de rețea... Aceste socket-uri sunt denumite în mod obișnuit socket-uri de domeniu UNIX (UNIXdomainsocket). Pe lângă prizele locale, există socluri de rețea care permit proceselor să comunice prin rețea.

Deși alte procese recunosc fișierele socket ca intrări de director, numai procesele care sunt conectate corect pot citi și scrie fișiere socket. Prizele locale funcționează diverse servicii Linux OS - CUPS, XWindow și Syslog.

Conducte numite ( FIFO)

Fișiere de acest tip sunt similare cu socket-urile prin faptul că sunt folosite și pentru comunicarea între procese, dar spre deosebire de socket-uri, conductele numite transferă date doar într-o singură direcție.

Fișierele dispozitivului de blocare și caractere

Fișierele dispozitivului bloc și caractere permit aplicațiilor să acceseze hardware-ul și perifericele sistemului. În etapa de configurare, modulele necesare sunt încărcate dinamic în kernel-ul Linux pentru gestionarea hardware-ului sistemului. Pentru management dispozitiv specific responsabil este un modul special numit driver de dispozitiv.

Driverele de dispozitiv formează o interfață de comunicare standard care este percepută de utilizator ca o colecție de fișiere obișnuite. La primirea unei cereri pentru un fișier de dispozitiv cu caractere sau blocuri, nucleul transmite solicitarea driverului corespunzător. Fișierele dispozitivului bloc și caractere nu sunt drivere în sine. Ele pot fi considerate ca gateway-uri prin care șoferul acceptă cererile de a efectua operațiunile preconizate.

Fișierele dispozitivului cu caractere nu sunt stocate în tampon în timpul operațiunilor I/O. Toate operațiunile I/O sunt efectuate imediat după ce sunt primite. Dispozitivele cu caractere includ terminale virtuale, modemuri și alte dispozitive care nu acceptă acces aleatoriu la date.

Linux (Linux) este un sistem de operare, care astăzi este de fapt singurul înlocuire alternativă Sistemul de operare Windows de la Microsoft. Linux își are originea în 1991, când era un tânăr programator din Finlanda Linus Torvalds a început să lucreze la prima versiune a sistemului, care a fost numită după numele său. Linux a devenit popular încă de la începuturi. Acest lucru se datorează în primul rând faptului că nucleul acestui sistem de operare, la fel ca majoritatea programelor scrise pentru acesta, are calități foarte importante.

Kernel Kernel este un sistem de operare de nivel scăzut Partea tradițională dependentă de mașină care procesează fișiere și rulează din nucleul UNIX include următoarele componente: discuri, rețea și alte operațiunile necesare... (în timp ce depinde de caracteristicile echipamentului); Nucleul sistemului de operare Linux este elementele unui sistem de arhitectură microkernel monolitic. pornirea și inițializarea sistemului la un nivel scăzut cu întreruperi; Când compilați nucleul, puteți activa procesarea primară dinamică a interne și management extern memorie (în partea care se referă la încărcarea și descărcarea foarte multor componente ale nucleului - caracteristicile suportului hardware pentru așa-numitele module virtuale. La momentul încărcării unui modul de memorie); codul său este încărcat la nivel de sistem și legat de restul nucleului. Funcțiile pot fi utilizate în interiorul modulului. orice context de proces exportat de nucleu comută între modurile utilizator și kernel; părțile specifice platformei țintă ale driverelor de dispozitiv.

Structura fișierului(sistem) / bin - binare pentru utilizator de bază / boot - fișiere de boot statice / cdrom - punct de montare ales istoric pentru CD-uri / dev - fișiere dispozitiv / etc - fișiere de configurare/ home - directoare de acasă / lib - biblioteci partajate principale / pierdut + găsit - fișiere recuperate / media - medii amovibile / proc - fișiere kernel și proces / rădăcină - directorul de acasă utilizator root/ srv - date servicii de servicii/tmp - fișiere temporare/ usr - personalizat binareși date numai în citire (prezentate în imagine)

Interfata ( înveliș grafic) Este un program care organizează interacțiunea utilizatorului cu un computer. Oferă suport pentru ferestre, meniuri, pictograme, mouse și alte elemente GUI bine-cunoscute - interfata grafica utilizator. Medii grafice mai complexe sunt construite deasupra lui X; cele mai populare sunt KDE și GNOME. GUI este o colecție de pictograme, meniuri, dialoguri, panouri, ferestre și altele elemente grafice permițând utilizatorilor să interacționeze cu ușurință cu computerul și aplicațiile. KDE și Gnome sunt medii desktop integrate. Utilizatorii lucrează cu elemente de interfață și programe.

Utilities Utilities (utilitate sau unealtă engleză) - auxiliar program de calculatorîn încorporat în Linux utilitare softwareși limbi. ca parte a compilatorului g ++ -GNU C ++; Perl este un limbaj de scripting foarte puternic; g 77 - compilator GNU FORTRAN; (parametri, setări, setări), sau faceți procesul f 2 c - un transcoder de la FORTRAN la C; modificări ale parametrilor (automatizați-l). Fort 77 este un compilator FORTRAN. Execută f 2 c și apoi general software pentru a îndeplini sarcini tipice specializate. Utilitarele oferă acces la funcții.Tipurile de utilitare de comunicații OS folosesc gcc sau g++; Utilități independente care nu necesită un sistem de operare pentru funcționarea lor, Grep - caută un fragment de text în fișiere care se potrivește cu masca tastata. Masca se determină cu Utilitare de sistem incluse în livrarea sistemului de operare și care necesită ajutorul acestuia sistem standard notație numită prezență" expresii obisnuite"; Tipuri de utilități după funcție Manageri de fișiere; Arhivatorii (cu posibilă compresie date); spectatori; Dezinstalare - software [; program pentru Tr - utilitar de traducere (cu alte cuvinte - înlocuirea literelor într-un fișier text); Gawk - GNU awk (utilizat pentru procesarea fișierelor text formatate); elimina software-ul sed - utilitar pentru procesarea fișierelor text;

Foarte diferit de dispozitivul din Windows. Pentru început, nu există unități C sau D în Linux disc fizic(sau mai multe) atunci când se instalează sistemul este împărțit în directoare și subdirectoare. Directorul principal, rădăcină, este indicat prin simbol / (slash) În loc de un fișier de schimb, există o secțiune separată / schimb... Fiecare director poate fi formatat în sistemul de fișiere dorit, în funcție de sarcinile utilizatorului. De exemplu, Ext3, ReiserFS, JFS sau altele.
În diferite distribuții Linux, schema și scopul unor directoare pot diferi ușor.
Vă puteți crea propriile cataloage. Am un director cu filme pe un hard disk separat. În secțiunea rădăcină, arată ca / ​​filme.

Descrierea directoarelor și subdirectoarelor principale din Linux:
/ cos- Contine
fișierele de comandă principale.

/ boot- Acest director conține bootloader-ul sistemului (Grub sau Lilo) și fișierele necesare pentru a porni sistemul.

/ dev- Directorul dev conține fișiere care descriu dispozitivele computerului. Pe Linux, toate dispozitivele sunt considerate fișiere. Chiar și porturi, discuri, imprimante - totul este un fișier.

/ etc- Directorul în care se află fișierele de configurare ale sistemului, programe, script-uri de pornire.
/etc/rc.d- fișiere de comandă care lansează aplicații atunci când sistemul pornește.
/ etc / passwd- toate datele utilizatorului sunt criptate în fișier.
/ etc / fstab- fișierul conține informații despre sistemele de fișiere care sunt montate automat la pornirea sistemului

/ Acasă- Utilizator, directorul principal. Pot exista mulți utilizatori pe Linux. Fiecare utilizator are propriul director (de exemplu / home / user) Acesta conține orice fișiere utilizator la care are acces direct
scrie/sterge. De asemenea, în directorul principal se află programele utilizatorului, setările. Numele lor încep cu un punct și arată, de exemplu, așa - .kde .fonts

/ lib- Aici se află diverse biblioteci de sistem, module kernel
/ lib / firmware- module de nucleu proprietare non-gratuite
/ lib / module- module kernel încărcate. De exemplu, drivere de dispozitiv, sisteme de fișiere.

/ mnt- Diverse dispozitive plug-in sunt montate temporar în acest director. Unități flash, dischete, discuri

/ opt- Directorul este instalat pachete suplimentare programe.

/ proc- Director cu un sistem de fișiere virtual. Acesta, sub formă de fișiere, conține informații despre procesele care au loc în sistem.
/ proc / module- acest fișier conține informații despre lista modulelor kernel încărcate.
/ proc / cpuinfo - informatii detaliate despre procesor.
/ proc / meminfo -
informatii despre memorie cu acces aleator.
/ proc / dispozitive- drivere de dispozitiv încorporate în nucleul sistemului.
/ proc / uptime- informații despre timpul de funcționare al sistemului. Acestea. Runtime fără repornire.
/ proc / versiune- versiunea nucleului linux folosită de sistem.
Toate aceste date pot fi trimise în consolă folosind comanda pisică.
de exemplu cat / proc / cpuinfo

/ rădăcină- Directorul principal al administratorului de sistem (superutilizator). Este folosit de administrator dacă directorul principal principal nu este disponibil dintr-un motiv oarecare.

/ sbin- Aici se află principalele programe rulate de root.

/ tmp- Director pentru stocarea temporară a datelor de către programe.

/ usr- Directorul principal pentru instalarea programelor. Pe lângă programe, conține fișiere de documentație, coduri sursă ale programelor, nuclee.
/ usr / local- acest director contine
pachete software instalate separat.
/ usr / src- surse programe instalateși sâmburi.
/ usr / om- fișiere de manuale pentru programele instalate.
/ usr / lib- fișiere de configurare imuabile și date de program.

/ var- Directorul var conține date care se modifică frecvent în timpul funcționării sistemului. De exemplu, jurnalele, cache-urile programelor.
/ var / local- date variabile ale programului, stabilit de administrator la / usr / local.
/ var / log- busteni de diverse programe de sistem.
/ var / alerga- fișiere temporare. Informațiile din ele sunt stocate până la următoarea repornire a sistemului.
/ var / tmp- director pentru fișiere temporare.

Structura fișierelor din Linux este foarte diferită de cea din Windows, prin urmare, dacă decideți să studiați serios sisteme asemănătoare UNIX, atunci, după părerea mea, este mai bine să începeți cu structura directoarelor.

Istoria cunoaște zeci de cazuri când un pilot nepregătit a aterizat cu succes un avion. Sau, de exemplu, un medic începător a efectuat cu succes o operație în conditiile de teren... Cu toate acestea, cred că aproape cineva ar fi de acord în mod voluntar să le ia locul...

Unde conduc? Și la faptul că utilizator Windows, care a văzut Linux pentru prima dată, desigur, va putea face față (intrați online sau vizionați un videoclip), însă, de îndată ce va apărea o situație anormală, nu va mai ști ce să facă!

Prin urmare, pentru a nu fi un utilizator atât de ignorant, trebuie să studiați cel puțin bazele și principiile sistemului de operare cu care intenționați să lucrați. Și în articolul de astăzi ne vom uita la structura directorului Linux, precum și la caracteristicile de partiționare a hard diskului și de montare a partițiilor.

Cum se spune, aspect poate fi înșelător. Distribuțiile moderne Linux pot, în exterior și în conformitate cu principiile de bază ale muncii, să copieze în multe feluri familiarul multora Mediul Windows... Totuși, este suficient doar să „săpăm” mai adânc și vom vedea imediat că avem ceva cu totul diferit și de neînțeles :)

Este ușor să verificați acest lucru cu un exemplu. Linux Mint... Să deschidem folderul „Computer” de pe desktop și să ne uităm la conținutul acestuia:

După cum puteți vedea, aici, cu excepția unității flash conectate, nu există o singură partiție de hard disk cu care suntem obișnuiți, cu excepția dispozitivului „Sistem de fișiere”. Este aici (sau mai degrabă, în directorul rădăcină numit "/", care uneori este numit greșit "/ root /", deși acest lucru folder separatîn „/”) în mod implicit și stochează toate datele, inclusiv fișierele de sistem și utilizator! Foarte ciudat și de neînțeles la prima vedere. Să ne dăm seama...

Faptul este că Linux adoptă o abordare radical diferită pentru organizarea și lucrul cu sistemul de fișiere din Windows. Dacă în Bazat pe Windows sunt partiții de hard disk pe care putem crea foldere arbitrare cu fișiere, apoi în Linux totul se bazează pe o ierarhie clară a directoarelor care nu depinde de partiționarea hard disk-ului și este reglementată de standardul FHS (abreviat ca „Filesystem Hierarchy Standard " - "standard pentru ierarhia sistemului de fișiere ").

Conceptul de discuri și partițiile lor, desigur, există și în Linux, dar aici principalul este tocmai structura de foldere, într-unul dintre care (de regulă, „/ media /”, „/ dev /” sau „/ mnt /") și montat tipuri diferite discuri. Discurile în sine sunt de obicei denumite în funcție de tipul conexiunii lor: SATA - sda (sdb etc., în funcție de numărul lor) și IDE - hda (hdb ...). Partițiile de pe discuri sunt pur și simplu numerotate (de exemplu, sda1, hdb2).

Directoare Linux separate pot fi mutate în diferite partiții diferite discuriși chiar la distanță stocare în rețea... Singura condiție este ca toate să fie montate înainte de pornirea sistemului. Acest lucru se face de obicei automat când rulează Linux, dar uneori poate fi necesară editarea manuală a parametrilor.

Cred că ne-am dat seama puțin despre principiile de bază ale organizării stocării informațiilor în Linux, așa că vă sugerez să vă familiarizați cu structura directoarelor în mod specific.

folderele principale Linux

În ciuda faptului că există sute de distribuții Linux, cele mai multe dintre ele au o structură de directoare similară. Pe de o parte, aceasta oferă o oarecare compatibilitate cu standardele și, pe de altă parte, confort de utilizare: unui utilizator care este obișnuit să organizeze sistemul de fișiere pe o distribuție Linux va găsi destul de ușor să treacă la alta, dacă este necesar.

În principiu, nu este necesar să cunoaștem scopul tuturor folderelor pe de rost, totuși, o astfel de cunoaștere este binevenită. Prin urmare, îmi propun să luăm în considerare sub forma unui tabel cataloagele principale, scopul lor și compararea parțială cu Componentele Windows(O descriu prin Linux Mint pe care o am, deci lista de foldere pe alte sisteme poate diferi ușor).

Catalog Programare Windows analog (dacă există)
/ Stochează întreaga structură de directoare a sistemului Drive C:
/ cos / Stochează fișiere executabile binare ale utilităților de sistem C: \ Windows \ System32
/ boot / Stochează nucleul sistemului și alte fișiere de boot C: \ Windows
/ CD ROM / Stochează punctele de montare pentru unitățile de dischetă -
/dev / Stochează fișierele dispozitivelor conectate după tip ( hard disk-uri, dispozitive video etc.) sau pseudodispozitive (de ex. / dev / null și / dev / zero) -
/ etc / Stochează unele fișiere de setări de sistem și setări ale programelor instalate Parțial C: \ Windows \ System32, parțial C: \ Fișiere de program
/ Acasă / Stochează folderele de acasă ale utilizatorilor sistemului cu setările și datele acestora C: \ Documente și setări sau C: \ Utilizatori
/ lib / Stochează majoritatea bibliotecilor programe standard iar unele stabilite Parțial C: \ Windows și C: \ Windows \ System32
/ pierdut + găsit / Stochează fișierele care de obicei rămân neînregistrate în niciunul dintre directoare ca urmare a unor erori, dar în același timp nu sunt marcate pentru suprascriere. De obicei, utilizatorul nu are acces la el. Parțial C: \ Recycler (Coș de reciclare)
/ mass-media / Stochează puncte de montare pentru toată lumea suporturi amovibile(unități flash, unități floppy, hard disk amovibile) -
/ mnt / Stochează punctele de montare temporare ale dispozitivelor și sistemele de fișiere ale acestora care au fost adăugate manual -
/ optează / Stochează pachete suplimentare de diverse programe C: \ Utilizatori \ Administrator \ Date aplicație
/proc / Stochează date despre rularea proceselorși munca nucleului de sistem Parțial Task Manager
/ radacina / Stochează date pentru superutilizatorul (rădăcină) sistemului Parțial C: \ Utilizatori \ Admin
/ alerga / Stochează fișierele temporare care sunt executate în timpul pornirii sistemului
/ sbin / Stochează majoritatea programelor de sistem pentru administrare și setări ale sistemului de operare Parțial C: \ Windows \ System32
/ srv / Stochează fișierele responsabile pentru funcționarea părții server a sistemului și diferite protocoale pentru transferul de date prin rețea (HTTP, FTP etc.) Parțial C: \ Windows \ System32
/ sys / Stochează un sistem de fișiere virtual cu date despre dispozitivele instalateși șoferii Parțial Device Manager
/tmp / Stochează fișiere temporare C: / Windows / Temp
/ usr / Stochează datele utilizatorilor sistemului și fișierele programelor instalate manual. Parțial C: \ Utilizatori \
/ var / Stochează fișiere cu diferite date în schimbare, jurnale, cache etc. -

Pe lângă folderele din directorul rădăcină în sine, ar trebui să acordați atenție și unor subdirectoare:

Catalog Programare Windows analog (dacă există)
/ etc / X11 / Stochează fișierele de setări ale sistemului X Window -
/ etc / samba / Stochează fișierele de configurare pentru serverul Samba, care este utilizat pentru comunicarea cu folderele de rețea Windows -
/ home / nume de utilizator / Stochează fișierele și configurația unui anumit cont de utilizator (dosarul principal) C: \ Utilizatori \ Nume utilizator
/ usr / bin / Stochează un număr de programe care sunt necesare pentru a funcționa în modul multiutilizator -
/ usr / share / Stochează datele generale ale programelor instalate -
/ usr / src / Stochează fișiere cu codurile sursă ale nucleului de sistem -
/ var / cache / Stochează cache-urile software și pachetele software descărcate din depozit -
/ var / jocuri / Stochează salvările și realizările jocurilor instalate -
/ var / jurnal / Stochează jurnalele (jurnalele) ale sistemului și programele instalate -
/ var / mail / Stochează setările cutiile poştale utilizatorii -
/ var / rula / Stochează date despre procesele care rulează și daemoni Parțial Task Manager
/ var / tmp / Stochează fișierele temporare salvate la repornirile sistemului -
/ var / www / Stochează paginile web procesate de serverul local -

Câteva despre sistemele de fișiere

Deoarece am decis să înțelegem mai mult sau mai puțin amănunțit structura directoarelor Linux, nu putem să nu menționăm un lucru atât de important precum sistemul de fișiere.

În Windows, suntem obișnuiți să folosim NTFS tradițional și să nu ne păcălim (bine, și FAT32 pe unități flash sau UDF pe discuri). În lumea Linux, totuși, totul este mult mai divers. Există suport pentru toate Windows FS, dar se recomandă utilizarea sisteme speciale optimizat pentru sistemul de operare asemănător UNIX.

Toate sistemele de fișiere pot fi împărțite condiționat în două grupuri: jurnalizate și non-jurnalizate. Sistemele de fișiere de jurnal alocă un anumit loc pentru stocarea unui jurnal cu o listă de fișiere pe un computer, atributele și locația acestora. Sunt mai toleranți la erori și garantează o mai mare integritate a datelor. Sistemele fără jurnal sunt mai rapide și nu necesită spațiu pentru stocarea jurnalului, cu toate acestea, nu garantează stocarea stabilă a informațiilor, deoarece efectuează toate acțiunile cu fișiere direct, fără a scrie în jurnal.

Pentru a nu enumera toate sistemele de fișiere disponibile astăzi, cred că este mai bine să le menționăm doar pe cele mai bune, care sunt cea mai bună alegere pentru Linux.

  1. Ext4 este un sistem de fișiere jurnal care este standard pe majoritatea distribuțiilor Linux moderne. Este bine protejat de problemele de fragmentare și este optimizat pentru a funcționa fișiere mari... Dacă în timpul instalării nu ați format manual partiția pentru sistem, atunci cel mai probabil aveți Ext4.
  2. Ext2- sistemul de fișiere non-journal, care era principalul pentru vechile distribuții Linux (până în anii 2000). Are o serie de restricții privind lucrul cu fișiere mari, totuși, în același timp, este cel mai rapid FS, așa că este adesea folosit în diverse teste comparative ca referință.
  3. Reiser4 este un sistem de fișiere de jurnal pe care mulți utilizatori avansați îl recomandă pentru utilizare pe Linux. Avantajul său este stabilitatea bună și viteza mare lucru, care, în plus, poate fi îmbunătățit și mai mult prin activarea unui plug-in special pentru compresia datelor.
  4. btrfs(de asemenea, B-tree FS) este un sistem de fișiere de jurnal dezvoltat de o cunoscută companie Oracle destul de recent (în 2007). Caracteristicile sale includ stocarea indexului fișierului în așa-numitele „arbore B” - structuri ierarhice care profită la maximum de resursele RAM datorită adâncimii mici de imbricare a datelor.
  5. SWAP- un tip special de sistem de fișiere non-jurnal care implementează o structură de stocare a datelor similară cu structura celulară a memoriei cu acces aleatoriu. Din acest motiv, este folosit pentru a implementa fișierul swap în Linux.

Cele mai multe distribuții moderne au implicit HDD formatat în Ext4, precum și SWAP, pentru care este alocată o dimensiune similară cu dimensiunea RAM instalată. Acesta este, de exemplu, aspectul standard al discului pentru Linux Mint, care este produs dacă nu aveți nicio influență asupra partiționării manuale:

Cu toate acestea, utilizatorii avansați sunt sfătuiți să pre-partiționeze discul într-un mod mai „sofisticat” înainte de instalare pentru a asigura o mai bună siguranță a datelor în timpul unei reinstalări forțate a sistemului, prin montarea directoarelor separate pe partițiile create. Să luăm în considerare câteva „rețete” similare pentru partiționarea unui disc.

Dispunerea discului

Cred că ați înțeles deja de ce tot acest dans cu secțiuni diferite. Dacă, de exemplu, spargi ceva în instalația într-un mod regulat(pe partiție) Sistemul Linux, veți pierde inevitabil toate datele de utilizator la reinstalare! Cu toate acestea, dacă sunt depozitate separat de fișiere de sistem, apoi reinstalarea va trebui doar să atingeți directoarele de sistem și să montați mai târziu directoarele de utilizatori existente.

Prima opțiune pentru partiționare este să mutați directorul „/ home /” pe o partiție separată de disc. Adică, de fapt, trebuie să împărțim discul în trei partiții:

Dacă plănuiești încărcare dublă odată cu instalarea Windows, atunci este mai bine să înlocuiți sda1 și sda2 cu două partiții formatate în NTFS pentru cele trei partiții de mai sus: una pentru discul C și, respectiv, a doua pentru discul D.

Utilizatorii mai avansați tind să creeze un aspect de disc mai complex, ținând cont de împărțirea acestuia în zone separate de pornire și zone de execuție a programului:

Practic, unii utilizatori montează directoarele menționate mai sus pe sda4 pe partiții separate, iar unii nu le selectează deloc. Totul depinde de sarcinile pe care intenționați să le rezolvați pe computer. Dacă nu v-ați hotărât încă cum veți folosi directoarele individuale, atunci vă recomand să lăsați câteva zeci de gigaocteți de spațiu pe hard disk nealocați „în rezervă”. Deci, puteți remonta directoarele necesare pe partițiile nou create oricând direct de sub sistemul dumneavoastră.

Și cel mai important lucru este cum să creați aceste secțiuni! Pentru a face acest lucru, recomand să descărcați programul deja menționat în formular imaginea de boot, scrieți această imagine pe o unitate flash USB sau pe un disc și porniți de pe ea.

În timpul procesului de pornire de pe LiveCD, vi se vor pune o serie de întrebări despre opțiunile de pornire. Lăsăm totul implicit peste tot, cu excepția ecranului cu alegerea limbii. Acolo va trebui să introduceți numărul corespunzător Interfață în limba rusă(L-am avut "22"). În toate celelalte întrebări, trebuie doar să apăsați Enter și, ca rezultat, vom ajunge la desktopul virtual al sistemului de operare Debian cu GParted care rulează:

Dacă ați ales interfața rusă, atunci nu veți avea probleme cu lucrul în program, chiar dacă decideți să repartiționați discul cu deja sistem instalat... Algoritmul acțiunilor este următorul:

  1. Selectați secțiunea existentă pe care doriți să o împărțiți și faceți clic pe butonul „Redimensionați sau mutați” sau paragraf similarîn meniul contextual.
  2. În fereastra care se deschide, folosind glisoare sau ferestre pentru introducerea numerelor, setați noua dimensiune a partiției și decalajul acesteia de la începutul sau sfârșitul discului (rețineți că rădăcina și swap-ul sunt mai bine plasate mai aproape de început).
  3. Selectați zona nealocată nou creată și faceți clic pe butonul „Nou” din bara de instrumente sau din meniul contextual.
  4. În fereastra care se deschide, setați tipul de sistem de fișiere, eticheta de volum și alți parametri.
  5. Repetăm ​​pașii de mai sus de câte ori este necesar, după care aplicăm toate modificările și așteptăm până sunt finalizate.

Acum nu mai este mult. Instalați sistemul în directorul rădăcină (dacă nu a fost instalat încă) și porniți-l. Acum toate directoarele sunt pe o partiție și trebuie să le remontăm pe alte zone de disc special create. Acest lucru se poate face aproape în întregime în modul vizual sau folosind terminalul. Pentru a fi mai clar, să ne uităm la procesul de transfer folosind exemplul directorului / home / în modul semi-vizual.

Dacă decideți să faceți totul vizual, atunci deschideți, de exemplu, folderul / mnt / sau / media / și în el creați un folder temporar (să-l numim / newhome /) pentru a transfera date. Acum mai trebuie să pornim terminalul pentru a monta folderul nou creat pe partiția în care dorim să transferăm folderul / home /. Acest lucru se face cu o comandă de forma:

Desigur, în loc de „ext4” vei specifica sistemul tău de fișiere, iar în loc de „sda5” partiția în care vei transfera folderul. Când partiția este montată și folderul este pe ea, deschideți-o și copiați tot conținutul curent al directorului / home / acolo. După finalizarea copierii, demontați partiția din folder cu următoarea comandă:

$ sudo umount / mnt / newhome

Acum folderul existent/ home / poate fi fie complet șters (sau mai bine redenumit, de exemplu, în / oldhome /) și recreat, fie pur și simplu curățat complet. Principalul lucru este că avem un director gol / home /. Acum haideți să instalăm secțiunea noastră cu datele copiate aici:

$ sudo mount / dev / sda5 / home

Dacă totul a mers bine, atunci toate fișierele pe care le-am copiat vor apărea în directorul / home /. Adică, de fapt, transferul a fost finalizat cu succes. Tot ce rămâne este să consolidăm succesul și să ne asigurăm că nu trebuie să ne montem manual directorul de fiecare dată când sistemul pornește. Pentru a face acest lucru, vom folosi editarea fișierului fstab (abreviat din limba engleză „file systems table” - „file system table”), care se află în directorul / etc /. O vom deschide cu oricare editor de text iar la final adăugăm următoarea linie:

/ dev / sda5 / home ext4 nodev, nosuid 0 2

Prin aceasta, literalmente „spunem” sistemului următoarele: pe partiția / dev / sda5 există un director / home / formatat în sistemul ext4, în care nu puteți crea un director cu configurația dispozitivului (/ dev /) și operațiuni cu biți suid și sgid sunt de asemenea interzise, ​​dezactivate backup iar sistemul de fișiere este montat în a doua trecere (sistemul rădăcină este întotdeauna montat în prima).

Reporniți și bucurați-vă :) Pentru tocilari adevărați, voi spune că toate operațiunile (cu excepția editării fstab) ar putea fi făcute chiar în consolă cu aproximativ următoarea secvență de comenzi:

$ sudo mkdir / mnt / newhome

$ sudo mount -t ext4 / dev / sda5 / mnt / newhome

$ găsi. -adâncime -print0 | sudo cpio --null --sparse -pvd / mnt / newhome /

$ sudo umount / mnt / newhome

$ sudo mv / home / oldhome

$ sudo mkdir / home

$ sudo mount / dev / sda5 / home

sudo gedit / etc / fstab

concluzii

Înțelegerea structurii directoarelor și aplicarea primei comenzile consolei oferă unui utilizator începător o idee destul de bună despre structura sistemului și învață gândirea categorii Linux... În practică, nu este nimic deosebit de dificil în partiționarea și montarea partițiilor de disc, dar aceste acțiuni măresc semnificativ stabilitatea sistemului de operare, așa că se recomandă să fie făcute în primul rând la instalarea unui nou sistem.

Petrecând puțin timp optimizării structurii directoarelor, vă veți face Linux-ul mai fiabil în ceea ce privește stocarea informațiilor și, în viitor, vă veți economisi o mulțime de nervi și eforturi!

P.S. Aveți voie să copiați și să citați în mod liber acest articol, cu condiția să indicați un deschis link activ la sursa și păstrarea paternului lui Ruslan Tertyshny.

Noțiuni de bază

Sistemul de operare Linux este proiectat în conformitate cu cerințele standardului internațional pentru sistemele compatibile UNIX IEEE POSIX, așa că ar fi logic să luăm în considerare mai întâi pe scurt structura sistemului de fișiere UNIX OS.

Unul dintre avantajele sistemului de operare UNIX este că se bazează sistemul numar mic concepte clare intuitiv. Cu toate acestea, în ciuda simplității acestor concepte, trebuie să vă obișnuiți cu ele. Fără aceasta, este imposibil să înțelegem esența sistemului de operare UNIX.

Utilizator

De la început, UNIX a fost conceput ca un sistem interactiv. Cu alte cuvinte, UNIX este pentru lucru terminal... Pentru a începe să lucreze, o persoană trebuie să se „logeze” la sistem introducând numele contului său și, eventual, parola dintr-un terminal gratuit. Persoana care este înregistrată în conturile de sistem și, prin urmare, are numele contului, se numește utilizatorul înregistrat al sistemului. Înregistrarea noilor utilizatori se face de obicei de administratorul de sistem. Utilizatorul nu își poate schimba numele contului, dar își poate seta și/sau schimba parola. Parolele sunt stocate în dosar separatîn formă codificată. Nu uitați parola, nici măcar administratorul nu vă va ajuta să o aflați!

Toți utilizatorii UNIX lucrează cu fișiere, fie explicit, fie implicit. Sistemul de fișiere UNIX OS are o structură arborescentă. Nodurile intermediare ale arborelui sunt directoare cu link-uri către alte directoare sau fișiere, iar frunzele arborelui corespund fișierelor sau directoarelor goale. Fiecare utilizator înregistrat are un director corespunzător în sistemul de fișiere, care se numește directorul „acasă” al utilizatorului. Când un utilizator se conectează, are acces nerestricționat la directorul său principal și la toate directoarele și fișierele conținute în acesta. Utilizatorul poate crea, șterge și modifica directoare și fișiere conținute în directorul principal. Accesul la toate celelalte fișiere este posibil, dar poate fi limitat dacă utilizatorul nu are suficiente privilegii.

Sistemul de fișiere

Conceptul de fișier este unul dintre cele mai importante pentru sistemul de operare UNIX. Toate fișierele pe care utilizatorii le pot manipula sunt localizate în sistemul de fișiere, care este un arbore cu noduri intermediare corespunzătoare directoarelor și frunze - fișiere și directoare goale. O structură exemplificativă a sistemului de fișiere UNIX este prezentată în Figura 2.1. Cu adevărat pe toată lumea unitate logică(secțiunea fizică pachet de disc) este o ierarhie separată de directoare și fișiere. Pentru a obține un arbore comun în dinamică, ierarhiile separate sunt „montate” la un sistem de fișiere rădăcină fix.

Cometariu:În lumea UNIX, din motive istorice, termenul „sistem de fișiere” este unul supraîncărcat, adică atât directorul și ierarhia fișierelor, cât și partea din kernel care gestionează directoare și fișiere. Aparent, ar fi mai corect să numim ierarhia directoarelor și fișierelor o arhivă de fișiere și să folosim termenul „sistem de fișiere” doar în al doilea sens. Cu toate acestea, urmând tradiția sistemului de operare UNIX, vom folosi acest termen în două sensuri, distingând sensurile în context.

Fiecare director și fișier din sistemul de fișiere are un unic Numele complet(În sistemul de operare UNIX, acest nume este de obicei numit nume de cale completă - numele care specifică calea completă, deoarece specifică într-adevăr calea completă de la rădăcina sistemului de fișiere prin lanțul de directoare până la directorul sau fișierul corespunzător; voi folosi termenul „nume complet”, deoarece nu există un nume de cale eufonic analog rus). Un director care este rădăcina unui sistem de fișiere (directorul rădăcină) are un nume predefinit „/” (slash) în orice sistem de fișiere. Un nume de fișier complet calificat, cum ar fi / bin / sh înseamnă că directorul rădăcină trebuie să conțină numele directorului bin, iar directorul bin trebuie să conțină numele fișierului sh. Un nume de fișier scurt sau relativ (nume de cale relativă) este un nume (eventual compus) care specifică calea către fișier din directorul de lucru curent (există o comandă și un apel de sistem corespunzător care vă permite să setați directorul de lucru curent).

Fiecare director conține două nume speciale, numele „.”, care denumește directorul în sine și numele „..”, care denumește directorul „părinte” al acestui director, adică directorul care îl precede imediat pe cel dat în ierarhia directoarelor.

Orez. 2.1. Structura directorului sistemului de fișiere

UNIX acceptă numeroase utilitare care vă permit să lucrați cu sistemul de fișiere și sunt disponibile ca comenzi shell. Iată câteva dintre ele (cele mai comune):

Structura sistemului de fișiere

Sistemul de fișiere este de obicei localizat pe discuri sau alte dispozitive memorie externa având o structură de bloc. Pe lângă blocurile care stochează directoare și fișiere, mai multe zone de servicii sunt acceptate în memoria externă.

În lumea UNIX, există mai multe tipuri diferite de sisteme de fișiere cu propria lor structură de memorie externă. Cel mai cunoscut este dosarul tradițional sistem UNIX System V (s5) și sistemul de fișiere UNIX BSD (ufs). Sistemul de fișiere s5 este format din patru secțiuni (Figura 2.2, a). În sistemul de fișiere ufs de pe un disc logic (o partiție a unui disc real) există o secvență de secțiuni ale sistemului de fișiere (Figura 2.2, b).

Orez. 2.2. Structura de memorie externă a sistemelor de fișiere s5 și ufs

Să descriem pe scurt esența și scopul fiecărei zone de disc.

    Blocul de pornire conține un program de amplificare care este utilizat pentru a porni sistemul de operare UNIX pentru prima dată. În sistemele de fișiere s5, numai blocul de pornire al sistemului de fișiere rădăcină este de fapt utilizat. Sistemele de fișiere suplimentare au această zonă, dar nu sunt utilizate.

    Superblocul este zona cea mai critică a sistemului de fișiere, care conține informații necesare pentru a lucra cu sistemul de fișiere ca întreg. Superblocul conține o listă de blocuri libere și i-noduri libere (noduri de informații). Copii multiple ale superblocului sunt menținute pe sistemele de fișiere ufs pentru a îmbunătăți rezistența (după cum se vede în Figura 2.2b, o copie per grup de cilindri). Fiecare copie a superblocului are o dimensiune de 8196 de octeți și o singură copie a superblocului este utilizată atunci când sistemul de fișiere este montat (vezi mai jos). Totuși, dacă montura determină că copia primară a superblocului este deteriorată sau nu îndeplinește criteriile de integritate, se folosește backup-ul.

    Un bloc de grup de cilindri conține numărul de i-noduri specificat în lista de i-noduri pentru un anumit grup de cilindri și numărul de blocuri de date care sunt asociate cu aceste i-noduri. Dimensiunea blocului grupului de cilindri depinde de dimensiunea sistemului de fișiere. Pentru a îmbunătăți eficiența, sistemul de fișiere ufs încearcă să plaseze i-noduri și blocuri de date pe același grup de cilindri.

    Lista de i-noduri (ilist) conține o listă de i-noduri corespunzătoare fișierelor din sistemul de fișiere dat. Număr maxim Numărul de fișiere care pot fi create pe un sistem de fișiere este determinat de numărul de i-noduri disponibile. i-node stochează informații care descriu fișierul: moduri de acces la fișiere, ora creării și ultimei modificări, ID-ul utilizatorului și ID-ul grupului al creatorului fișierului, descrierea structurii blocului de fișiere etc.

    Blocuri de date - Această parte a sistemului de fișiere stochează datele reale ale fișierelor. În cazul sistemului de fișiere ufs, toate blocurile de date ale unui fișier sunt încercate să fie plasate pe același grup de cilindri. Mărimea blocului de date este determinată la formatarea sistemului de fișiere cu comanda mkfs și poate fi setată la 512, 1024, 2048, 4096 sau 8192 octeți.

Sisteme de fișiere montabile

Fișierele oricărui sistem de fișiere devin accesibile numai după „montarea” acestui sistem de fișiere. Fișierele dintr-un sistem de fișiere „demontat” nu sunt vizibile pentru sistemul de operare.

Apelul mount system este folosit pentru a monta sistemul de fișiere. Montarea unui sistem de fișiere înseamnă următoarele. Arborele directoarelor și fișierelor existente la momentul montării trebuie să aibă un nod frunză - un director gol (în terminologia UNIX, un astfel de director folosit pentru a monta un sistem de fișiere se numește punct de montare a directorului). Orice sistem de fișiere are un director rădăcină. În timpul executării apelului sistemului de montare, directorul rădăcină al sistemului de fișiere montat este combinat cu directorul - punctul de montare, în urma căruia se formează o nouă ierarhie cu numele complet calificate ale directoarelor și fișierelor.

Sistemul de fișiere montat poate fi ulterior detașat din ierarhia generală folosind apelul de sistem umount. Executarea cu succes a acestui apel de sistem necesită ca sistemul de fișiere care urmează să fie detașat să nu fie utilizat în acest moment (adică, niciun fișier din acest sistem de fișiere nu a fost deschis). Sistemul de fișiere rădăcină este întotdeauna montat, iar apelul de sistem umount nu poate fi aplicat acestuia.

După cum am menționat mai sus, un sistem de fișiere separat este de obicei localizat pe un disc logic, de exemplu. pe o partiție de disc fizic. Nu sunt acceptate apeluri speciale de sistem pentru a inițializa sistemul de fișiere. Noul sistem de fișiere este creat pe un disc formatat folosind utilitarul (comandă) mkfs. Sistemul de fișiere nou creat este inițializat într-o stare corespunzătoare prezenței unui singur director rădăcină gol. Comanda mkfs efectuează inițializarea prin scrierea datelor corespunzătoare direct pe disc.

Interfața sistemului de fișiere

Nucleul UNIX acceptă mai multe apeluri de sistem pentru a manipula fișiere. Printre ele, cele mai importante sunt open, creat, read, write, lseek și close.

Este important de menționat că, deși un fișier obișnuit este reprezentat ca un set de blocuri de memorie externă în cadrul subsistemului de gestionare a fișierelor, utilizatorilor li se oferă o reprezentare a fișierului ca o secvență liniară de octeți. Această reprezentare permite utilizarea abstracției fișierelor atunci când lucrați în dispozitive externe, la organizarea comunicațiilor interprocese etc.

Un fișier din apelurile de sistem care oferă acces real la date este identificat prin descriptorul său (valoare întreagă). Descriptorul de fișier este emis de apelurile de sistem deschise (deschideți un fișier) și create (creați un fișier). Parametrul principal al operațiunilor de deschidere și creare a unui fișier este numele complet sau relativ al fișierului. În plus, la deschiderea unui fișier, sunt indicate și modul de deschidere (doar citire, doar scriere, scriere și citire etc.) și o caracteristică care determină capacitatea de a accesa fișierul:

deschis (nume cale, oflag [, mod])

Unul dintre semnele care pot participa la parametrul oflag este semnul O_CREAT, a cărui prezență indică necesitatea creării unui fișier dacă, la executarea apelului de sistem deschis, un fișier cu numele specificat nu există (parametrul mode are sens numai dacă acest flag este prezent). Cu toate acestea, din motive istorice și pentru a asigura compatibilitatea cu Versiunile anterioare Sistemul de operare UNIX acceptă separat apelul de sistem creat, care îndeplinește în esență aceleași funcții.

Un fișier deschis poate fi folosit pentru a citi și scrie secvențe de octeți. Două apeluri de sistem sunt acceptate pentru aceasta:

citiți (fd, buffer, count) și scrieți (fd, buffer, count)

În cazul în care fd este un descriptor de fișier (obținut dintr-un apel de sistem deschis sau creat executat anterior), buffer este un indicator al matricei de caractere, iar count este numărul de octeți care trebuie citiți sau scrieți în fișier. Funcția de citire sau scriere este un număr întreg care este același cu numărul dacă operația reușește, zero când se ajunge la sfârșitul fișierului și negativ când apar erori.

Fiecare fișier deschis are o poziție curentă. Imediat după deschidere, fișierul este poziționat la primul octet. Cu alte cuvinte, dacă apelul de sistem de citire (sau scriere) este executat imediat după deschiderea fișierului, primii octeți de numărare a conținutului fișierului vor fi citiți (sau scrieți) (desigur, aceștia vor fi citiți cu succes numai dacă fișierul efectiv conține cel puțin un număr de octeți). După ce apelul de sistem de citire (sau scriere) este executat, indicatorul de citire/scriere a fișierului va fi setat să conteze + 1 și așa mai departe.

Un astfel de stil de lucru pur secvențial se dovedește a fi suficient în multe cazuri, dar este adesea necesar să citim sau să modificați un fișier dintr-o poziție arbitrară (de exemplu, cum putem stoca matrice de date indexate direct în fișier fără o astfel de oportunitate? ?). Pentru a poziționa în mod explicit fișierul, utilizați apelul de sistem

lseek (fd, offset, origine)

Ca și înainte, aici fd este un mâner pentru un fișier deschis anterior. Parametrul offset specifică decalajul relativ al pointerului de citire/scriere, iar parametrul de origine specifică locul unde trebuie aplicat offset-ul. Există trei valori posibile pentru parametrul de origine. O valoare de 0 indică faptul că offset-ul trebuie tratat ca un offset de la începutul fișierului. O valoare de 1 înseamnă că offset este un offset față de poziția curentă a fișierului. În cele din urmă, o valoare de 2 indică faptul că offset-ul este relativ la sfârșitul fișierului. Rețineți că tipul de date al parametrului offset este long int. Aceasta înseamnă că, în primul rând, pot fi specificate decalaje suficient de lungi și, în al doilea rând, decalajele pot fi pozitive și negative.

De exemplu, după executarea apelului de sistem

indicatorul de citire/scriere al fișierului corespunzător va fi setat la începutul (primul octet) al fișierului. Apel de sistem

Sistem de fișiere UNIX... comenzi. Figura 1.2. Structura directoarele OS Linux Directorul principal fişier sisteme OS Linux este directorul rădăcină...

  • Instalare sala de operatie sisteme Linux

    Rezumat >> Informatică

    Metode de management puternice și flexibile fişier sisteme Linux sau Linux-cum ar fi sistemele de operare. În multe... un singur copac structura cataloage, și asta structura poate cuprinde mai multe secțiuni. Când fişier sistem montat...

  • Top articole similare