Wat is een computermap?: Alles wat u moet weten over het bestandssysteem en het besturingssysteem

Laatste update: 19 januari 2024
map, bestandssysteem

Wij gebruiken allemaal bestanden of bestanden elke dag, en we gebruiken het allemaal ook mappen of directory's, of het nu in de bestandssystemen van de desktop-pc, op laptops, mobiele apparaten, enz. is. Daarom zal ik in dit artikel alles uitleggen wat u erover moet weten, zodat u het kunt begrijpen welke informatie is en hoe deze wordt opgeslagen ter nagedachtenis van.

Wat is een bestandssysteem?

bestandssysteem

Un bestandssysteem Een bestandssysteem (FS) is een methode en datastructuur die het besturingssysteem gebruikt om te bepalen hoe informatie wordt opgeslagen en opgehaald. Zonder een bestandssysteem zouden gegevens op een opslagmedium één enkele gegevensentiteit vormen, zonder mogelijkheid om te onderscheiden waar de ene dataset eindigt en de volgende begint, of waar een dataset zich bevindt wanneer deze moet worden opgehaald. Dit staat bekend als ruwe data.

Wanneer u een opslagstation formatteert met NTFS, FAT, ext4, btrfs, HFS+, enz., creëert u feitelijk een bestandssysteem om de gegevens op dat station te beheren. Met andere woorden: wat wij formaten noemen, is eigenlijk FS.

Door de gegevens in stukken te verdelen en elk stuk een naam te geven,De gegevens kunnen eenvoudig worden geïsoleerd en geïdentificeerdOm dit alles mogelijk te maken, bestaat een bestandssysteem uit twee of drie lagen. Soms zijn deze lagen expliciet gescheiden, en soms worden functies gecombineerd. De lagen waar we het over hebben zijn:

  • Logisch bestandssysteem: is verantwoordelijk voor de interactie met de gebruikersapplicatie. Het biedt een API voor bestandsbewerkingen, zoals Openen, sluiten, lezen, enz.en stuurt de gevraagde bewerking door naar de onderliggende laag voor verwerking. Het logische bestandssysteem beheert open bestandstabelvermeldingen en bestandsdescriptoren per proces. Deze laag biedt bestandstoegang, directorybewerkingen, beveiliging en bescherming.
  • Virtueel bestandssysteem: Deze interface ondersteunt meerdere gelijktijdige instanties van fysieke bestandssystemen. Deze laag is optioneel en niet altijd aanwezig.
  • Fysiek bestandssysteem: Verwerkt de fysieke werking van het opslagapparaat. Het verwerkt de fysieke blokken die worden gelezen of geschreven. Het verzorgt buffering, geheugenbeheer en is verantwoordelijk voor de fysieke plaatsing van blokken op specifieke locaties op het opslagmedium. Het fysieke bestandssysteem communiceert met stuurprogramma's voor opslaghardware of het kanaal om het opslagapparaat aan te sturen.

FS-functies

