Wikisage, de vrije encyclopedie van de tweede generatie, is digitaal erfgoed

Wikisage is op 1 na de grootste internet-encyclopedie in het Nederlands. Iedereen kan de hier verzamelde kennis gratis gebruiken, zonder storende advertenties. De Koninklijke Bibliotheek van Nederland heeft Wikisage in 2018 aangemerkt als digitaal erfgoed.

  • Wilt u meehelpen om Wikisage te laten groeien? Maak dan een account aan. U bent van harte welkom. Zie: Portaal:Gebruikers.
  • Bent u blij met Wikisage, of wilt u juist meer? Dan stellen we een bescheiden donatie om de kosten te bestrijden zeer op prijs. Zie: Portaal:Donaties.
rel=nofollow

Bestand (computer)

Uit Wikisage
(Doorverwezen vanaf Computerbestand)
Naar navigatie springen Naar zoeken springen

Een bestand (Engels: file) is een geordende verzameling van gegevens. De wijze waarop het bestand is geordend is bij wijze van conventie vaak te herkennen aan de uitgang van de naam van het bestand. Met behulp van het juiste computerprogramma (de juiste software) kan een bestand worden gelezen of bewerkt. Om een bestand na het uitzetten van de computer niet kwijt te raken dient het te worden opgeslagen. Dat kan in het vaste geheugen van de computer, meestal een harde schijf, op een los opslagmedium zoals een diskette, cd-rom, dvd of geheugenstaaf, of op een locatie waarmee de computer via een netwerk in verbinding staat. Vroeger werden bestanden vaak op magneetband opgeslagen, en daarvoor op ponskaarten.

Bewerkingen

Bewerkingen op bestanden bestaan vooral uit het lezen van en het schrijven naar een bestand. Daarnaast kunnen bestanden worden aangemaakt (aanvankelijk met lengte nul) en worden gewist. De gebruiker kent bestanden vooral als 'zijn gegevens', de brief die hij heeft geschreven, de inhoud van zijn elektronische kaartenbak, zijn spreadsheet, de foto die zij maakte van haar kinderen; maar nagenoeg alle gegevens die de computer nodig heeft of kan verwerken zijn als bestanden op de harde schijf aanwezig, ook de programma's.

De namen van bewerkingen zijn vaak gebaseerd op handelingen die vroeger gepaard gingen met het positioneren van een lees-/schrijfkop op een rol magnetische band. We onderscheiden onder andere:

  • aanmaken (create);
  • openen (open);
  • sluiten (close);
  • wissen (delete of unlink);
  • positioneren (seek);
  • samenvoegen (merge);
  • verlengen (append): gegevens achteraan het bestand bijschrijven;
  • lezen (read);
  • schrijven (write);
  • flushen (flush): naar schijf of band schrijven van de in de schrijfbuffer aanwezige gegevens.

Deze bewerkingen bestaan vooral uit lezen van de file en schrijven naar de file, waarbij de bewerking plaatsvindt bij het op dat moment geldende adres (de offset), waarnaar door de impliciete file pointer verwezen wordt. Deze file pointer blijft na de bewerking aan het eind van de gelezen of geschreven data staan. Lezen is non-destructief, maar bij schrijven wordt de eerdere inhoud op die plaats overschreven, of de file wordt langer, bij merge en append.

Daarnaast kunnen files worden aangemaakt (aanvankelijk met lengte nul) en worden gewist. Voor lezen of schrijven moet de file eerst worden geopend, waarbij het besturingssysteem aan het programma een file handle (een getal) teruggeeft die bij het aanvragen van verdere bewerkingen moet worden opgegeven. Bestandsbewerkingen worden normaliter door het besturingssysteem afgehandeld naar aanleiding van functieaanroepen van het programma. Dit gebeurt via een deel van het besturingssysteem dat het bestandssysteem heet. Na het openen staat de file pointer (de offset vanaf het begin) meestal op nul, maar bij aanvullen (append) staat deze aan het eind van de file. Er kan een file seek worden gedaan waarmee de file pointer op een bepaalde waarde wordt gezet. Een file die klaar is, moet ook weer worden gesloten. De meeste van deze bewerkingen zijn voor de gebruiker tegenwoordig niet meer zichtbaar.

Bestanden zijn geschikt om snel grote hoeveelheden gegevens in een bepaalde volgorde weg te schrijven en in diezelfde volgorde ook weer snel te lezen. Ze zijn niet erg geschikt voor gegevens die voortdurend in andere volgordes moeten worden opgeroepen. Het lezen van de volgende byte kost een minimale hoeveelheid tijd, maar het lezen van de vorige byte kost doorgaans een heleboel tijd. Dit omdat er dan eerst een seek moet worden gedaan. In de tijd van de magneetband betekende dat: band stilzetten, terugspoelen naar het begin, zoekend vooruitspoelen tot de vorige plaats minus 1, en lezen. Zie b.v. ook de datatypen stack, queue en array. Ook in de tijd van de harde schijf is het sequentieel lezen van een file nog steeds honderden malen efficiënter dan door middel van random access.

Organisatie

Bestanden worden meestal georganiseerd in directory's (ook wel mappen of folders) genaamd. Deze kunnen beschouwd worden als bestanden met als inhoud met de namen van een aantal bestanden en verwijzingen naar deze bestanden. Een verzameling van directory's op een bepaald medium of op een systeem wordt een bestandssysteem genoemd.

Types

Er zijn verschillende soorten bestanden, ook wel bestandstypes genoemd. Deze indeling naar bestandstype is in principe gebaseerd op de inhoud van een bestand. Op Microsoft Windows systemen kan men het bestandstype herkennen aan de bestandsextensie (meestal de laatste 3 tekens van de bestandsnaam). Dit is overigens alleen een conventie, een bestand kan een andere extensie hebben dan bij zijn inhoud past. Op systemen die op UNIX zijn gebaseerd (zoals Linux en de Berkeley Software Distribution (BSD)) hebben bestandsnamen niet altijd een extensie en kan men het "file" commando gebruiken om het bestandstype te weten te komen. Ook bestaan er op zulke systemen weer andere typen bestanden, zoals de dot-bestanden.

Bestanden kunnen soms ook herkend worden aan een zogenaamd 'magic number', een afgesproken sequentie van karakters aan het begin van een bestand. Het hiervoor genoemde UNIX commando file maakt hier ook gebruik van. Omdat magic numbers voor gebruikers onzichtbaar zijn worden er nogal eens vrij typische constructies gebruikt. Een aantal voorbeelden:

  • Een Java class file begint met het 0xCAFEBABE (hexadecimaal).
  • Een Windows executable (het PE formaat) begint met de ASCII string MZ, de initialen van de ontwerper van het formaat, Mark Zbikowski.

Een andere indeling naar type kan worden gemaakt op grond van de manier waarop een bestand benaderd kan worden. Hierbij kunnen sequentiële en geïndexeerde bestanden worden onderscheiden. In een geïndexeerd bestand kan op basis van een sleutel direct een bepaald gedeelte van het bestand gelezen worden. Een voorbeeld hiervan is een VSAM-bestand.

Zie ook