Datamaskinens filsystem. Filsystem og filstruktur

Autonom FS. Foreningen av FS. Montering .

Brukere får tilgang til filer med symbolske navn. Imidlertid begrenser menneskelig hukommelse antallet objektnavn som en bruker kan referere til ved navn. Den hierarkiske organiseringen av navneområdet lar deg utvide disse grensene betydelig. Dette er grunnen til at de fleste filsystemer har hierarkisk struktur, der nivåer opprettes ved å gjøre katalogen mer lavt nivå kan inkluderes i katalogen for mer enn høy level.

Ris. Filsystemhierarki

Kraftige datamaskiner er vanligvis utstyrt med stort beløp diskstasjoner som diskpakker er installert på. Ved å bruke OS-verktøy kan én fysisk enhet representeres som flere logiske enheter ved å dele diskplassen i partisjoner. Spørsmålet oppstår: hvordan organisere fillagring i et system med flere enheter? eksternt minne?

    Hver enhet er vert for et autonomt filsystem, det vil si at filene på denne enheten er beskrevet av et katalogtre som på ingen måte er koblet til katalogtrærne på andre enheter. I dette tilfellet, for å identifisere filen unikt, må brukeren spesifisere den logiske enhetsidentifikatoren sammen med det sammensatte symbolske filnavnet. ( MS-DOS system, hvori fullt navn filen inkluderer den logiske stasjonsbokstavidentifikatoren: for eksempel A:\privat\letter\uni\let1.doc.)

    organisering av fillagring, der brukeren gis mulighet til å kombinere filsystemer plassert på forskjellige enheter, inn i et enkelt filsystem beskrevet av et enkelt katalogtre. Denne operasjonen kalles montering .

La oss se på hvordan denne operasjonen utføres ved å bruke UNIX OS som et eksempel. Blant alle logiske diskenheter som er tilgjengelige i systemet, skiller operativsystemet én enhet, kalt system én. La det være to filsystemer plassert på forskjellige logiske stasjoner (fig. 4), og en av stasjonene er systemstasjonen. Filsystemet som ligger på systemdisken er utpekt som roten. For å koble sammen filhierarkier i rotfilsystemet, velges en eksisterende katalog, i dette eksemplet mannkatalogen. Når monteringen er fullført, blir den valgte mann-katalogen rotkatalogen til det andre filsystemet. Gjennom denne katalogen er det monterte filsystemet knyttet som et undertre til det overordnede treet (fig. 5). Når et delt filsystem er montert, er det ingen logisk forskjell for brukeren mellom rot- og monterte filsystemer; spesielt filnavning gjøres på samme måte som om det hadde vært et enkelt filsystem helt fra begynnelsen.

Ris. Delt filsystem etter montering

1.7. Logisk filorganisering

Generelt har dataene i en fil en viss logisk struktur. Vedlikehold av datastrukturen kan enten overlates helt til applikasjonen, eller i en eller annen grad kan dette arbeidet overtas av filsystemet.

Strukturert og ustrukturert fil

I det første tilfellet, når alle handlinger knyttet til strukturering og tolkning av innholdet i filen som helhet forholde seg til vedlikehold av applikasjonen, blir filen presentert for FS ustrukturert sekvens av data. En applikasjon foretar I/O-forespørsler til filsystemet ved å bruke systemverktøy som er felles for alle applikasjoner, for eksempel å spesifisere offset fra begynnelsen av filen og antall byte som skal leses eller skrives. Bytestrømmen mottatt av applikasjonen tolkes i samsvar med logikken som er innebygd i programmet. For eksempel genererer kompilatoren, og lenkeredigereren godtar, et veldig spesifikt format for programobjektmodulen. Dessuten er filformatet som objektmodulen er lagret kun kjent for disse programmene. Vi understreker at tolkningen av data ikke har noe å gjøre med den faktiske måten de er lagret på i filsystemet. Filmodellen, der innholdet i en fil er representert som en ustrukturert sekvens (strøm) av bytes, ble populær med UNIX OS, og er nå mye brukt i de fleste moderne operativsystemer, inkludert MS-DOS, Windows NT/2000 , NetWare. Den ustrukturerte filmodellen gjør det enkelt å organisere fildeling mellom flere applikasjoner: forskjellige applikasjoner kan strukturere og tolke dataene i filen på sin egen måte.