Elk bestaand bestandssysteem heeft zijn beperkingen en eigenschappen je zou moeten weten, zoals:

  • Ruimtebeheer of -toewijzing: Bestandssystemen wijzen ruimte op een gedetailleerde manier toe, meestal over meerdere fysieke schijven op het apparaat. Bestandssystemen zijn verantwoordelijk voor het organiseren van bestanden en mappen en houden bij welke delen van de media bij welke bestanden horen en welke niet worden gebruikt.
  • Fragmentatie: Dit gebeurt wanneer hetzelfde bestand op verschillende plekken op de harde schijf is opgeslagen, wat betekent dat de afzonderlijke bestandsdelen niet aaneengesloten zijn. Naarmate bestanden worden aangemaakt, gewijzigd en verwijderd, kan dit resulteren in gebieden met gebruikte en ongebruikte ruimte van verschillende groottes. Bovendien heeft dit invloed op sommige bestandssystemen (zoals FAT en NTFS van Microsoft), waardoor het lezen van bestanden wordt vertraagd.
  • Bestandsnamen: Bestandssystemen beheren lengtebeperkingen, hoofdlettergevoeligheid en het gebruik van speciale tekens in bestandsnamen.
  • Directory's: Ze hebben vaak mappen om bestanden in aparte verzamelingen te organiseren. Ze kunnen plat of hiërarchisch zijn. Ik zal hier later dieper op ingaan, want dit is waar het allemaal om draait...
  • Metagegevens: Er wordt bijbehorende metadata-informatie aan gekoppeld, zoals details over de datalengte, tijdstempels, toegangsrechten en bestandskenmerken.
  • Nutsvoorzieningen en toegang: Ze worden gebruikt om bestandssysteeminstanties te initialiseren, aan te passen en te verwijderen, en om mappen en bestanden te maken, te hernoemen en te verwijderen, en voor encryptie, quota, migratie, conversie, back-up, enzovoort.
  • Integriteit en foutbeheer: Het FS moet de integriteit van bestandssysteemstructuren op secundaire opslag of externe schijven handhaven, zelfs bij storingen in het besturingssysteem of stroomuitval.
  • Gebruikersgegevens: moet het beheer van gebruikersgegevens mogelijk maken, inclusief het opslaan, ophalen en bijwerken van gegevens.
  • Meerdere bestandssystemen: Het is mogelijk om meerdere bestandssystemen op één systeem te hebben.
  • Ontwerpbeperkingen: Bestandssystemen hebben functionele beperkingen die de maximale opslagcapaciteit binnen dat systeem, de maximale bestandsgrootte, het aantal bestanden, enzovoort bepalen.

Wat is een partitie?

een tussenschot Een partitie is een logische sectie of onderverdeling van een gegevensopslagapparaat, zoals een harde schijf, SSD, flashdrive, enz. Deze partitie dient verschillende doeleinden en maakt een betere organisatie en beheer van opgeslagen gegevens mogelijk. Zo kan elke partitie voor een specifiek doel worden gebruikt, kunnen er meerdere besturingssystemen op worden geïnstalleerd, enzovoort.

Het is belangrijk op te merken dat de aanmaken, verwijderen en formaat wijzigen Wijzigingen aan de partitie kunnen leiden tot gegevensverlies. Daarom is het belangrijk om deze bewerkingen voorzichtig uit te voeren en een back-up te maken van belangrijke gegevens voordat u grote wijzigingen aanbrengt in de partitiestructuur.

Aan de andere kant moet je, samengevat, ook begrijpen dat er verschillende soorten partities fundamenteel in het MBR-systeem (de mogelijkheden zijn uitgebreid in de GPT, met maximaal 128 mogelijke partities op dezelfde eenheid, hoewel dit een ander onderwerp is...):

  • Primaire partitie: Elke opslagschijf kan maximaal vier primaire partities bevatten. Dit zijn de hoofdpartities waarop besturingssystemen zijn geïnstalleerd en waar gegevens zich bevinden. Een van de primaire partities kan worden aangewezen als actieve partitie of opstartpartitie, van waaruit het besturingssysteem wordt opgestart.
  • Uitgebreide partitie: Een uitgebreide partitie is een speciale primaire partitie die wordt gebruikt om extra logische partities aan te maken. Deze partitie bevat niet direct gegevens, maar fungeert als een container voor logische partities. U kunt meerdere logische partities binnen een uitgebreide partitie hebben. Hiermee kunt u de beperking van vier primaire partities op een harde schijf omzeilen.
  • Logische partitie: Deze worden aangemaakt binnen een uitgebreide partitie. Ze worden niet gebruikt om het besturingssysteem op te starten, maar worden over het algemeen gebruikt om gegevens of bestanden te ordenen. U kunt meerdere logische partities binnen een uitgebreide partitie hebben, wat de gegevensorganisatie vereenvoudigt.
  Wine 11.6 voor het laden van Windows-games op Linux: een complete handleiding

Wat is een partitietabel?

La partitietabel Het is een gegevensstructuur aan het begin van een harde schijf en bevat informatie over hoe de schijf in partities is verdeeld. Deze wordt meestal opgeslagen in de master boot sector (MBR) op BIOS-gebaseerde systemen of in GPT (GUID Partition Table) op modernere UEFI-gebaseerde systemen. De partitietabel bevat details zoals de grootte van elke partitie, het type (bijv. NTFS, FAT32, ext4, enz.) en de locatie op het opslagmedium.

