Existem vários contextos de como um arquivo pode ser "executado".
O primeiro é se você pedir ao kernel para executar um programa usando a chamada do sistema execve()
. É aqui que entra a permissão de execução do arquivo; se o bit de permissão de execução não estiver definido, o arquivo não pode ser executado como um programa dessa maneira.
O segundo está usando algum outro shell especial, como Unity, Plasma ou Nautilus. Esses shells geralmente executam o programa file
para examinar o arquivo e recuperar um tipo MIME - uma declaração de qual tipo de arquivo é e fornecer um indicador visual. Se solicitado a abrir o arquivo, eles normalmente chamarão xdg-open
, que executará file
novamente no arquivo e, em seguida, procurará o que o sistema está configurado para fazer com esse tipo de arquivo, quais programas estão disponíveis para abri-lo, etc.
Existe um caso especial e interessante. Assim como os arquivos de atalho ".lnk" do Windows, o Linux tem arquivos ".desktop". Esses arquivos contêm instruções sobre como deve ser o ícone do arquivo, o que deve ser feito quando o arquivo é executado, etc.