# Bestandsextensie

Een bestandsextensie of kortweg extensie is een toevoeging aan het eind van een bestandsnaam waarmee aangegeven kan worden om wat voor soort bestand het gaat. Een bestandsextensie bestaat uit een of meer letters na de laatste punt in de naam. In de bestandsnaam wikipedia.artikel23.doc bijvoorbeeld is doc de bestandsextensie.
Bestandsextensies worden in sommige besturingssystemen gebruikt om de computer in staat te stellen het type van een bestand te bepalen, om zodoende het juiste programma te kunnen starten waarmee het bestand dient te worden geopend.

## Volgens besturingssysteem
### DOS

De reden dat de meeste extensies uit maximaal drie letters bestonden, heeft zijn oorsprong in het ooit populaire MS-DOS-besturingssysteem. DOS vereiste zogenaamde "8.3"-bestandsnamen, bestaande uit maximaal acht tekens voor de punt in de naam en maximaal drie tekens erna.
Extensies zijn overigens niet verplicht onder DOS; bestanden zonder extensie zijn zonder meer toegelaten. De enige verplichte extensies zijn:
* COM of EXE voor uitvoerbare programma's,
* BAT voor batch-bestanden,
* SYS voor drivers.

### Windows

De versies Windows 1.0 tot Windows 3.x hadden nog steeds dezelfde beperking als DOS, omdat dat nog het eigenlijke besturingssysteem was. Er kon wel aan elke extensie een bepaald programma gekoppeld worden, zodat een bestand met die extensie geopend wordt met dat programma als op dat bestand gedubbelklikt wordt.
De versies Windows 95, Windows 98 en Windows Me gebruiken een aangepast bestandssysteem, VFAT of Virtual FAT genaamd, waardoor langere bestandsnamen mogelijk zijn (tot een maximum van 256 tekens in totaal). Het onderliggende besturingssysteem is nog steeds DOS, waardoor in zogenaamde "Real Mode" de 8.3-beperking nog altijd geldt. Wanneer eenmaal het systeem tijdens het opstarten in "32 bit Protected Mode" geschakeld is, worden langere namen ondersteund. Het VFAT-systeem maakt voor bestanden met een lange naam of een lange extensie alsnog een korte "alias" aan, en het systeem gebruikt trucs om de lange naam binnen het FAT-systeem te bewaren. Op die manier kan de schijf vanuit DOS nog altijd correct gelezen worden, door alleen de korte alias te gebruiken. Wel worden hierdoor bestandsnamen soms moeilijk leesbaar voor DOS-gebruikers.
Vanaf Windows 95 kan de gebruiker ook kiezen om de extensie te verbergen (in de Windows-verkenner), waardoor het lijkt alsof er geen extensies meer zijn. Deze optie staat standaard aan in latere versies van Windows.
De versies Windows NT, Windows 2000 en Windows XP gebruiken geen DOS meer, en kunnen standaard een langere extensie aan, zowel op het NTFS-bestandssysteem als op een FAT-bestandssysteem. De enige beperking is nu nog dat de volledige bestandsnaam, inclusief het pad en de extensie, niet langer mag zijn dan 256 tekens.

### Unix en Linux

Voor Unix- en GNU/Linux-systemen is een extensie niet verplicht, omdat deze systemen een andere manier gebruiken om het type van een bestand te bepalen. Maar omdat extensies het voor de mens makkelijker maken om te zien om wat voor soort bestanden het gaat, en omdat het het samenwerken met Windows-gebruikers vergemakkelijkt, worden er onder Unix en Linux meestal ook bestandsextensies gebruikt.
Unix- en Linux-systemen hebben geen beperking voor de lengte van de bestandsextensie, maar er zijn wel grenzen aan de lengte van de bestandsnaam (met de extensie erbij). Dit komt doordat deze systemen de bestandsextensies volledig negeren en deze gewoon zien als een deel van de bestandsnaam.

### Mac OS X

Ook in Mac OS X is een extensie niet verplicht om het bestand uitvoerbaar te maken. Mac OS X is net als Windows ten opzichte van DOS een schil om een opdrachtregelgeoriënteerd besturingssysteem dat Darwin heet; dit is een Unix-kloon, en gaat daarom feitelijk op dezelfde manier met bestandsextensies om als Unix en Linux.
Binnen de grafische omgeving van Mac OS X is het wel gangbaar bestandsextensies te koppelen aan programma's, zoals .pages voor bestanden van de tekstverwerker Pages. Deze kunnen in Finder veranderd worden op vergelijkbare wijze als dat in Windows' Verkenner mogelijk is; echter kan Mac OS X aan elk individueel bestand een programma koppelen, ongeacht de extensie: zo worden normaliter alle programma's met extensie .html in Safari geopend, maar het is mogelijk om één bepaald .html-bestand altijd automatisch in Teksteditor te laten openen in plaats van Safari. Mac OS X gebruikt de extensie eigenlijk alleen als er geen ander programma voor het specifieke bestand opgegeven is.
Ook kan in Mac OS X per bestand opgegeven worden of de extensie verborgen moet worden. Standaard gebeurt dit voor alle programma's (met extensie .app) en sommige andere bestandstypen. Dit geldt echter alleen in de grafische omgeving; vanuit de Unix-terminal zijn alle extensies altijd zichtbaar.

## Beveiligingsprobleem

Windows verbergt standaard de extensies, wat een beveiligingsrisico is. Kwaadaardige gebruikers die een computervirus of computerworm willen verspreiden, kunnen gebruikmaken van een naam zoals LOVE-LETTER-FOR-YOU.TXT.vbs welke dan getoond wordt als LOVE-LETTER-FOR-YOU.TXT. Voor de ontvanger lijkt dit een onschadelijk tekstbestand, terwijl het in werkelijkheid een gevaarlijk programma is.