De relatie tussen de partitietabel en het bestandssysteem ligt daarom in het feit dat de partitietabel aangeeft waar elke partitie begint en eindigt op de fysieke schijf. Elke partitie is geformatteerd met een specifiek bestandssysteem. Wanneer een partitie wordt gebruikt om bestanden te lezen of te schrijven, gebruikt het besturingssysteem de informatie in de partitietabel om de structuur van het bestandssysteem op die specifieke partitie te achterhalen en te begrijpen.

Bestandssysteemtypes

Formaat

Onder de verschillende bestandssystemen zijn de volgende typen van belang:

  • Schijfbestandssystemen: Deze systemen maken gebruik van de mogelijkheid van schijfopslagmedia om willekeurig en snel toegang te krijgen tot gegevens. Ze bieden meerdere gebruikers of processen toegang tot gegevens op de schijf, ongeacht de sequentiële locatie. Voorbeelden hiervan zijn FAT, exFAT, NTFS, Reiser FS, HFS, HFS+, HPFS, APFS, UFS, ext2, ext3, ext4, XFS, btrfs, VMFS, ZFS, ReiserFS, NSS en ScoutFS. Daarnaast kunnen ook de volgende systemen worden overwogen:
    • optische schijven: gangbare formaten zoals ISO 9660 en Universal Disk Format (UDF) die worden gebruikt op CD, DVD en Blu-ray.
  • Flash-bestandssystemen: Deze systemen zijn specifiek ontworpen voor flashgeheugenapparaten en houden rekening met hun kenmerken en beperkingen. Het is raadzaam om bestandssystemen te gebruiken die speciaal voor flashgeheugenapparaten zijn ontworpen in plaats van schijfsystemen aan te passen. Enkele voorbeelden zijn JFFS, JFFS2, YAFFS, UBIFS, LogFS en F2FS.
  • Magnetische tape-bestandssystemen: Deze systemen beheren opslag op tapes, die langere willekeurige toegangstijden hebben dan schijven. Ze verschillen in directorybeheer en benadrukken de noodzaak om frequente lineaire verplaatsingen op tapes te vermijden. Een voorbeeld hiervan is IBM's LTFS.
  • Databasebestandssystemen: Databasegebaseerde bestandssystemen, waarbij bestanden worden geïdentificeerd aan de hand van kenmerken zoals type, auteur of metadata. Voorbeelden hiervan zijn onder andere IBM DB2.
  • Transactionele bestandssystemen: Deze systemen garanderen de atomariteit en isolatie van bewerkingen op een bestand. Voorbeelden hiervan zijn NTFS in Microsoft Windows en andere prototype transactionele bestandssystemen voor UNIX/Linux, zoals LFS, ext3, enz.
  • Netwerkbestandssystemen: Netwerkbestandssystemen die toegang bieden tot bestanden op externe servers via protocollen zoals NFS, AFS, SMB, FTP en WebDAV. Dat wil zeggen dat ze ontworpen zijn voor gedistribueerd computergebruik.
  • Gedeelde bestandssystemen: Deze systemen bieden meerdere servers veilige toegang tot hetzelfde schijfsubsysteem. Voorbeelden hiervan zijn GFS2, GPFS, SFS, CXFS, StorNext en ScoutFS.
  • Speciale bestandssystemen: Ze zijn vrij specifiek en bevatten geen bestandselementen als zodanig, maar ze zijn wel toegankelijk via API's. Zo definiëren we Device File System als devfs, gebruikt in Linux, enz. Aan de andere kant hebben we andere speciale systemen zoals configfs, sysfs en procfs, die ook bekend zijn in de Linux-wereld.
  • Minimaal bestandssysteem / audiocassette-opslag: Audiocassettes werden gebruikt als gegevensopslagsystemen voor enkele microcomputermodellen uit die tijd, zoals de Commodore PET.
  • Platte bestandssystemen (Flat File System): Deze systemen hebben geen submappen en slaan alle directory-items op in één hoofdmap. Voorbeelden van deze FS zijn die van het CP/M-systeem en het Macintosh File System voor Apple's klassieke Macs.

FS-technologieën

Opmaakproces

