Nhiều người đã trả lời một số khía cạnh của truy vấn, nhưng không phải tất cả.
Tất cả các tệp trên máy tính được lưu trữ dưới dạng 1 và 0. Hình ảnh, tệp văn bản, âm nhạc, ứng dụng thực thi, tệp đối tượng, v.v.
Tất cả đều là 0 và 1. Sự khác biệt duy nhất là chúng được diễn giải khác nhau tùy thuộc vào những gì mở chúng.
Khi bạn xem tệp văn bản bằng cách sử dụng cat
, tệp thực thi ( cat
trong trường hợp này) sẽ đọc tất cả 1 và 0 và nó hiển thị chúng cho bạn bằng cách chuyển đổi chúng thành các ký tự từ bảng chữ cái hoặc ngôn ngữ có liên quan của bạn.
Khi bạn xem tệp bằng trình xem hình ảnh, nó sẽ lấy tất cả 1 và 0 và biến chúng thành một hình ảnh, tùy thuộc vào định dạng của tệp và một số logic để xử lý tất cả.
Các tệp nhị phân được biên dịch không khác nhau, chúng được lưu trữ dưới dạng 1 và 0.
Câu trả lời của arzyfex cung cấp cho bạn các công cụ để xem các tệp đó theo các cách khác nhau, nhưng đọc một tệp dưới dạng nhị phân hoạt động cho bất kỳ tệp nào trên máy tính, cũng như xem nó dưới dạng bát phân, hoặc hex, hoặc thực sự là ASCII, nó chỉ có thể không có ý nghĩa trong mỗi của những định dạng đó.
Nếu bạn muốn hiểu tệp nhị phân thực thi là gì, bạn cần xem nó theo cách hiển thị cho bạn ngôn ngữ trình biên dịch (như một sự khởi đầu), mà bạn có thể thực hiện bằng cách sử dụng,
objdump -d /path/to/binary
đó là một trình dịch ngược, nó lấy nội dung nhị phân và chuyển đổi lại thành trình biên dịch chương trình (là ngôn ngữ lập trình cấp độ rất thấp). objdump
không phải lúc nào cũng được cài đặt theo mặc định, vì vậy có thể cần phải được cài đặt tùy thuộc vào môi trường Linux của bạn.
Một số đọc bên ngoài.
NB: như @Wildcard chỉ ra, điều quan trọng cần lưu ý là các tệp không chứa các ký tự 1 và 0 (như bạn thấy chúng trên màn hình), chúng chứa dữ liệu số thực tế, các bit thông tin riêng lẻ nằm trên (1) hoặc tắt (0). Ngay cả mô tả đó chỉ là một sự gần đúng của sự thật. Điểm mấu chốt của chúng là nếu bạn tìm thấy trình xem hiển thị cho bạn 1 và 0, thậm chí đó vẫn đang diễn giải dữ liệu từ tệp và sau đó hiển thị cho bạn các ký tự ASCII cho 0 và 1. Dữ liệu được lưu trữ ở định dạng nhị phân ( xem liên kết số nhị phân ở trên). Mục wiki cộng đồng của Pierre-Olivier bao gồm điều này chi tiết hơn.