En annen filmodell som ble brukt i OS/360, DEC RSX og VMS, men som sjelden brukes i dag, er strukturert fil. I dette tilfellet er vedlikehold av filstrukturen overlatt til filsystemet. Filsystem ser på filen som en ordnet sekvens av logiske poster. En applikasjon kan kontakte filsystemet med I/O-forespørsler på rekordnivå, for eksempel "les post 25 fra filen FILE.DOC." Filsystemet må ha tilstrekkelig informasjon om filstrukturen til å velge en post. Filsystemet gir applikasjonen tilgang til journalen, og all viderebehandling av dataene i denne journalen utføres av applikasjonen. Utviklingen av denne tilnærmingen har blitt databasestyringssystemer (DBMS), som ikke bare støtter kompleks struktur data, men også relasjonene mellom dem.

Filstrukturering

Logisk inngang er det minste dataelementet som en programmerer kan betjene når han organiserer en utveksling med en ekstern enhet. Selv om fysisk kommunikasjon med enheten utføres i store enheter, må operativsystemet gi programmereren tilgang til en enkelt logisk post. Filsystemet kan bruke to måter å få tilgang til logiske poster:

Metoder for strukturering :

    Størrelsen på en post er fast i en fil, og poster i forskjellige filer som tilhører samme filsystem kan ha forskjellige størrelser. I dette tilfellet utføres tilgang til den n-te posten i filen enten ved sekvensiell lesing av (n-1) tidligere poster, eller direkte på adressen beregnet av serienummeret. For eksempel, hvis L er lengden på posten, så initialen n'te adresse posten er lik Lxn.

    Representasjon av data som en sekvens av poster, hvis størrelse varierer innenfor en enkelt fil. For søk ønsket oppføring systemet må lese alle tidligere poster sekvensielt. Beregn adressen til den ønskede posten etter nummeret med en slik logisk organisasjon fil er ikke mulig, og kan derfor ikke brukes lenger effektiv metode direkte adgang...

    Indekserte filer gir raskere direkte tilgang til en individuell logisk post. Poster har ett eller flere nøkkelfelt (indeks) og kan adresseres ved å spesifisere verdiene til disse feltene. Til raskt søk data i den indekserte filen er gitt spesiell indekstabell, der verdiene til nøkkelfeltene er tilordnet den eksterne minneadressen. Denne adressen kan enten peke direkte til posten som søkes, eller til et område av eksternt minne okkupert av flere poster, som inkluderer posten som søkes. Filsystemet tar over vedlikeholdet av indekstabeller. Det er klart at poster i indekserte filer kan være av vilkårlig lengde.

Alt det ovennevnte gjelder i større grad for vanlige filer, som enten kan være strukturert eller ustrukturert. Når det gjelder andre typer filer, har de en viss struktur som er kjent for filsystemet. For eksempel må et filsystem forstå strukturen til dataene som er lagret i filkatalog eller filtypen "symbolsk lenke».

God dag, kjære bruker, i denne artikkelen vi vil snakke om et emne som filer. Vi skal nemlig se på: Filbehandling, filtyper, filstruktur , filattributter.

Filsystem

En av hovedoppgavene til operativsystemet er å gi brukeren bekvemmelighet når han arbeider med data som er lagret på disker. For å gjøre dette erstatter operativsystemet den fysiske strukturen til de lagrede dataene med en brukervennlig logisk modell, som er implementert i form av et katalogtre som vises på skjermen av verktøy som Norton Commander, Far Manager eller Windows utforsker. Det grunnleggende elementet i denne modellen er fil, som er det samme som filsystem generelt, kan karakteriseres av både logisk og fysisk struktur.

Filbehandling

Fil– et navngitt område med eksternt minne beregnet for lesing og skriving av data.

