Pliki wykonywalne w systemie Mac OS X vs Windows

11

Widziałem, że każdy plik wykonywalny w systemie Windows ma rozszerzenie .exe. Ale Mac OS X nie ma tego samego.

Windows wykonuje pliki .exe. Więc jakie pliki wykonuje Mac OS X?

Jaka jest różnica między wykonywaniem aplikacji przez oba systemy operacyjne?

Nawet ja odkryłem, że konfiguracje systemu Windows mają to samo rozszerzenie .exe, ale na konfiguracjach komputerów Mac mają rozszerzenie .dmg

Czy mógłbyś podzielić się ze mną swoją wiedzą na temat .dmg i plików wykonywalnych na komputerach Mac vs. Windows?

Sagar R. Kothari
źródło

Odpowiedzi:

18

Rozszerzenia tak naprawdę nie zmieniają, jaki typ pliku to coś, chociaż często podpowiadają systemowi, co zrobić z określonym elementem.

Pliki DMG nie są plikami wykonywalnymi, są obrazami dysków. Są to pliki, które działają jak dyski, które często zawierają pliki wykonywalne i inne pliki aplikacji. Po dwukrotnym kliknięciu jednego z nich system montuje go, a następnie masz dostęp do plików w nim zawartych.

Zarówno Windows, jak i OS X wykonują binarne pliki wykonywalne, chociaż są one w różnych formatach. Duża różnica w tym, co widzi użytkownik korzystający z GUI, polega na tym, że w systemie Windows zwykle widać plik wykonywalny .exe, który znajduje się w folderze zawierającym inne pliki i informacje używane przez program. W OS X wszystkie inne pliki, wraz z podstawowym plikiem wykonywalnym, są zawarte w „pakiecie” (tak naprawdę w folderze) z rozszerzeniem .app. Dwukrotne kliknięcie pakietu .app uruchomi wewnętrzny plik wykonywalny i załaduje aplikację.

Poza GUI, w rzeczywistej strukturze plików, systemy Mac i Windows są naprawdę bardzo podobne; różnice te są głównie kwestią tego, w jaki sposób system przedstawia użytkownikowi elementy do manipulacji w interfejsie GUI.

phoebus
źródło
Mac wykonuje również pliki
.pkg
2
Pliki .pkg to skompresowane pakiety plików zawierające plik wykonywalny i inne dane instalatora, podobnie jak w pełni zawarty, skompresowany plik .app przeznaczony do instalacji.
phoebus
3
Pliki .pkg są właściwie dokumentami technicznymi dla Installer.app. Jeśli faktycznie działają jako osobny program, nie są prawdziwe .pkgs.
Chealion
To prawda, mógłbym być jaśniejszy w tej kwestii.
phoebus
@ phoebus - Żeby było jasne, plik .pkg to plik, ponieważ w czymś, co mogę zaoferować użytkownikom do pobrania z mojej strony, a nie folder, jak w czymś, czego nie mogę zaoferować użytkownikom do pobrania z mojej strony?
ArtOfWarfare
4

Będziesz także mógł wykonać dowolny plik, który ma uprawnienia ustawione na wykonywalne, biorąc pod uwagę, że faktycznie zawiera on prawidłowy program.

Fred
źródło
1
Natywny format wykonywalny w systemie Mac OS to mach-O BTW. en.wikipedia.org/wiki/Mach-O
Fred
4

.dmgpliki to pliki obrazów dysków zwykle używane do instalowania aplikacji Mac. Po zainstalowaniu aplikacje Mac zwykle mają rozszerzenie .app, ale to rozszerzenie jest zwykle ukryte przed użytkownikiem. Aplikacje na komputery Mac to pakiety, które są wyświetlane użytkownikowi jako pojedynczy plik. Dzięki temu przenoszenie aplikacji do nowego folderu lub nowego komputera jest bardzo wygodne.

Bob D.
źródło
0

każdy plik wykonywalny w systemie Windows ma rozszerzenie .exe

To nie jest poprawne. W DOSie były 2 rozszerzenia plików wykonywalnych: *.COMi *.EXE. Windows odziedziczył je, więc obsługuje również * .com i * .exe . Zauważ, że * .exe to tylko „kontener”, który zawiera różne formaty plików wykonywalnych

Jeśli uruchomisz polecenie bez rozszerzenia, system Windows doda rozszerzenia do %pathext%zmiennej środowiskowej i przeszuka, aż znajdzie pierwszy plik o tej nazwie. Domyślna wartość zmiennej jest taka

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

Jak widać, istnieją inne typy plików wykonywalnych , które Windows uruchomi (bez rozszerzenia), ale większość z nich to skrypty, a nie binarne pliki wykonywalne .

Niemniej jednak system Windows tak naprawdę nie używa rozszerzenia pliku do określenia formatu pliku. Wszelkie pliki zaczynające się odMZ (co jest sygnaturą formatu MZ) będą traktowane jako plik wykonywalny .

System Windows 10 ma również możliwość uruchamiania plików binarnych ELF systemu Linux z wprowadzeniem systemu

Pliki instalacyjne w systemie Windows są często dostarczane w plikach * .msi, których format jest odczytywany przez Instalatora Windows , chociaż ściśle mówiąc, nie jest to plik wykonywalny

phuclv
źródło
1
Pliki MSI i JS są plikami wykonywalnymi, ale nie plikami wykonywalnymi. MSI jest pakietem instalacyjnym: po dwukrotnym kliknięciu msiexec.exeuruchamia i otwiera go, tak jak przy użyciu programu Paint do otwierania plików JPEG - nie czyni ich to plikiem wykonywalnym. Tak więc w JS WScript.exesłuży do ich otwierania (sprawdź oddział HKCU w rejestrze). BAT i CMD są gdzieś pośrodku, można się spierać, czy są one wykonywalne - są natywnie obsługiwane przez Explorer, ale nadal muszą być interpretowane.
gronostaj
w ten sposób pliki exe .NET również nie są „plikami wykonywalnymi”, ponieważ mogą działać tylko w środowisku .NET, a nie bezpośrednio przez procesor
phuclv
1
To zależy od tego, jak zdefiniujesz „wykonywalność”. Uważam, że MSI bez wątpienia nie są wykonywalne, ponieważ są tylko archiwum zoptymalizowanym dla instalatorów, ale w tym przypadku nie ma to znaczenia. Nie są bardziej wykonalne niż pliki ZIP. Skrypty wszelkiego rodzaju są na granicy „wykonywalności”, ponieważ potrzebują tłumacza. Nie znam szczegółów dotyczących sposobu uruchamiania plików .NET EXE, ale powiedziałbym, że są one takie same jak w przypadku CLASS - zawierają one pewien kod maszynowy (który wymaga tłumaczenia / interpretacji, ale nadal).
gronostaj