Các tệp thực thi trong Mac OS X so với Windows


11

Tôi đã thấy rằng mọi tệp thực thi trong Windows đều có phần mở rộng là .exe. Nhưng Mac OS X không giống nhau.

Windows thực thi các tập tin .exe. Vậy thì Mac OS X thực thi loại tập tin nào?

Sự khác biệt giữa việc thực thi các ứng dụng của cả hai hệ điều hành là gì?

Ngay cả tôi cũng thấy rằng các thiết lập windows có cùng phần mở rộng .exe nhưng trên các thiết lập Mac có phần mở rộng là .dmg

Bạn có thể chia sẻ kiến ​​thức của mình với tôi về .dmg & thực thi trên máy Mac so với Windows không?

Câu trả lời:


18

Phần mở rộng không thực sự thay đổi loại tập tin gì đó, mặc dù chúng thường gợi ý cho hệ thống những gì làm với một mục cụ thể.

DMG không phải là thực thi, chúng là hình ảnh đĩa. Chúng là các tệp đóng vai trò là đĩa, thường chứa các tệp thực thi và các tệp khác cho các ứng dụng. Khi bạn bấm đúp vào một cái, hệ thống sẽ gắn kết nó và sau đó bạn có quyền truy cập vào các tệp bên trong.

Cả Windows và OS X đều thực thi các tệp thực thi nhị phân, mặc dù chúng ở các định dạng khác nhau. Sự khác biệt lớn về những gì người dùng nhìn thấy nếu sử dụng GUI là trên Windows, bạn thường thấy tệp thực thi .exe, nằm trong một thư mục chứa các tệp và thông tin khác mà chương trình sử dụng. Trên OS X, tất cả các tệp khác đó, cùng với tệp thực thi chính, được chứa trong một "gói" (thực sự là một thư mục) với phần mở rộng .app. Nhấp đúp vào gói .app sẽ thực thi nội bộ thực thi và tải ứng dụng của bạn.

Ngoài GUI, trong cấu trúc tệp thực tế, các hệ thống Mac và Windows thực sự khá giống nhau; những khác biệt này chủ yếu là một câu hỏi về cách hệ thống trình bày mọi thứ cho người dùng để thao tác trong GUI.


Mac cũng thực thi các tệp .pkg (gói)
Joshkunz

2
Các tệp .pkg là các gói tệp nén chứa dữ liệu trình cài đặt và dữ liệu cài đặt khác, giống như một tệp .app được chứa đầy đủ, được nén dành cho mục đích.
phoebus

3
Các tệp .pkg thực sự là tài liệu kỹ thuật cho Installer.app. Nếu họ thực sự chạy như một chương trình riêng biệt thì họ không đúng .pkgs.
Chealion

Đúng, tôi có thể đã rõ ràng hơn về điểm đó.
phoebus

@phoebus - Vì vậy, để rõ ràng, .pkg là một tệp, như trong một thứ gì đó tôi có thể cung cấp cho người dùng để tải xuống từ trang web của tôi chứ không phải thư mục, như trong một cái gì đó mà tôi không thể cung cấp cho người dùng tải xuống từ trang web của mình?
ArtOfWarfare

4

Bạn cũng sẽ có thể thực thi bất kỳ tệp nào có quyền được đặt thành có thể thực thi được, tất nhiên là nó thực sự chứa một chương trình hợp lệ.


1
Định dạng thực thi riêng trên mac os là mach-O BTW. vi.wikipedia.org/wiki/Mach-O
Fred

4

.dmgtệp là tệp hình ảnh đĩa thường được sử dụng để cài đặt ứng dụng Mac. Sau khi cài đặt, các ứng dụng Mac thường có phần mở rộng .app, nhưng phần mở rộng đó thường bị ẩn khỏi người dùng. Ứng dụng Mac là các gói xuất hiện cho người dùng dưới dạng một tệp. Điều này làm cho nó rất thuận tiện để di chuyển các ứng dụng sang một thư mục mới hoặc một máy tính mới.


0

mọi tệp thực thi trong Windows đều có phần mở rộng .exe

Điều này LAF không đúng. Trong DOS có 2 phần mở rộng tập tin thực thi: *.COM*.EXE. Windows được thừa hưởng những cái đó vì vậy nó cũng hỗ trợ * .com và * .exe . Lưu ý rằng * .exe chỉ là "vùng chứa" chứa các định dạng thực thi khác nhau

Nếu bạn chạy một lệnh không có phần mở rộng, Windows sẽ nối các phần mở rộng trong %pathext%biến môi trường và tìm kiếm cho đến khi tìm thấy tệp đầu tiên có tên đó. Giá trị mặc định của biến là như thế này

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

Như bạn có thể thấy có các loại tệp thực thi khác mà Windows sẽ chạy (không có phần mở rộng), nhưng hầu hết chúng là các tập lệnh và không phải là tệp thực thi nhị phân .

Tuy nhiên, Windows không thực sự sử dụng phần mở rộng tệp để xác định định dạng tệp. Bất kỳ tệp nào bắt đầu bằngMZ (là chữ ký cho định dạng MZ) sẽ được coi là tệp thực thi .

Windows 10 cũng có khả năng chạy các tệp nhị phân Linux ELF với sự ra đời của

Các tệp thiết lập trong Windows cũng thường được cung cấp trong các tệp * .msi có định dạng được đọc bởi Windows Installer , mặc dù nói đúng ra đây không phải là tệp thực thi


1
Các tệp MSI và JS có thể thực thi được, nhưng không thể thực thi được. MSI là gói cài đặt: khi bạn nhấp đúp vào gói, msiexec.exekhởi động và mở gói, giống như bạn có thể sử dụng Paint để mở JPEG - nó không làm cho chúng có thể thực thi được. Vì vậy, với JS, WScript.exeđược sử dụng để mở chúng (kiểm tra chi nhánh HKCU trong sổ đăng ký của bạn). BAT và CMD nằm ở đâu đó ở giữa, người ta có thể tranh luận nếu chúng có thể thực thi được - chúng được Explorer hỗ trợ, nhưng vẫn phải được giải thích.
gronostaj

theo cách đó, các tệp exe .NET cũng không "thực thi" được vì chúng chỉ có thể chạy trong .NET framework chứ không phải trực tiếp bởi CPU
phuclv

1
Nó phụ thuộc vào cách bạn xác định 'khả năng thực thi'. Tôi tin rằng MSI chắc chắn không thể thực thi được, bởi vì chúng chỉ là một kho lưu trữ - được tối ưu hóa cho các trình cài đặt, nhưng nó không thành vấn đề trong trường hợp này. Chúng không thực thi hơn ZIP. Các tập lệnh thuộc bất kỳ loại nào đều nằm ở cạnh 'khả năng thực thi', bởi vì chúng cần một trình thông dịch. Tôi không biết chi tiết về cách .NET EXE được thực thi, nhưng tôi nói rằng chúng giống với trường hợp LỚP - chúng chứa một số loại mã máy (cần dịch / phiên dịch, nhưng vẫn vậy).
gronostaj
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.