Filer lagres i strømuavhengig minne. Unntaket er elektronisk disk, når en struktur som simulerer et filsystem opprettes i OP.

Filsystem(FS) er en OS-komponent som sørger for organisasjon for opprettelse, lagring og tilgang til navngitte datasett - filer.

Filsystemet inkluderer: Filsystemet inkluderer:

  • Samlingen av alle filer på disken.
  • Sett med datastrukturer som brukes til å administrere filer (filkataloger, filbeskrivelser, ledig og brukt diskplassfordelingstabeller).
  • Kompleks av systemet programvare, implementere ulike operasjoner over filer: opprettelse, ødeleggelse, lesing, skriving, navngi, søk.

Oppgavene som løses av FS avhenger av organiseringsmetoden databehandlingsprosess som regel. Den enkleste typen er et filsystem i enkeltbruker- og enkeltprogramoperativsystemer. Hovedfunksjonene i en slik FS er rettet mot å løse følgende oppgaver:

  • Navngi filer.
  • Programvaregrensesnitt for applikasjoner.
  • Viser logisk modell FS for den fysiske organiseringen av datavarehuset.
  • FS motstand mot strømbrudd, maskinvare- og programvarefeil.

FS-oppgaver blir mer kompliserte i multitasking-operativsystemer for én bruker, som er designet for arbeidet til én bruker, men som gjør det mulig å kjøre flere prosesser samtidig. Til oppgavene oppført ovenfor legges en ny oppgave - delt tilgang til en fil fra flere prosesser.

Filen i dette tilfellet er en delt ressurs, noe som betyr at FS må løse hele spekteret av problemer knyttet til slike ressurser. Spesielt: det må være midler for å blokkere en fil og dens deler, avstemme kopier, forhindre løp og eliminere vranglåser. I flerbrukersystemer vises en annen oppgave: Beskytte filene til én bruker mot uautorisert tilgang fra en annen bruker.

Funksjonene til FS, som opererer som en del av et nettverks-OS, blir enda mer komplekse; det må organisere beskyttelse filerén bruker fra uautorisert tilgang til en annen bruker.

Hovedhensikt filsystem og tilsvarende det filbehandlingssystemer- organisasjon praktisk kontroll filer organisert som filer: i stedet for datatilgang på lavt nivå som indikerer de spesifikke fysiske adressene til posten vi trenger, brukes logisk tilgang som indikerer filnavnet og posten i den.

Begrepene "filsystem" og "filbehandlingssystem" må skilles: Filsystemet bestemmer først og fremst prinsippene for tilgang til data organisert som filer. Og begrepet "filhåndteringssystem" bør brukes i forhold til en spesifikk implementering av filsystemet, dvs. dette er et kompleks programvaremoduler, gir arbeid med filer i et spesifikt OS.

Eksempel

Fil FETT system(filallokeringstabell) har mange implementeringer som et filhåndteringssystem

  • Systemet utviklet for de første PC-ene ble ganske enkelt kalt FAT (nå kalt bare FAT-12). Den ble designet for å fungere med disketter, og i noen tid ble den brukt til å jobbe med harddisk.
  • Deretter ble den forbedret til å jobbe med større harddisker, og denne nye implementeringen ble kalt FAT-16. dette navnet brukes også i forhold til SUF til MS-DOS selv.
  • Implementeringen av SUF for OS/2 kalles super-FAT (hovedforskjellen er muligheten til å støtte utvidede attributter for hver fil).
  • Det er en versjon av SUF for Windows 9x/NT, etc. (FAT-32).

Filtyper

Vanlige filer: inneholder informasjon av vilkårlig karakter som legges inn i dem av brukeren eller som genereres som et resultat av driften av systemet og brukerprogrammer. Innhold vanlig fil bestemt av applikasjonen som fungerer med den.

Vanlige filer kan være av to typer:

  1. Programvare(kjørbar) - er programmer skrevet inn kommandospråk OS, og utføre noen systemfunksjoner(har utvidelsene .exe, .com, .bat).
  2. Datafiler– alle andre filtyper: tekst og grafiske dokumenter, regneark, databaser osv.

