Định dạng nghĩa là gì

Định dạng tập tin là một cách chuẩn để thông tin được mã hóa trong việc lưu trữ trong các file. Nó chỉ định cách các bit được sử dụng để mã hóa thông tin trong một phương tiện lưu trữ kỹ thuật số. Các định dạng tập tin có thể là độc quyền hoặc tự do và có thể không được công bố hoặc mở.

Một số định dạng tập tin được thiết kế cho các loại dữ liệu rất đặc biệt: ví dụ: file PNG, lưu trữ hình ảnh bitmap bằng cách sử dụng nén không mất dữ liệu. Tuy nhiên, các định dạng tập tin khác được thiết kế để lưu trữ một số loại dữ liệu khác nhau: định dạng Ogg có thể đóng vai trò là bộ chứa cho các loại đa phương tiện khác nhau, bao gồm mọi kết hợp âm thanh và video, có hoặc không có văn bản [như phụ đề] và siêu dữ liệu. Một tệp văn bản có thể chứa bất kỳ luồng ký tự nào, bao gồm các ký tự điều khiển có thể và được mã hóa theo một trong các sơ đồ mã hóa ký tự khác nhau. Một số định dạng tập tin, chẳng hạn như HTML, SVG và mã nguồn của phần mềm máy tính là các tệp văn bản với các cú pháp được xác định cho phép chúng được sử dụng cho các mục đích cụ thể.

Mục lục

  • 1 Thông số kỹ thuật
  • 2 Bằng sáng chế
  • 3 Xác định loại file
    • 3.1 Phần mở rộng tên file
    • 3.2 Siêu dữ liệu nội bộ
      • 3.2.1 File header
      • 3.2.2 Magic number
    • 3.3 Siêu dữ liệu bên ngoài
      • 3.3.1 Mã loại Mac OS
      • 3.3.2 Mã định danh thống nhất Mac OS X [UTI]
      • 3.3.3 Thuộc tính mở rộng POSIX
      • 3.3.4 Mã định danh duy nhất PRONOM [PUID]
      • 3.3.5 MIME types
      • 3.3.6 Định danh định dạng tập tin [FFID]
      • 3.3.7 Định dạng dựa trên nội dung file
  • 4 Cấu trúc file
    • 4.1 Các định dạng không cấu trúc [bãi chứa bộ nhớ thô]
    • 4.2 Định dạng dựa trên chunk
    • 4.3 Định dạng dựa trên thư mục
  • 5 Chú thích
  • 6 Liên kết ngoài

Thông số kỹ thuậtSửa đổi

Các định dạng tập tin thường có một đặc tả được công bố mô tả phương pháp mã hóa và cho phép thử nghiệm chức năng dự định của chương trình. Không phải tất cả các định dạng đều có tài liệu đặc tả có sẵn miễn phí, một phần vì một số nhà phát triển xem tài liệu đặc tả của họ là bí mật thương mại và một phần vì các nhà phát triển khác không bao giờ tạo tài liệu đặc tả chính thức, cho phép các chương trình khác xác định định dạng.[cần giải thích]

Nếu nhà phát triển định dạng không xuất bản thông số kỹ thuật miễn phí, nhà phát triển khác muốn sử dụng loại file đó phải dò ngược file để tìm cách đọc hoặc lấy tài liệu đặc tả từ nhà phát triển định dạng có tính phí và một thỏa thuận không tiết lộ. Cách tiếp cận thứ hai chỉ có thể khi một tài liệu đặc tả chính thức tồn tại. Cả hai chiến lược đều đòi hỏi thời gian, tiền bạc hoặc cả hai; do đó, các định dạng tập tin với thông số kỹ thuật có sẵn công khai có xu hướng được hỗ trợ bởi nhiều chương trình hơn.

Bằng sáng chếSửa đổi

Luật sáng chế, thay vì bản quyền, thường được sử dụng để bảo vệ định dạng tập tin. Mặc dù bằng sáng chế cho các định dạng tập tin không được phép trực tiếp theo luật pháp Mỹ, một số định dạng mã hóa dữ liệu bằng thuật toán được cấp bằng sáng chế. Ví dụ: sử dụng nén với định dạng tệp GIF yêu cầu sử dụng thuật toán được cấp bằng sáng chế và mặc dù chủ sở hữu bằng sáng chế ban đầu không thực thi bằng sáng chế của họ, sau đó họ bắt đầu thu phí bản quyền. Điều này đã dẫn đến việc giảm đáng kể việc sử dụng GIF và chịu trách nhiệm một phần cho việc phát triển định dạng PNG thay thế. Tuy nhiên, bằng sáng chế đã hết hạn ở Mỹ vào giữa năm 2003 và trên toàn thế giới vào giữa năm 2004.

Xác định loại fileSửa đổi

