Fichiers exécutables sous Mac OS X vs Windows

11

J'ai vu que chaque fichier exécutable sous Windows a une extension .exe. Mais Mac OS X n'a ​​pas la même chose.

Windows exécute des fichiers .exe. Alors quel type de fichiers Mac OS X exécute-t-il?

Quelle est la différence entre l'exécution des deux applications du système d'exploitation?

Même moi, j'ai trouvé que les configurations Windows ont la même extension .exe mais sur un Mac les configurations ont l'extension .dmg

Souhaitez-vous s'il vous plaît partager vos connaissances avec moi sur .dmg et exécutables sur Mac vs Windows?

Sagar R. Kothari
la source

Réponses:

18

Les extensions ne changent pas réellement le type de fichier, bien qu'elles indiquent souvent au système ce que fait un élément particulier.

Les DMG ne sont pas des exécutables, ce sont des images de disque. Ce sont des fichiers qui agissent comme des disques, qui contiennent souvent les exécutables et autres fichiers pour les applications. Lorsque vous double-cliquez sur l'un d'eux, le système le monte et vous avez alors accès aux fichiers qu'il contient.

Windows et OS X exécutent tous deux des fichiers exécutables binaires, bien qu'ils soient dans des formats différents. La grande différence dans ce qu'un utilisateur voit s'il utilise l'interface graphique est que sous Windows, vous voyez généralement le fichier exécutable .exe, qui réside dans un dossier qui contient d'autres fichiers et informations que le programme utilise. Sous OS X, tous ces autres fichiers, ainsi que l'exécutable principal, sont contenus dans un "bundle" (vraiment un dossier) avec l'extension .app. Double-cliquez sur un bundle .app pour exécuter l'exécutable interne et charger votre application.

En dehors de l'interface graphique, dans la structure de fichiers réelle, les systèmes Mac et Windows sont vraiment assez similaires; ces différences sont principalement une question de la façon dont le système présente les choses à l'utilisateur pour manipulation dans l'interface graphique.

phoebus
la source
Mac exécute également des fichiers .pkg (package)
Joshkunz
2
Les fichiers .pkg sont des ensembles compressés de fichiers contenant un exécutable et d'autres données d'installation, un peu comme un .app compressé entièrement contenu destiné à l'installation.
phoebus
3
Les fichiers .pkg sont en fait des documents techniques pour Installer.app. S'ils s'exécutent réellement comme un programme distinct, ils ne sont pas de vrais .pkgs.
Chealion
Certes, j'aurais pu être plus clair sur ce point.
phoebus
@phoebus - Donc, pour être clair, un .pkg est un fichier, comme dans quelque chose que je peux proposer aux utilisateurs de télécharger à partir de mon site Web, et non un dossier, comme dans quelque chose que je ne peux pas proposer aux utilisateurs de télécharger à partir de mon site Web?
ArtOfWarfare
4

Vous pourrez également exécuter n'importe quel fichier dont les autorisations sont définies sur exécutable, étant donné qu'il contient bien sûr un programme valide.

Fred
la source
1
Le format exécutable natif sur mac os est mach-O BTW. en.wikipedia.org/wiki/Mach-O
Fred
4

.dmgLes fichiers sont les fichiers d'image disque normalement utilisés pour installer les applications Mac. Une fois installées, les applications Mac ont généralement l'extension de .app, mais cette extension est normalement cachée à l'utilisateur. Les applications Mac sont des packages qui apparaissent à l'utilisateur sous la forme d'un fichier unique. Cela rend très pratique le déplacement d'applications vers un nouveau dossier ou un nouvel ordinateur.

Bob D
la source
0

chaque fichier exécutable sous Windows a l'extension .exe

Ce n'est pas correct. Sous DOS, il y avait 2 extensions de fichiers exécutables: *.COMet *.EXE. Windows en a hérité, il prend donc également en charge * .com et * .exe . Notez que * .exe est juste le "conteneur" qui contient divers formats exécutables

Si vous exécutez une commande sans extension, Windows ajoute les extensions dans la %pathext%variable d'environnement et recherche jusqu'à ce qu'il trouve le premier fichier portant ce nom. La valeur par défaut de la variable est comme ceci

>echo %pathext%
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

Comme vous pouvez le voir, il existe d'autres types de fichiers exécutables que Windows exécutera (sans extension), mais la plupart d'entre eux sont des scripts et non des exécutables binaires .

Néanmoins, Windows n'utilise pas réellement l'extension de fichier pour déterminer le format de fichier. Tout fichier commençant parMZ (qui est la signature du format MZ) sera traité comme un fichier exécutable .

Windows 10 a également la possibilité d'exécuter des binaires ELF Linux avec l'introduction de

Les fichiers d'installation sous Windows sont également souvent fournis dans des fichiers * .msi qui sont un format lu par Windows Installer , bien qu'à proprement parler ce ne soit pas un fichier exécutable

phuclv
la source
1
Les fichiers MSI et JS sont exécutables, mais pas exécutables. MSI est un package d'installation: lorsque vous double-cliquez dessus, le msiexec.exedémarre et l'ouvre, tout comme vous pouvez utiliser Paint pour ouvrir des fichiers JPEG - il n'en fait pas un exécutable. Donc, avec JS, WScript.exeest utilisé pour les ouvrir (vérifiez la branche HKCU dans votre registre). Les BAT et les CMD se situent quelque part entre les deux, on pourrait dire s'ils sont exécutables - ils sont pris en charge nativement par Explorer, mais doivent encore être interprétés.
gronostaj
de cette manière, les fichiers exe .NET ne sont pas non plus des "exécutables" car ils ne peuvent s'exécuter que sous le framework .NET, pas directement par le CPU
phuclv
1
Cela dépend de la façon dont vous définissez «l'exécutabilité». Je pense que les MSI ne sont sans aucun doute pas exécutables, car ils ne sont qu'une archive - optimisée pour les installateurs, mais cela n'a pas d'importance dans ce cas. Ils ne sont pas plus exécutables que les ZIP. Les scripts de toute nature sont à la limite de «l'exécutabilité», car ils ont besoin d'un interprète. Je ne connais pas les détails sur la façon dont les EXE .NET sont exécutés, mais je dirais que c'est le même cas que CLASS - ils contiennent une sorte de code machine (qui a besoin de traduction / interprétation, mais quand même).
gronostaj