Kataloger er på den ene siden en gruppe filer kombinert av brukeren basert på visse hensyn (for eksempel filer som inneholder spillprogrammer, eller filer som utgjør en Software pakke), og på den annen side er dette en spesiell type filer som inneholder system bakgrunnsinformasjon om et sett med filer gruppert etter brukere i henhold til et uformelt kriterium (filtype, plassering på disk, tilgangsrettigheter, dato for opprettelse og endring).

Spesielle filer– dette er dummyfiler knyttet til inn-/utdataenheter, som brukes til å forene mekanismen for tilgang til filer og eksterne enheter. Spesialfiler lar brukeren utføre I/O-operasjoner ved å bruke vanlige filskrive- eller fillesekommandoer. Disse kommandoene behandles først av FS-programmer, og deretter på et tidspunkt av forespørselsutførelsen konverteres de av OS til kontrollkommandoer for den tilsvarende enheten (PRN, LPT1 - for skriverporten (symbolske navn, for OS - disse er filer), CON - for tastaturet).

Eksempel. Kopier kontekst1 (arbeider med tastaturet).

Filstruktur

Filstruktur– hele settet med filer på disken og relasjonene mellom dem (rekkefølgen filene er lagret på disken).

Typer filstrukturer:

  • enkel, eller enkelt-nivå: En katalog er en lineær sekvens av filer.
  • hierarkisk eller flernivå: En katalog i seg selv kan være en del av en annen katalog og inneholde mange filer og underkataloger i den. Den hierarkiske strukturen kan være av to typer: "Tre" og "Nettverk". Kataloger danner et "Tre" hvis filen tillates inkludert i bare én katalog (OS MS-DOS, Windows) og "Nettverk" - hvis filen kan inkluderes i flere kataloger samtidig (UNIX).
  • Filstrukturen kan representeres som en graf som beskriver hierarkiet av kataloger og filer:



Filnavntyper

Filer identifiseres med navn. Brukere gir filer symbolske navn, tar dette hensyn til OS-begrensninger på både tegnene som brukes og lengden på navnet. I tidlige filsystemer var disse grensene ganske smale. Så populært FAT filsystem Lengden på navn er begrenset av det velkjente 8.3-skjemaet (8 tegn - selve navnet, 3 tegn - navneutvidelsen), og i UNIX System V kan ikke navnet inneholde mer enn 14 tegn.

Imidlertid er det mye mer praktisk for brukeren å jobbe med lange navn, siden de lar deg gi filen et virkelig mnemonisk navn, som, selv etter en ganske lang periode, kan huske hva denne filen inneholder. Derfor har moderne filsystemer en tendens til å støtte lange symbolske filnavn.

For eksempel Windows NT i sin fil NTFS-system spesifiserer at et filnavn kan være opptil 255 tegn langt, uten å telle det avsluttende nulltegnet.

Når du flytter til lange navn, er det et kompatibilitetsproblem med tidligere opprettede applikasjoner som bruker korte navn. For at applikasjoner skal få tilgang til filer i henhold til tidligere aksepterte konvensjoner, må filsystemet kunne gi tilsvarende korte navn (aliaser) for filer som har lange navn. Dermed blir en av de viktige oppgavene problemet med å generere passende korte navn.

Symboliske navn kan være av tre typer: enkle, sammensatte og relative:

  1. Enkelt navn identifiserer en fil i én katalog, tilordnet filer under hensyntagen til symbolnomenklaturen og navnelengden.
  2. Fullt navn er en kjede av enkle symbolske navn på alle kataloger som banen fra roten til en gitt fil, disknavn, filnavn går gjennom. Så det fulle navnet er sammensatte, hvori enkle navn separert fra hverandre av separatoren som er tatt i bruk i OS.
  3. Filen kan også identifiseres slektningsnavn. Det relative filnavnet er definert gjennom konseptet " gjeldende katalog" Til enhver tid er en av katalogene aktuelt, og denne katalogen velges av brukeren selv på kommando av OS. Filsystemet fanger opp navnet på gjeldende katalog, slik at det deretter kan bruke det som et komplement til relative navn for å danne det fullstendige filnavnet.

