Wykonanie pliku w systemie Linux nie jest w ogóle powiązane z nazwą lub rozszerzeniem pliku. Każdy plik może zostać potencjalnie wykonany, pod warunkiem, że jest on obsługiwany przez binfmt
mechanizm jądra (i ustawione są jego uprawnienia do wykonywania).
Najpopularniejszym formatem pliku wykonywalnego jest ELF , chociaż niektóre jądra można skompilować w celu obsługi starego a.out
formatu. (Aby uzyskać szczegółowe informacje techniczne, binfmt_elf.c
gdzie szukać).
Innym powszechnym mechanizmem jest obsługiwany przez system „Shebang”binfmt_script
, który szuka #!/path/to/interpreter
na początku pliku.
binfmt_misc
pozwala na rejestrację innych osób zajmujących się obsługą, jak tu udokumentowano .
Jeśli masz ochotę na trochę programowania jądra, możesz nawet napisać własny .
Chociaż nie jest to bezpośrednio powiązane, file
polecenie powinno powiedzieć, czy plik jest plikiem wykonywalnym ELF, czy czymś innym.
Konwencja nazewnictwa nie ma nic wspólnego ze statusem pliku (z wyjątkiem sytuacji, gdy jest on używany do binfmt_misc
rejestracji). To tylko konwencje. Zazwyczaj .exe
plik znaleziony w systemie Linux może być aplikacją mono , uzyskując .exe
rozszerzenie jako konwencję pochodzącą ze świata Windows / .Net.
Innym aspektem, który może się zdarzyć, gdy chcesz „uruchomić” plik, jest posiadanie narzędzia eksploratora plików, którego używasz rozszerzeń rejestrów, aby móc uruchomić program, który otworzy te pliki. To jest to, co by się stało, jeśli podwójne kliknięcie na .txt
, .tar.gz
lub .deb
, na przykład: pliki wykonywalne, ani nie są wykonywane, ale to, czego używasz dwukrotne kliknięcie wybiera, które wykonywalny do uruchomienia, aby otworzyć te pliki.