PAX (Pre-Allocate eXtension) là định dạng lưu trữ nén nguồn mở do Microsoft phát triển như một giải pháp thay thế hiện đại cho các định dạng hiện có như ZIP, RAR và tar. Định dạng này được thiết kế để giải quyết các hạn chế và cải thiện khả năng nén, hiệu suất, bảo mật và chức năng xử lý lưu trữ trên các hệ thống và thiết bị hiện đại.
Các tính năng khác biệt chính của định dạng PAX bao gồm khả năng nén nâng cao bằng các thuật toán hiện đại, truy cập ngẫu nhiên hiệu quả vào các tệp trong lưu trữ, hỗ trợ đa luồng gốc, siêu dữ liệu có thể mở rộng, mã hóa tích hợp và kiểm tra tính toàn vẹn, cũng như thông số kỹ thuật mở được ghi chép để khuyến khích áp dụng rộng rãi và khả năng tương tác.
Lưu trữ PAX sử dụng phần mở rộng tệp .pax và có cấu trúc nội bộ nhiều phần bao gồm tiêu đề, thư mục trung tâm, khối dữ liệu nén và chân trang. Điều này cho phép lưu trữ thông tin chính như nội dung lưu trữ, thông số nén và băm toàn vẹn riêng biệt với dữ liệu tệp nén thực tế.
Tiêu đề PAX bắt đầu bằng một số ma thuật 4 byte (50 41 58 00 ở dạng hex) để nhận dạng. Sau đó, nó chứa các trường cho phiên bản PAX, phương pháp nén, phương pháp mã hóa, phương pháp băm, kích thước khối, số luồng nén song song và nhiều cờ khác nhau. Tiêu đề kết thúc bằng siêu dữ liệu XML có thể mở rộng cung cấp thông tin chi tiết về lưu trữ.
Theo sau tiêu đề là thư mục trung tâm PAX. Thư mục này chứa một mục cho mỗi tệp/thư mục nén trong lưu trữ, lưu trữ đường dẫn đầy đủ, thuộc tính, kích thước, bù khối và băm. Việc có điều này ở một nơi cho phép liệt kê hiệu quả nội dung lưu trữ và truy cập ngẫu nhiên vào các tệp riêng lẻ mà không cần quét qua dữ liệu nén.
Phần lớn lưu trữ PAX là một loạt các khối dữ liệu nén. Mỗi khối có một tiêu đ ề nhỏ cho biết kích thước chưa nén và đã nén, theo sau là một phần dữ liệu tệp được nén bằng thuật toán được định cấu hình. Kích thước mặc định của các khối là 1 MB nhưng có thể điều chỉnh được trong tiêu đề lưu trữ.
Các khối dữ liệu nén được mã hóa tùy chọn nếu có chỉ định phương pháp mã hóa. PAX hỗ trợ các lược đồ mã hóa hiện đại như AES-256. Mật khẩu lưu trữ được sử dụng để tạo khóa mã hóa từng khối một cách độc lập, cho phép truy cập ngẫu nhiên hiệu quả. Để xác thực, PAX băm mật khẩu bằng KDF an toàn.
Để nén, PAX hỗ trợ nhiều codec đa năng hiện đại được tối ưu hóa để giải nén nhanh: LZMA, LZ4, Brotli, Zstandard, v.v. Nó cũng cho phép các bộ tiền xử lý để giảm kích thước hơn nữa trên các loại tệp cụ thể (ví dụ: mã hóa Delta trên EXE/DLL, mã hóa E8E9 trên mã x86). Codec và bộ tiền xử lý được áp dụng trong một đường ống.
Để kích hoạt nén đa luồng hiệu quả, các tệp được phân vùng thành các khối nén độc lập có thể được xử lý bởi các phiên bản codec song song. Bộ nén PAX tự động mở rộng để sử dụng tất cả các lõi CPU khả dụng. Phân vùng tương tự cho phép giải nén song song để trích xuất nhanh hơn.
PAX cung cấp tính toàn vẹn dữ liệu và phát hiện giả mạo bằng cách lưu trữ các băm của dữ liệu gốc và dữ liệu nén. Lưu trữ mang theo một băm tiêu đề để phát hiện sự cắt bớt. Thư mục trung tâm cũng được băm để ngăn chặn giả mạo siêu dữ liệu tệp. Sự mục nát bit trong dữ liệu nén được phát hiện bằng cách băm từng khối.
Ở cuối lưu trữ PAX là chân trang. Chân trang này chứa một bản sao của các trường tiêu đề, bù/kích thước của thư mục trung tâm và một băm toàn lưu trữ. Chân trang có kích thước cố định và luôn ở cuối tệp, cho phép định vị và xác minh dễ dàng các lưu trữ PAX.
Lưu trữ PAX có thể được cập nhật hiệu quả bằng cách sửa đổi thư mục trung tâm và thêm các khối dữ liệu đã thay đổi, so với việc ghi lại toàn bộ lưu trữ như ZIP. Toàn bộ tệp có thể được chèn, xóa hoặc thay thế bằng cách cập nhật siêu dữ liệu và thêm/xóa các khối có liên quan. Lưu trữ cũng có thể được nhanh chóng thêm vào.
Để giảm thiểu các lỗ hổng trượt zip, PAX yêu cầu các đường dẫn rõ ràng (không có ../ traversal) và ngăn chặn việc ghi bên ngoài gốc trích xuất. Các trường siêu dữ liệu ZIP dài cho phép từ chối dịch vụ bị hạn chế. Các quả bom nén được giảm thiểu thông qua các giới hạn về tỷ lệ nén và mức sử dụng bộ nhớ.
Dấu thời gian tệp trong lưu trữ PAX sử dụng định dạng 64 bit tiêu chuẩn bao gồm nhiều ngày với độ chính xác 1 giây. Các thuộc tính cho quyền POSIX và ACL Windows được hỗ trợ. PAX có thể lưu trữ các luồng dữ liệu thay thế NTFS và các nhánh tài nguyên. Symlink và hardlink cũng có thể biểu diễn được.
SDK PAX nguồn mở cung cấp các API đơn giản để tạo, trích xuất, cập nhật và xác minh lưu trữ PAX theo chương trình. Nó xử lý tất cả các chi tiết cấp thấp của định dạng PAX. SDK có sẵn bằng nhiều ngôn ngữ bao gồm C, C++, C#, Java, Python, JavaScript, Go và Rust.
Tóm lại, định dạng lưu trữ PAX dựa trên nền tảng của các định dạng đã được chứng minh như ZIP trong khi giới thiệu các tính năng và tối ưu hóa hiện đại - nén hiệu quả, đa luồng, truy cập ngẫu nhiên, bảo mật và thông số kỹ thuật mở. Điều này làm cho PAX trở nên lý tưởng cho nhiều tình huống lưu trữ trên các hệ thống ngày nay.
Nén file là quá trình giảm kích thước các tập tin dữ liệu để lưu trữ hoặc truyền tải hiệu quả. Nó sử dụng các thuật toán khác nhau để nén dữ liệu bằng cách nhận biết và loại bỏ sự trùng lặp, điều này thường giảm đáng kể kích thước dữ liệu mà không mất thông tin gốc.
Có hai loại chính của nén file: lossless và lossy. Nén lossless cho phép dữ liệu gốc được tái tạo hoàn hảo từ dữ liệu đã nén, điều này lý tưởng cho các tập tin mà mọi bit dữ liệu đều quan trọng, như tập tin văn bản hoặc cơ sở dữ liệu. Các ví dụ phổ biến bao gồm các định dạng tập tin ZIP và RAR. Mặt khác, nén lossy loại bỏ dữ liệu ít quan trọng hơn để giảm kích thước tập tin một cách đáng kể hơn, thường được sử dụng trong các tập tin âm thanh, video và hình ảnh. JPEGs và MP3s là các ví dụ nơi mất một số dữ liệu không làm giảm đáng kể chất lượng nhận thức của nội dung.
Nén file có lợi ích theo nhiều cách. Nó tiết kiệm không gian lưu trữ trên thiết bị và máy chủ, giảm chi phí và cải thiện hiệu quả. Nó cũng tăng tốc thời gian chuyển tập tin qua mạng, bao gồm internet, điều này đặc biệt quý giá đối với các tập tin lớn. Hơn nữa, các tập tin đã nén có thể được nhóm lại thành một tập tin lưu trữ, hỗ trợ trong việc tổ chức và vận chuyển dễ dàng hơn của nhiều tập tin.
Tuy nhiên, nén file cũng có một số nhược điểm. Quá trình nén và giải nén yêu cầu các tài nguyên tính toán, điều này có thể làm chậm hiệu năng hệ thống, đặc biệt là cho các tập tin lớn. Cũng, trong trường hợp của nén lossy, một số dữ liệu gốc bị mất trong quá trình nén, và chất lượng kết quả có thể không chấp nhận được cho tất cả các mục đích sử dụng, đặc biệt là các ứng dụng chuyên nghiệp yêu cầu chất lượng cao.
Nén file là công cụ quan trọng trong thế giới số ngày nay. Nó tăng hiệu quả, tiết kiệm không gian lưu trữ và giảm thời gian tải lên và tải xuống. Tuy nhiên, nó đến với bộ tựa lớn riêng về hiệu năng hệ thống và nguy cơ giảm chất lượng. Do đó, quan trọng là phải chú ý đến các yếu tố này để chọn phương pháp nén phù hợp cho nhu cầu dữ liệu cụ thể.
Nén file là quá trình giảm kích thước của một file hoặc các file, thường để tiết kiệm không gian lưu trữ hoặc tăng tốc độ truyền trên mạng.
Nén file hoạt động bằng cách xác định và loại bỏ sự trùng lặp trong dữ liệu. Nó sử dụng thuật toán để mã hóa dữ liệu gốc trong một không gian nhỏ hơn.
Hai loại chính của nén file là nén lossless và lossy. Nén lossless cho phép phục hồi hoàn toàn file gốc, trong khi n én lossy cho phép giảm kích thước đáng kể hơn nhưng có thể mất một phần chất lượng dữ liệu.
Một ví dụ phổ biến về công cụ nén file là WinZip, hỗ trợ nhiều định dạng nén bao gồm ZIP và RAR.
Với nén lossless, chất lượng không thay đổi. Tuy nhiên, với nén lossy, có thể có sự giảm chất lượng rõ rệt do nó loại bỏ dữ liệu ít quan trọng để giảm kích thước file đáng kể hơn.
Có, nén file an toàn về mặt tính toàn vẹn của dữ liệu, đặc biệt với nén lossless. Tuy nhiên, giống như bất kỳ file nào, file nén có thể bị mục tiêu bởi malware hoặc virus, vì vậy luôn quan trọng khi có phần mềm bảo mật uy tín.
Hầu như tất cả các loại file đều có thể được nén, bao gồm file văn bản, hình ảnh, audio, video và file phần mềm. Tuy nhiên, mức độ nén có thể thực hiện đáng kể có thể thay đổi giữa các loại file khác nhau.
ZIP file là một loại định dạng file sử dụng nén lossless để giảm kích thước của một hoặc nhiều file. Nhiều file trong một ZIP file effectively được gói lại thành một file duy nhất, điều này cũng giúp việc chia sẻ dễ dàng hơn.
Về mặt kỹ thuật, có, mặc dù việc giảm kích thước thêm có thể tối thiểu hoặc thậm chí phản tác dụng. Nén một file đã được nén đôi khi có thể tăng kích thước do metadata được thêm vào bởi thuật toán nén.
Để giải nén một file, bạn thường cần một công cụ giải nén hoặc giải nén, như WinZip hoặc 7-Zip. Những công cụ này có thể trích xuất các file gốc từ định dạng nén.