I en trelignende filstruktur er det en en-til-en-korrespondanse mellom en fil og dens fulle navn - "én fil - ett fullt navn". I en nettverksfilstruktur kan en fil inkluderes i flere kataloger, noe som betyr at den kan ha flere fulle navn; Korrespondansen her er "én fil - mange fulle navn".

For fil 2.doc, definer alle tre typene navn, forutsatt at gjeldende katalog er 2008_year-katalogen.

  • Enkelt navn: 2.doc
  • Fullt navn: C:\2008_year\Documents\2.doc
  • Relativt navn: Dokumenter\2.doc

Filattributter

En viktig egenskap ved en fil er dens attributter. Attributter– dette er informasjon som beskriver egenskapene til filer. Eksempler på mulige filattributter:

  • Skrivebeskyttet attributt;
  • Signer " skjult fil"(Skjult);
  • Signer "systemfil" (System);
  • Signer "arkivfil" (Arkiv);
  • Filtype (vanlig fil, katalog, spesialfil);
  • Eier av filen;
  • File Creator;
  • Passord for å få tilgang til filen;
  • Informasjon om tillatte filtilgangsoperasjoner;
  • Opprettelsestidspunkt, siste tilgang og siste endring;
  • Gjeldende filstørrelse;
  • Maksimal filstørrelse;
  • Signer "midlertidig (fjern etter fullført prosess)";
  • Blokkeringsskilt.

På filsystemer forskjellige typer forskjellige sett med attributter kan brukes til å karakterisere filer (for eksempel i et enkeltbruker-OS vil ikke settet med attributter inneholde egenskaper knyttet til brukeren og sikkerheten (oppretteren av filen, passordet for å få tilgang til filen osv.) .).

Brukeren kan få tilgang til attributter ved å bruke fasilitetene gitt for dette formålet av filsystemet. Vanligvis kan du lese verdiene til alle attributter, men bare endre noen, for eksempel kan du endre tilgangsrettighetene til en fil, men du kan ikke endre opprettelsesdatoen eller gjeldende størrelse på filen.

Filtillatelser

Å definere tilgangsrettigheter til en fil betyr å definere for hver bruker et sett med operasjoner som han kan bruke til denne filen. Ulike filsystemer kan ha sin egen liste over differensierte tilgangsoperasjoner. Denne listen kan inneholde følgende operasjoner:

  • filoppretting.
  • filødeleggelse.
  • skrive til en fil.
  • åpne en fil.
  • lukke filen.
  • lesing fra fil.
  • filtillegg.
  • søk i filen.
  • får filattributter.
  • angi nye attributtverdier.
  • gi nytt navn.
  • filutførelse.
  • lese en katalog osv.

I det mest generelle tilfellet tilgangsrettigheter kan beskrives av en matrise av tilgangsrettigheter, der kolonnene tilsvarer alle filer i systemet, radene tilsvarer alle brukere, og i skjæringspunktet mellom rader og kolonner er de tillatte operasjonene indikert:

På noen systemer kan brukere være delt inn i separate kategorier. For alle brukere av samme kategori er det definert enhetlige tilgangsrettigheter, for eksempel i UNIX-system alle brukere er delt inn i tre kategorier: fileieren, medlemmene av gruppen hans og alle andre.

Filsystemer støtter flere funksjoner forskjellige typer filer, som vanligvis inkluderer vanlige filer, katalogfiler, spesialfiler, navngitte rør, minnetilordnede filer og andre.

Vanlige filer, eller ganske enkelt filer, inneholder informasjon av vilkårlig karakter, som legges inn i dem av brukeren eller som genereres som et resultat av driften av system og brukerprogrammer. De fleste moderne operativsystemer (for eksempel UNIX, Windows, OS/2) begrenser eller kontrollerer ikke innholdet og strukturen til en vanlig fil på noen måte. Innholdet i en vanlig fil bestemmes av applikasjonen som fungerer med den. For eksempel lager en tekstredigerer tekstfiler som består av strenger med tegn representert i en eller annen kode. Dette kan være dokumenter, programkildekoder osv. Tekstfiler kan leses på skjermen og skrives ut på skriver. Binære filer bruker ikke tegnkoder, de har ofte komplekse intern struktur, for eksempel kjørbar programkode eller en arkivfil. Alle operativsystemer må kunne gjenkjenne minst én filtype - sine egne kjørbare filer.

