a.out
a.out je súborový formát používaný v starších verziách operačných systémov založených na Unixe pre spúšťateľné súbory, objektový kód a v neskorších systémoch aj pre zdieľané knižnice. Názov vyjadruje assembler output.
Prípona súboru | žiadna, .o, .so |
---|---|
Tvorca | AT&T |
a.out pretrval ako štandardný názov výstupného súboru pre spúšťateľné súbory vytvorené určitými kompilátormi a linkermi, ak nebol uvedený iný nazov, aj napriek tomu, že tieto súbory už nepoužívajú a.out formát.[1]
Použitie
a.out formát pre PDP-7, podobný a.out formátu použitému pre PDP-11, sa objavil v prvom vydaní UNIXu.[2] Bol nahradený formátom COFF vo vydaní AT&T Unix System V, ktorý bol nahradený formátom ELF vo vydaní System V Release 4.
Aj keď Berkeley Unix používal a.out naďalej po nejaký čas, moderné BSD systémy už odvtedy prešli na ELF. NetBSD/i386 prešiel z formátu a.out na ELF formálne vo svojom vydaní 1.5. FreeBSD/i386 prešiel na ELF počas zmeny z 2.2 na 3.0.
a.out formát nemá priamu podporu pre debug informácie, ale môže byť použitý spolu so stabs, ktorý používa položky špeciálnej tabuľky symbolov na uloženie dát.
Linux taktiež používal a.out do jadra 1.2 (podpora ELF bola pridaná v experimentálnej verzii 1.1.52), keď bol nahradený formátom ELF aj pre túto platformu.[3] Prechod Linuxu na ELF bol viacmenej nutný kvôli komplexnej povahe vytvárania a.out zdieľaných knižníc pre túto platformu, ktorá zahŕňala potrebu registrovať virtuálny adresný priestor pre polohu knižnice s centrálnou autoritou, pretože a.out ld.so v Linuxe nebol schopný relokovať zdieľané knižnice. Rôzne odrody BSD boli schopné používať a.out binárne súbory ešte dlhú dobu po nútenom prechode Linuxu na ELF pre ich o niečo flexibilnejšiu povahu a.out formátu v porovnaní s Linuxom.[4]