Elk bestandssysteem heeft zijn eigen bijzonderheden en ze ondersteunen verschillende technologieën. Enkele van de belangrijkste zijn:

  • Zelfhelend: Verwijst naar het vermogen van een bestandssysteem om automatisch fouten en problemen te detecteren en te corrigeren die zich in het opslagsysteem kunnen voordoen. Deze fouten kunnen slechte sectoren op een harde schijf of andere vormen van gegevensbeschadiging omvatten. Wanneer een fout wordt gedetecteerd, kan het bestandssysteem proberen de betreffende gegevens te herstellen door te herstellen vanaf back-ups of door beschadigde gegevens te repareren. Dit helpt de integriteit van de in het bestandssysteem opgeslagen gegevens te behouden.
  • Compressie: Dit is een functie waarmee u de grootte van bestanden en gegevens die in het bestandssysteem zijn opgeslagen, kunt verkleinen. Gegevenscompressie kan schijfruimte besparen en bestandsoverdrachten versnellen. Wanneer compressie is ingeschakeld, comprimeert het bestandssysteem automatisch bestanden die ernaar worden geschreven en decomprimeert het bestanden wanneer ze worden gelezen. Dit kan handig zijn op opslagsystemen met beperkte resources, hoewel het de toegang kan vertragen.
  • codering: Het is een techniek die wordt gebruikt om de vertrouwelijkheid van gegevens die in het bestandssysteem zijn opgeslagen te beschermen. Gegevens worden versleuteld voordat ze naar schijf worden geschreven en ontsleuteld wanneer ze worden gelezen. Versleuteling zorgt ervoor dat de gegevens onleesbaar zijn voor iedereen zonder de juiste ontsleutelingssleutel. Dit is essentieel voor de bescherming van de privacy en veiligheid van gevoelige gegevens. Net als compressie kan het de toegang vertragen.
  • Journaling (transactielogboek): Het is een functie die een overzicht bijhoudt van alle bewerkingen die op het bestandssysteem worden uitgevoerd, zoals het aanmaken, wijzigen of verwijderen van bestanden. Dit overzicht wordt een 'journaal' of 'transactielogboek' genoemd. In geval van een systeemstoring, zoals een onverwachte stroomstoring, kan het bestandssysteem het transactielogboek gebruiken om te herstellen naar een consistente status. Dit voorkomt gegevensbeschadiging en waarborgt de integriteit van het bestandssysteem.
  • Snapshotcapaciteit: Snapshots zijn point-in-time kopieën van het bestandssysteem op een specifiek tijdstip. Deze kopieën zijn snapshots en worden samen met de huidige gegevens in het bestandssysteem opgeslagen. Snapshots maken het mogelijk om het bestandssysteem te herstellen naar een eerdere staat als er fouten of ongewenste wijzigingen optreden. Dit is handig voor back-ups, gegevensherstel en het testen van wijzigingen voordat ze permanent op het systeem worden geïmplementeerd.
  De NVIDIA Shield TV Experience 9.2.4-update en al zijn nieuwe functies.

Wat is een directory of map?

Windows 10, map zonder toegang

Nu we weten hoe gegevens in opslageenheden worden opgeslagen en welke gegevensstructuren daarvoor nodig zijn, is het tijd om uit te leggen wat een map of directory.

Een directory of map is een structuur voor het catalogiseren van andere bestanden binnen het bestandssysteem, waardoor het een meer intuïtieve hiërarchie of organisatie krijgt voor de gebruiker of het besturingssysteem. Hiervoor bevat het verwijzingen naar andere bestanden en mogelijk andere mappen, in dit geval submappen genoemd.

Sommige besturingssystemen met hiërarchische bestandssystemen, zoals Unix, hebben doorgaans een directorycache met recente paden opgeslagen in een deel van het RAM-geheugen. In Unix staat dit deel bekend als DNLC (Directory Name Lookup Cache), terwijl het in Linux dcache heet. Dit deel van het geheugen wordt bijgewerkt met de meest recent gebruikte paden. In netwerkbestandssystemen is echter een mechanisme vereist om consistentie te garanderen door ongeldige of door gebruikers aangemaakte items te beheren.