Kataloger er en spesiell type filer som inneholder systemreferanseinformasjon om et sett med filer gruppert av brukere i henhold til noen uformelle kriterier (for eksempel filer som inneholder dokumenter av samme kontrakt, eller filer som utgjør én programvarepakke er kombinert i én gruppe ). På mange operativsystemer kan en katalog inneholde alle typer filer, inkludert andre kataloger, og skape en trestruktur som er enkel å søke i. Kataloger etablerer en tilordning mellom filnavn og filegenskaper som brukes av filsystemet til å administrere filer. Slike egenskaper inkluderer spesielt informasjon (eller en peker til en annen struktur som inneholder disse dataene) om filtypen og dens plassering på disken, tilgangsrettigheter til filen og datoene for dens opprettelse og modifikasjon. I alle andre henseender behandles kataloger av filsystemet som vanlige filer.

Spesialfiler er dummyfiler knyttet til I/O-enheter som brukes til å forene mekanismen for tilgang til filer og eksterne enheter. Spesialfiler lar brukeren utføre I/O-operasjoner ved å bruke vanlige kommandoer for å skrive til en fil eller lese fra en fil. Disse kommandoene behandles først av filsystemprogrammer, og deretter på et tidspunkt av forespørselsutførelsen konverteres de av operativsystemet til kontrollkommandoer for den tilsvarende enheten.

Moderne filsystemer støtter andre filtyper, for eksempel symbolske lenker, navngitte rør og minnetilordnede filer. Disse vil bli diskutert senere.

Hierarkisk filsystemstruktur

Brukere får tilgang til filer med symbolske navn. Imidlertid begrenser menneskelig hukommelse antallet objektnavn som en bruker kan referere til ved navn. Den hierarkiske organiseringen av navneområdet lar oss utvide disse grensene betydelig. Dette er grunnen til at de fleste filsystemer har en hierarkisk struktur, der nivåer opprettes ved å tillate at en katalog på lavere nivå finnes i en katalog på høyere nivå (Figur 1).

Ris. 1. Hierarki av filsystemer

Grafen som beskriver kataloghierarkiet kan være et tre eller et nettverk. Kataloger danner et tre hvis en fil tillates inkludert i bare én katalog (fig. 1, b), og et nettverk - hvis filen kan inkluderes i flere kataloger samtidig (fig. 1, c). For eksempel i MS-DOS og Windows-kataloger danne en trestruktur, og i UNIX - en nettverksstruktur. I en trestruktur er hver fil et blad. Katalogen på øverste nivå kalles rotkatalogen, eller roten.

Med denne organisasjonen frigjøres brukeren fra å huske navnene på alle filene; han trenger bare å ha en grov ide om hvilken gruppe en bestemt fil kan tilordnes for å finne den ved å se sekvensielt gjennom kataloger. Den hierarkiske strukturen er praktisk for flerbrukerarbeid: hver bruker med sine filer er lokalisert i sin egen katalog eller undertre av kataloger, og samtidig er alle filene i systemet logisk koblet sammen.

Et spesielt tilfelle av en hierarkisk struktur er en organisasjon på ett nivå, når alle filene er inkludert i én katalog (fig. 1, a).

Filtyper. Hierarkisk filsystemstruktur

Filsystemer støtter flere funksjonelt forskjellige filtyper, som vanligvis inkluderer vanlige filer, katalogfiler, spesielle filer, navngitte rør og minnetilordnede filer.

Vanlige filer eller rett og slett filer, inneholde informasjon av vilkårlig karakter som legges inn i dem av brukeren eller som genereres som følge av driften av system og brukerprogrammer. De fleste moderne operativsystemer (for eksempel UNIX, Windows, OS/2) begrenser eller kontrollerer ikke innholdet og strukturen til en vanlig fil på noen måte. Innholdet i en vanlig fil bestemmes av applikasjonen som fungerer med den.

