Kiterjesztés nélkül

A Programozás Wiki wikiből

Unix-szerű operációs rendszereken (Linuxot is beleértve) nem a fájl kiterjesztése dönti el az operációs rendszer számára, hogy mit kezdjen vele, hanem a fájlban található első bájtok. A kiterjesztés inkább csak a felhasználó gyors tájékoztatására szolgál.

Magát a futtathatóságot a futtatható flagek határozzák meg (chmod +x ezt_akarom_futtathatóvá_tenni), de hogy közvetlen futtatható vagy egy konkrét interpreter kell alá, azt a fájl első bájtjai határozzák meg.

Első bájtok ("Magic numbers")[szerkesztés]

Ez a legfontosabb a Unix-szerű operációs rendszerek számára. A futtatható fájl első bájtjai.

  • 7f 45 4c 46 :: ELF, futtatható bináris. További bájtok írják le, hogy mi az architektúra és melyik Unix-szerű operációs rendszer, amelyre fordították.
  • 23 21 :: #! jelek szkript fájlok. Például #!/bin/bash vagy #!/usr/bin/perl vagy #!/usr/bin/python vagy #!/usr/bin/wish, stb. És a fájl további részét az így megnevezett értelmezőkkel fogja végrehajtatni az operációs rendszer. Szokásos még oly formában is megadni, hogy #!/usr/bin/env wish. Ez azt jelenti, hogy az 'env' program kerül behívásra, amely már az útvonalbeállítások ($PATH) alapján keresi meg a mögé írt értelmezőprogramot. Így az értelmező lehet akár a /bin-ben, akár a /usr/bin-ben, akár a /usr/local/bin-ben vagy ahova még a $PATH mutat, telelepítve.
  • 4d 5a :: MZ, amely hatására DOS/Windows emulátor kerül behívásra és annak adja oda az operációs rendszer az ilyen kezdőbájtokkal rendelkező futtatható fájlt.
  • 50 4b 03 04 :: JAR, Java interpreter kell neki
  • d1 f2 0d 0a :: .pyc - python interpreter alá kell rakni.

Lásd még: Linux /proc/sys/fs/binfmt_misc. Ide lehet beregisztrálni további kezdőbájt - futtató környezet párokat.