Bất cứ ai cũng có thể phân biệt sự khác biệt giữa tệp nhị phân và tệp .exe?
.bin
và .exe
tên tệp ?
Bất cứ ai cũng có thể phân biệt sự khác biệt giữa tệp nhị phân và tệp .exe?
.bin
và .exe
tên tệp ?
Câu trả lời:
tệp nhị phân có khá nhiều thứ không phải là văn bản thuần túy , chứa dữ liệu được mã hóa theo bất kỳ cách nào khác với mã hóa văn bản (ASCII, UTF-8 hoặc bất kỳ mã hóa văn bản nào khác, ví dụ ISO-8859-2). Một tệp văn bản có thể là một tài liệu văn bản gốc, như một câu chuyện hoặc một bức thư, nó có thể là một tệp cấu hình hoặc một tệp dữ liệu - dù sao, nếu bạn sử dụng một trình soạn thảo văn bản đơn giản để mở nó, nội dung có thể đọc được. Tệp nhị phân là bất kỳ tệp nào không phải là tệp văn bản (cũng không phải là "đặc biệt" như fifo, thư mục, thiết bị, v.v.)
Đó có thể là một bản nhạc mp3. Đó có thể là một hình ảnh jpg. Đó có thể là một kho lưu trữ nén, hoặc thậm chí là một tài liệu xử lý văn bản - trong khi với mục đích thực tế, nó là văn bản, nó được mã hóa (ghi trên đĩa) dưới dạng nhị phân. Bạn cần một chương trình cụ thể để mở nó, để hiểu ý nghĩa của nó - đối với một trình soạn thảo văn bản, nội dung là một mớ hỗn độn.
Bây giờ, trong Linux, bạn sẽ thường nghe thấy "nhị phân" khi đề cập đến "tệp thực thi nhị phân" - các chương trình. Điều này là do trong khi các nguồn của hầu hết các chương trình (được viết bằng ngôn ngữ cấp cao) là văn bản thuần túy, thì các tệp thực thi được biên dịch là nhị phân. Vì có khá nhiều định dạng được biên dịch (a.out, ELF, bytecode ...) nên chúng thường được gọi là nhị phân thay vì dựa trên cấu trúc bên trong mà chúng có - theo quan điểm của người dùng, chúng khá giống nhau.
Bây giờ, .exe chỉ là một định dạng được biên dịch khác - một định dạng phổ biến cho MS Windows. Nó chỉ là một loại nhị phân, được biên dịch và liên kết với Windows API.
Các tệp hàng loạt thực sự chỉ là các tệp văn bản hoặc các tập lệnh nhỏ có thể được thực thi bởi bộ xử lý dòng lệnh - "cmd.exe", chúng được sử dụng rộng rãi trong môi trường DOS để tự động hóa các tác vụ thông thường.
Các tệp EXE khác với các tệp BAT vì chúng chứa dữ liệu nhị phân thực thi thay vì các lệnh văn bản thuần túy. Chúng được lưu trữ ở định dạng Portable Executable (PE). Định dạng tệp EXE bao gồm các tiêu đề và phần khác nhau cho Windows biết cách chạy chương trình. Một số phần của tệp EXE có thể chứa mã chương trình trong khi các phần khác có thể chứa dữ liệu tài nguyên.
Nói chung, có thể nói rằng không có sự khác biệt: trong MS Windows OS thực thi có tên *.exe
, nhưng trong thực thi hệ điều hành giống như * nix có thể được đặt tên bất cứ điều gì bạn thích và được gọi là "tệp nhị phân".
Nhưng điều đó không có nghĩa là mọi tệp nhị phân đều có thể thực thi được (như *.exe
): nhị phân có thể chỉ là một loại kho lưu trữ thông tin. Ví dụ: các tệp cơ sở dữ liệu (như tệp MyISAM hoặc InnoDB cho cơ sở dữ liệu MySQL) cũng là các tệp nhị phân (nhưng không thể thực thi được).