Kataloger- dette er en spesiell type filer som inneholder systemreferanseinformasjon om et sett med filer gruppert av brukere i henhold til et uformelt kriterium (for eksempel filer som inneholder dokumenter av samme kontrakt, eller filer som utgjør én programvarepakke er kombinert til en gruppe). På mange operativsystemer kan en katalog inneholde alle typer filer, inkludert andre kataloger, og skape en trestruktur som er enkel å søke i. Kataloger etablerer en tilordning mellom filnavn og filegenskaper som brukes av filsystemet til å administrere filer. Slike egenskaper inkluderer spesielt informasjon (eller en peker til en annen struktur som inneholder disse dataene) om filtypen og dens plassering på disken, tilgangsrettigheter til filen og datoene for dens opprettelse og modifikasjon. I alle andre henseender behandles kataloger av filsystemet som vanlige filer.

Spesielle filer– Dette er dummy-filer knyttet til I/O-enheter, som brukes til å forene mekanismen for tilgang til filer og eksterne enheter. Spesialfiler lar brukeren utføre I/O-operasjoner ved å bruke vanlige kommandoer for å skrive til en fil eller lese fra en fil. Disse kommandoene behandles først av filsystemprogrammer, og deretter på et tidspunkt av forespørselsutførelsen konverteres de av operativsystemet til kontrollkommandoer for den tilsvarende enheten.

Brukere får tilgang til filer med symbolske navn. Imidlertid begrenser menneskelig hukommelse antallet objektnavn som en bruker kan referere til ved navn. Den hierarkiske organiseringen av navneområdet lar oss utvide disse grensene betydelig. Dette er grunnen til at de fleste filsystemer har en hierarkisk struktur, der nivåer opprettes på grunn av at en katalog på lavere nivå kan inkluderes i en katalog på høyere nivå (Figur 6.1).

Ris. 6. 1. Hierarki av filsystemer

Grafen som beskriver kataloghierarkiet kan være et tre eller et nettverk. Kataloger danner et tre hvis en fil tillates å være i bare én katalog (fig. 6.1, b), og nettverk - hvis filen kan inkluderes i flere kataloger samtidig (fig. 6. 1, V). For eksempel, i MS-DOS og Windows, danner kataloger en trestruktur, mens de i UNIX danner en nettverksstruktur. I en trestruktur er hver fil blad. Selve katalogen toppnivå kalt rotkatalogen eller rot.

Hovedfunksjonen til ethvert filsystem er distribusjon diskplass til navngitte områder - filer. FilsystemextXer organisert ekstremt enkelt, filene er ganske enkelt sekvenser av byte. De er tilgjengelig som tekst eller binære data, men de skiller seg bare i innhold, ikke i struktur eller tilgangsmetode. Dette systemet er universelt ved at det ikke gjør noen antagelser om den interne datastrukturen til en fil, og enhver ekstern enhet, så vel som annen prosess, får tilgang til som om den var en vanlig fil. Tidsegenskapene til filsystemet bestemmes i stor grad av hastigheten på harddisker, og bruken av caching-metoder, kombinert med foroverlesing av uønskede filblokker, og bruk av lat skriving, gjør at filer kan behandles ganske effektivt. Filsystemhierarkiet er bygget i form av et tre (fig.1 ), fjerner den alle restriksjoner på lengden på filnavnet og postfix. Tilgang til vanlig diskfiler, kataloger, spesialfiler - identiske.

Ris. 1 . extX-filsystemhierarkiet er bygget i form av et tre.

Vanlige filer ligger i adresserbare datablokker på disken og inneholder informasjon som brukeren legger inn i dem. Klare til å kjøre programmer, objektmoduler osv. er også filer. Systemet legger ingen begrensninger på den interne strukturen til informasjonen som er lagret i filen. Informasjonsstrukturen styres av brukeren, ikke systemet, men mest ulike formater, som bare er kjent for programmene som lager disse filene eller bruker disse filene. En vanlig fil er en byte-array med direkte tilgang, men tekstfiler Det er vanlig å danne dem i form av linjer med vilkårlig lengde, atskilt fra hverandre med en linjematingskarakter.