In een hiërarchisch bestandssysteem Opslag is boomvormig. De termen "ouder" en "kind" worden vaak gebruikt om de relatie te beschrijven tussen een submap en de map waarin deze is gecatalogiseerd, waarbij de laatste de bovenliggende map is. De hoogst gerangschikte map in zo'n bestandssysteem, die geen eigen bovenliggende map heeft, wordt de root-map genoemd. Dit is het beste te zien in Unix of Linux, waar je een bepaalde hiërarchie hebt en de root-map root of / is, waaraan alle andere mappen hangen, zelfs als ze zich niet op dezelfde partitie bevinden.

Een virtuele map is een type bestandsorganisatie dat niet afhankelijk is van de locatie in een hiërarchische mappenstructuur. In plaats daarvan worden resultaten verzameld uit een gegevensbron, zoals een database of een aangepaste index, en worden deze visueel weergegeven in dezelfde indeling als mapweergaven.

Deze mappen of directory's kan worden beheerd Met behulp van tools, zowel GUI als CLI. We kunnen bijvoorbeeld opdrachten of de bestandsbeheerder zelf gebruiken om mappen te maken, verwijderen, hernoemen, verplaatsen, kopiëren, enz. Hoewel sommige besturingssystemen bepaalde beperkingen kunnen hebben op de rechten en acties die u op bepaalde mappen kunt uitvoeren...

Details over een map of directory op verschillende besturingssystemen

En cada bestandssysteem en besturingssysteem, bestanden en mappen worden anders behandeld:

  • Wortel: Dit is het punt waaraan de rest van de mappenhiërarchie van het systeem hangt of zich bevindt. In Windows is dit meestal C:\, terwijl dit in Unix/Linux de rootpartitie of / is.
  • Pad of route: Dit is het pad waar een map of bestand zich in een bestandssysteem bevindt. In Windows hebben we bijvoorbeeld C:\Program Files\Office\Word.exe. In Unix/Linux zou het er ongeveer zo uitzien: /home/user/example.c. Zoals we kunnen zien, wordt in Windows de backslash gebruikt, terwijl in de *nix-wereld de traditionele slash wordt gebruikt.
  • Bestandsnaam of bestandsnaam: Dit is de naam die aan elk bestand binnen een specifiek bestandssysteem wordt gegeven. Elk bestandssysteem heeft zijn eigen beperkingen wat betreft de maximale tekenlimiet voor een bestandsnaam. Bovendien moet er onderscheid worden gemaakt tussen de basisnaam en de extensie. Sommige oudere systemen hadden ook beperkingen wat betreft de lengte van extensies, over het algemeen drie. Daarom zie je soms .htm in plaats van .html, om compatibiliteit met DOS-systemen te garanderen. Een voorbeeld van een bestandsnaam is bijvoorbeeld example.txt, waarbij "example" de naam is en "txt" de extensie, wat in dit geval aangeeft dat het tekst is.
  Computerbeeldverwerking: hoe de software met dit soort bestanden omgaat

Het specifieke geval van Unix/Linux

Wat is het superblok?

Un superblok Het is een fundamentele datastructuur aan het begin van een bestandssysteem. Het superblok bevat cruciale informatie over het bestandssysteem zelf en wordt gebruikt om gegevens die op dat bestandssysteem zijn opgeslagen, te beheren en te openen. Elk Unix-bestandssysteem heeft zijn eigen superblok en de specifieke indeling ervan kan variëren, afhankelijk van het gebruikte bestandssysteem (bijv. ext4, XFS, UFS, enz.).

La informatie die is opgeslagen in het superblok kunnen zijn:

  • Bestandssysteemgrootte: geeft de totale grootte van het bestandssysteem aan.
  • Aantal inodes: Geeft het aantal beschikbare inodes op het bestandssysteem aan. Inodes zijn datastructuren die bestanden en mappen vertegenwoordigen.
  • Vrije blokken: Registreert het aantal vrije datablokken dat in het bestandssysteem overblijft voor het opslaan van informatie.
  • Koppelpunt: geeft de directory aan waarin het bestandssysteem op het besturingssysteem is gekoppeld.
  • Identificatie van het bestandssysteem: een unieke identificatie voor het bestandssysteem waarmee het wordt onderscheiden van andere bestandssystemen op hetzelfde systeem.
  • Datum en tijd van de montage: registreert wanneer het bestandssysteem voor het laatst is gekoppeld.
  • Gebruikte inode- en bloktellers: houdt bij hoeveel inodes en datablokken er op het bestandssysteem worden gebruikt.
  • Controlesom en andere integriteitsmetadata: Sommige moderne superblokken kunnen aanvullende informatie bevatten om de integriteit van de in het bestandssysteem opgeslagen gegevens te verifiëren.