Theo truyền thống, các hệ điều hành khác nhau thường áp dụng các cách tiếp cận khác nhau để xác định định dạng của một file cụ thể, với mỗi cách tiếp cận có những ưu điểm và nhược điểm riêng. Hầu hết các hệ điều hành hiện đại và các ứng dụng riêng lẻ cần sử dụng tất cả các cách tiếp cận sau đây để đọc các định dạng tệp "bên ngoài", nếu không hoạt động hoàn toàn với chúng.

Phần mở rộng tên fileSửa đổi

Một phương pháp phổ biến được sử dụng bởi nhiều hệ điều hành, bao gồm Windows, Mac OS X, CP/M, DOS, VMS và VM/CMS, là xác định định dạng của file dựa trên phần cuối của tên của nó. Phần này của tên file được gọi là phần mở rộng tên file. Ví dụ: các tài liệu HTML được xác định bằng các tên kết thúc bằng .html [hoặc .htm] và hình ảnh GIF theo .gif. Trong hệ thống tệp FAT ban đầu, tên file được giới hạn ở định danh tám ký tự và phần mở rộng ba ký tự, được gọi là tên tệp 8.3. Có rất nhiều phần mở rộng ba chữ cái, vì vậy, thường thì mọi phần mở rộng đã cho có thể được liên kết với nhiều chương trình. Nhiều định dạng vẫn sử dụng các phần mở rộng ba ký tự mặc dù các hệ điều hành và chương trình ứng dụng hiện đại không còn giới hạn này nữa. Vì không có danh sách các tiện ích mở rộng tiêu chuẩn, nhiều định dạng có thể sử dụng cùng một tiện ích mở rộng, điều này có thể gây nhầm lẫn cho cả hệ điều hành và người dùng.

Một yếu tố của cách tiếp cận này là hệ thống có thể dễ dàng bị đối xử lý với một file theo định dạng khác chỉ bằng cách đổi tên nó - ví dụ, file HTML có thể dễ dàng được coi là văn bản thuần túy bằng cách đổi tên từ filename.html thành filename.txt. Mặc dù chiến lược này hữu ích với những người dùng chuyên gia có thể dễ dàng hiểu và thao tác thông tin này, nhưng nó thường gây nhầm lẫn cho những người dùng ít kỹ thuật hơn, những người có thể vô tình làm cho một file không thể sử dụng [hoặc "mất" nó] bằng cách đổi tên không chính xác.

Điều này khiến các hệ điều hành gần đây hơn, chẳng hạn như Windows 95 và Mac OS X, ẩn phần mở rộng khi liệt kê các file. Điều này ngăn người dùng vô tình thay đổi loại file và cho phép người dùng chuyên gia tắt tính năng này và hiển thị các tiện ích mở rộng.

Tuy nhiên, ẩn phần mở rộng có thể tạo ra sự xuất hiện của hai hoặc nhiều tên file giống nhau trong cùng một thư mục. Ví dụ: logo công ty có thể cần cả ở định dạng .eps [để xuất bản] và định dạng .png [cho các trang web]. Với các phần mở rộng có thể nhìn thấy, chúng sẽ xuất hiện dưới dạng tên tệp duy nhất "CompanyLogo.eps" và "CompanyLogo.png". Mặt khác, việc ẩn các tiện ích mở rộng sẽ khiến cả hai xuất hiện dưới dạng "CompanyLogo".

Ẩn tiện ích mở rộng cũng có thể gây ra rủi ro bảo mật.[1] Ví dụ: người dùng độc hại có thể tạo một chương trình thực thi với tên vô tội, chẳng hạn như "Holiday photo.jpg.exe".".Exe" sẽ bị ẩn và người dùng sẽ thấy "Holiday photo.jpg ", có vẻ như là một hình ảnh JPEG, không thể làm hại máy lưu cho các lỗi trong ứng dụng được sử dụng để xem nó. Tuy nhiên, hệ điều hành vẫn sẽ thấy phần mở rộng ".exe" và do đó chạy chương trình, sau đó có thể gây hại cho máy tính. Điều tương tự cũng đúng với các file chỉ có một phần mở rộng: vì nó không được hiển thị cho người dùng, không có thông tin nào về file có thể được suy luận mà không điều tra rõ ràng về file. Phần mở rộng có thể bị giả mạo. Một số virus macro Word tạo một file Word ở định dạng mẫu và lưu nó với một phần mở rộng.DOC. Vì Word thường bỏ qua các phần mở rộng và xem định dạng của file, những file này sẽ mở dưới dạng mẫu, thực thi và phát tán vi-rút. Để lừa thêm người dùng, có thể lưu trữ một biểu tượng bên trong chương trình, trong trường hợp đó, việc gán biểu tượng của một số hệ điều hành cho file thực thi [.exe] sẽ bị ghi đè bằng một biểu tượng thường được sử dụng để thể hiện hình ảnh JPEG như một hình ảnh. Vấn đề này đòi hỏi người dùng có các tiện ích mở rộng bị ẩn phải cảnh giác và không bao giờ để hệ điều hành chọn chương trình nào để mở tệp không đáng tin cậy [điều này mâu thuẫn với ý tưởng làm cho mọi thứ dễ dàng hơn cho người dùng]. Điều này thể hiện một vấn đề thực tế cho các hệ thống Windows, nơi ẩn tiện ích mở rộng được bật theo mặc định.