Kataloger er mapper der filer er lagret, gruppert i henhold til noen vilkårlige egenskaper (for eksempel kjørbare programmer, tekstdokumenter, biblioteker og biblioteksmoduler, kildekoder til programmer, etc.). Grupper av kataloger kan på sin side danne et logisk volum med en hovedrotkatalog som et bestemt filsystem kan monteres på. Kataloger inneholder informasjon om filer: navn, lengder, størrelser, tilgangsmetoder, moduser og typer. Kataloger inneholder viktig informasjon om filer, så de er beskyttet av mekanismer operativsystem. For å skrive og lese informasjon fra en katalogfil, kreves systemprivilegier (i motsetning til en vanlig fil). I alle andre henseender er katalogen, fra OS-synspunkt, den samme vanlige filen.

Systemet bruker en universell navnekonvensjon: det fulle navnet består av en kjede av katalognavn som ruten fra roten av treet går gjennom ( rotkatalogen) til selve filen.

For eksempel, for å velge filen "client .c" (fig. 1), som ligger i "c"-katalogen, som ligger i "tcp"-katalogen, som igjen er plassert i "usr"-katalogen og , følgelig, i "root"-katalogen (fig. 1), brukes følgende tegnstreng: /usr /tcp /c /client .c . Hvis en tegnstreng begynner med et tegn (/), begynner søket i rotkatalogen til hele filsystemet. Et rutenavn som ikke begynner med et tegn (/) får OS til å begynne å søke fra gjeldende katalog.

Systemet knytter alltid hver bruker til en bestemt katalog. Når du logger på med login-kommandoen, blir du automatisk plassert i en katalog som heter home. Denne katalogen tildeles av systemadministratoren når du registrerer deg som bruker. Hvis brukernavnet ditt for eksempel er inter , vil du etter å ha skrevet inn login inter-kommandoen og skrive inn passordet som svar på passordforespørselen, logges inn og automatisk flyttes til /home /inter-katalogen. Selvfølgelig, etter dette kan du bruke kommandoen cd (Change Directory) for å endre din nåværende katalog til hva du vil.

I input/output systemet alt eksterne enheter behandles som filer, som det er lov å utføre det vanlige på filoperasjoner. Selvfølgelig er det enhetsdrivere, men grensesnittet med dem er designet for at brukeren skal ha tilgang til en spesiell fil. Spesielle filer er et middel til å forene input/output-systemet.

Hver tilkoblet enhet(terminal, disker, skriver, etc.), samsvarer med minst én spesiell fil. De fleste av disse spesialfilene er lagret i /dev-katalogen (Figur 1):

$ cd /dev

$ ls -l

konsollsystemets kontrollpanel

dsk-deler på disk

fd 0 diskett 1

mem minne

l p skriver

l р0 parallellport 0

rotdelen på disken for rotfilsystemet

bytte byttedel

syscon alternativt navn for konsollen

systty er et annet navn for systemkonsollen

termkatalog for terminaler

ttyS 0 seriell port 0 (COM 1)

Når et program skriver til en slik spesiell fil, avskjærer OS-systemet dem og sender dem til en enhet, for eksempel en skriver). Når du leser data fra denne typen fil, mottas de faktisk fra en enhet, for eksempel en disk. Programmet skal ikke ta hensyn til driftsfunksjonene til inngangs-/utgangsenheten. Til dette formål brukes spesielle filer (drivere) som fungerer som et grensesnitt mellom komponentene i OS-kjernen og applikasjonsprogrammer generelt formål. Systemet oppdager forskjellen mellom en vanlig fil og en spesiell fil først etter at det har analysert den tilsvarende inoden referert til av katalogoppføringen.

Inode spesiell fil inneholder informasjon om enhetsklassen, dens type og nummer. Enhetsklassen definerer både tegnbaserte og blokkbaserte enheter.