Wanneer een bestandssysteem, d.w.z. een geformatteerde partitie, wordt gemount, gebruikt het besturingssysteem het superblok om essentiële informatie te verkrijgen over de structuur en status van het bestandssysteem. Deze informatie is essentieel voor het lezen en schrijven van gegevens naar het bestandssysteem, en voor het waarborgen van de integriteit en consistentie van de opgeslagen gegevens.

Inodes en mappen

En Unix/Linux, Alles is een bestand, zoals partities, apparaatstations, enzovoort. Dit is niet het geval in andere systemen, zoals Windows. Wanneer echter alles een bestand is, worden zelfs mappen of directory's als speciale bestandstypen beschouwd.

Een directory is daarom een ​​speciaal bestand dat bestands- (en subdirectory-)namen bevat en inode-nummers voor bestanden op hetzelfde bestandssysteem of namen van symbolische koppelingen naar bestanden of mappen op hetzelfde of verschillende bestandssystemen. Bij harde koppelingen houdt de inode bij hoeveel mapitems erin staan ​​en verwijdert bestandsblokken wanneer het aantal koppelingen nul bereikt. Dit is anders bij een zachte koppeling of een symbolische koppeling. Het verwijderen van een symbolische koppeling heeft geen invloed op het doelbestand. Als een bestand met symbolische koppelingen echter wordt verwijderd, worden de koppelingen onbruikbaar.

In Unix/Linux-bestandssystemen is een bestand kan meerdere namen hebben, met een directoryvermelding voor elke naam in dezelfde of verschillende directory's, die allemaal verwijzen naar dezelfde inode-structuur die de lijst met schijfblokken bijhoudt waar de gegevens worden opgeslagen.

Om dit alles beter te begrijpen, is het belangrijk om te onthouden wat een inode (indexknooppunt) is. Het is een fundamentele datastructuur in *nix-bestandssystemen. Representeert en slaat essentiële informatie op op een bestand of directory binnen het bestandssysteem. Daarom worden zowel een map als een bestand door het systeem als een inode gezien.

Om dit mogelijk te maken, wijst elke inode naar de volgende informatie:

  • Inodenummer: een unieke identificatie voor elk bestand of elke map.
  • Bestandstype: Geeft aan of de inode verwijst naar een regulier bestand (f), een directory (d), een symbolische link (l) of een ander type bestand.
  • Maat: de huidige grootte van het bestand in bytes.
  • Rechten en eigenaar: Informatie over wie toestemming heeft om het bestand te openen (lezen, schrijven, uitvoeren) en te wijzigen, en wie de eigenaar van het bestand is (gebruiker of root). De eigenaar kan zelfs een gebruiker zijn die niet als zodanig bestaat, maar een apparaat, enz.
  • Datum en tijd van aanmaak/wijziging: Registreert wanneer de inode voor het eerst is aangemaakt en wanneer deze voor het laatst is gewijzigd. Andere metadata of uitgebreide rechten kunnen ook worden opgenomen.
  • Aantal links: Geeft aan hoeveel bestands- of directorynamen aan deze inode zijn gekoppeld. Directory's hebben minimaal twee links: één naar zichzelf en één naar hun bovenliggende directory.
  • Verwijzingen naar gegevensblokken: Bevat verwijzingen naar gegevensblokken op de opslageenheid die de daadwerkelijke inhoud van het bestand opslaan. Deze blokken kunnen directe, indirecte of dubbel-indirecte adressen zijn, afhankelijk van de specifieke implementatie van het bestandssysteem en de bestandsgrootte.

Inodes zijn cruciaal voor de werking van het bestandssysteem, omdat ze het besturingssysteem in staat stellen de fysieke locatie en informatie van elk bestand en elke map bij te houden. Wanneer een bestand of map wordt geopend, raadpleegt het besturingssysteem het bijbehorende inodenummer om de locatie van de gegevens en andere informatie met betrekking tot dat bestand te vinden.