Siêu dữ liệu nội bộSửa đổi

Cách thứ hai để xác định định dạng tập tin là sử dụng thông tin liên quan đến định dạng được lưu trữ bên trong file, thông tin có nghĩa cho mục đích này hoặc chuỗi nhị phân luôn lưu trữ ở các vị trí cụ thể trong một số định dạng. Vì vị trí dễ nhất để xác định vị trí của chúng là ở đầu, khu vực như vậy thường được gọi là file header khi nó lớn hơn một vài byte hoặc một số magic number nếu nó chỉ dài vài byte.

File headerSửa đổi

Siêu dữ liệu chứa trong file header thường được lưu trữ ở đầu file, nhưng cũng có thể có ở các khu vực khác, thường bao gồm cả cuối file, tùy thuộc vào định dạng tập tin hoặc loại dữ liệu được chứa. Các file dựa trên ký tự [văn bản] thường có các tiêu đề dựa trên ký tự, trong khi các định dạng nhị phân thường có các tiêu đề nhị phân, mặc dù đây không phải là quy tắc. Các tiêu đề file dựa trên văn bản thường chiếm nhiều dung lượng hơn, nhưng có thể đọc được bằng con người, chúng có thể dễ dàng được kiểm tra bằng cách sử dụng phần mềm đơn giản như trình soạn thảo văn bản hoặc trình soạn thảo Hex.

Cũng như xác định định dạng tập tin, các tiêu đề file có thể chứa siêu dữ liệu về file và nội dung của file. Ví dụ: hầu hết các file hình ảnh lưu trữ thông tin về định dạng hình ảnh, kích thước, độ phân giải và không gian màu và tùy chọn thông tin tác giả như ai đã tạo ra hình ảnh, khi nào và ở đâu, chế độ máy ảnh và cài đặt ảnh nào được sử dụng [Exif]. Siêu dữ liệu như vậy có thể được sử dụng bằng phần mềm đọc hoặc giải thích file trong quá trình tải và sau đó.

Các tiêu đề file có thể được sử dụng bởi một hệ điều hành để nhanh chóng thu thập thông tin về một file mà không tải tất cả vào bộ nhớ, nhưng làm như vậy sẽ sử dụng nhiều tài nguyên của máy tính hơn là đọc trực tiếp từ thông tin thư mục. Ví dụ, khi trình quản lý file đồ họa phải hiển thị nội dung của thư mục, nó phải đọc các tiêu đề của nhiều tệp trước khi có thể hiển thị các biểu tượng thích hợp, nhưng chúng sẽ được đặt ở các vị trí khác nhau trên phương tiện lưu trữ, do đó mất nhiều thời gian hơn để truy cập. Một thư mục chứa nhiều file có siêu dữ liệu phức tạp như thông tin hình thu nhỏ có thể cần thời gian đáng kể trước khi có thể được hiển thị.

Nếu một tiêu đề được mã hóa nhị phân sao cho chính tiêu đề cần diễn giải phức tạp để được nhận ra, đặc biệt là vì mục đích bảo vệ nội dung siêu dữ liệu, có nguy cơ định dạng tập tin có thể bị hiểu sai. Nó thậm chí có thể đã được viết xấu tại nguồn. Điều này có thể dẫn đến siêu dữ liệu bị hỏng, trong trường hợp cực kỳ xấu, thậm chí có thể khiến file không thể đọc được.[cần giải thích]

Một ví dụ phức tạp hơn về các tiêu đề file là những tiêu đề được sử dụng cho các định dạng tập tin của trình bao bọc [hoặc vùng chứa].

Magic numberSửa đổi

Một cách để kết hợp siêu dữ liệu loại file, thường được liên kết với Unix và các dẫn xuất của nó, chỉ là lưu trữ "số ma thuật" bên trong file. Ban đầu, thuật ngữ này được sử dụng cho một bộ định danh 2 byte cụ thể khi bắt đầu các file, nhưng vì bất kỳ chuỗi nhị phân nào cũng có thể được coi là một số, bất kỳ tính năng nào của định dạng tập tin phân biệt duy nhất có thể được sử dụng để nhận dạng. Chẳng hạn, hình ảnh GIF luôn bắt đầu bằng đại diện ASCII của GIF87a hoặc GIF89a, tùy thuộc vào tiêu chuẩn mà chúng tuân thủ. Nhiều loại file, đặc biệt là file văn bản thuần, khó phát hiện hơn bằng phương pháp này. Ví dụ, các file HTML có thể bắt đầu bằng chuỗi < html> [không phân biệt chữ hoa chữ thường] hoặc định nghĩa loại tài liệu phù hợp bắt đầu bằng , hoặc, đối với XHTML, mã định danh XML, bắt đầu bằng

Chủ Đề