PAX (Pre-Allocate eXtension) เป็นรูปแบบไฟล์เก็บถาวรแบบบีบอัดโอเพนซอร์สที่พัฒนาโดย Microsoft เพื่อเป็นทางเลือกที่ทันสมัยสำหรับรูปแบบที่มีอยู่ เช่น ZIP, RAR และ tar ออกแบบมาเพื่อแก้ไขข้อจำกัดและปรับปรุงการบีบอัด ประสิทธิภาพ ความปลอดภัย และฟังก์ชันการจัดการไฟล์เก็บถาวรบนระบบและอุปกรณ์สมัยใหม่
คุณสมบัติที่แตกต่างที่สำคัญของรูปแบบ PAX ได้แก่ การบีบอัดที่ดียิ่งขึ้นโดยใช้ขั้นตอนวิธีการที่ทันสมัย การเข้าถึงไฟล์แบบสุ่มที่มีประสิทธิภาพภายในไฟล์เก็บถาวร การสนับสนุนมัลติเธรดแบบดั้งเดิม เมตาดาต้าที่ขยายได้ การเข้ารหัสในตัวและการตรวจสอบความสมบูรณ์ และข้อกำหนดแบบเปิดที่มีการบันทึกไว้เพื่อสนับสนุนการนำไปใช้และการทำงานร่วมกันอย่างกว้างขวาง
ไฟล์เก็บถาวร PAX ใช้ส่วนขยายไฟล์ .pax และมีโครงสร้างภายในหลายส่วนประ กอบด้วยส่วนหัว ไดเร็กทอรีกลาง บล็อกข้อมูลที่บีบอัด และส่วนท้าย สิ่งนี้ช่วยให้ข้อมูลสำคัญ เช่น เนื้อหาของไฟล์เก็บถาวร พารามิเตอร์การบีบอัด และแฮชความสมบูรณ์สามารถจัดเก็บแยกต่างหากจากข้อมูลไฟล์ที่บีบอัดจริง
ส่วนหัว PAX เริ่มต้นด้วยหมายเลขวิเศษ 4 ไบต์ (50 41 58 00 ในเลขฐานสิบหก) เพื่อระบุตัวตน จากนั้นจะมีฟิลด์สำหรับเวอร์ชัน PAX วิธีการบีบอัด วิธีการเข้ารหัส วิธีการแฮช ขนาดบล็อก จำนวนเธรดการบีบอัดแบบขนาน และแฟล็กต่างๆ ส่วนหัวจะจบลงด้วยเมตาดาต้า XML ที่ขยายได้ซึ่งให้รายละเอียดเกี่ยวกับไฟล์เก็บถาวร
ถัดจากส่วนหัวคือไดเร็กทอรีกลาง PAX ซึ่งมีรายการสำหรับไฟล์/โฟลเดอร์ที่บีบอัดแต่ละรายการในไฟล์เก็บถาวร โดยจัดเก็บเส้นทางแบบเต็ม แอตทริบิวต์ ขนาด ออฟเซ็ตบล็อก และแฮช การมีสิ่งเหล่านี้อยู่ในที่เดียวช่วยให้สามารถแสดงรายการเนื้อ หาของไฟล์เก็บถาวรและเข้าถึงไฟล์แต่ละไฟล์แบบสุ่มได้อย่างมีประสิทธิภาพโดยไม่ต้องสแกนผ่านข้อมูลที่บีบอัด
ส่วนใหญ่ของไฟล์เก็บถาวร PAX เป็นชุดของบล็อกข้อมูลที่บีบอัด แต่ละบล็อกมีส่วนหัวขนาดเล็กที่ระบุขนาดที่ไม่ได้บีบอัดและบีบอัด ตามด้วยส่วนของข้อมูลไฟล์ที่บีบอัดด้วยขั้นตอนวิธีการที่กำหนดค่าไว้ บล็อกมีขนาดเริ่มต้นที่ 1 MB แต่สามารถปรับได้ในส่วนหัวของไฟล์เก็บถาวร
บล็อกข้อมูลที่บีบอัดจะถูกเข้ารหัสหากมีการระบุวิธีการเข้ารหัส PAX รองรับรูปแบบการเข้ารหัสที่ทันสมัย เช่น AES-256 รหัสผ่านของไฟล์เก็บถาวรใช้เพื่อสร้างคีย์ที่เข้ารหัสแต่ละบล็อกแยกกัน ซึ่งช่วยให้สามารถเข้าถึงแบบสุ่มได้อย่างมีประสิทธิภาพ เพื่อการรับรองความถูกต้อง PAX จะแฮชรหัสผ่านด้วย KDF ที่ปลอดภัย
สำหรับการบีบอัด PAX รองรับตัวแปลงสัญญาณวัตถุประสงค์ทั่ วไปที่ทันสมัยหลากหลายที่ปรับให้เหมาะสำหรับการคลายการบีบอัดอย่างรวดเร็ว: LZMA, LZ4, Brotli, Zstandard เป็นต้น นอกจากนี้ยังอนุญาตให้มีพรีโปรเซสเซอร์เพื่อลดขนาดเพิ่มเติมในประเภทไฟล์เฉพาะ (เช่น การเข้ารหัส Delta บน EXE/DLL การเข้ารหัส E8E9 บนโค้ด x86) ตัวแปลงสัญญาณวัตถุประสงค์ทั่วไปและพรีโปรเซสเซอร์จะถูกนำไปใช้ในไปป์ไลน์
เพื่อให้การบีบอัดแบบมัลติเธรดที่มีประสิทธิภาพ ไฟล์จะถูกแบ่งพาร์ติชันเป็นบล็อกที่บีบอัดแยกกันซึ่งสามารถประมวลผลโดยอินสแตนซ์ตัวแปลงสัญญาณวัตถุประสงค์ทั่วไปแบบขนาน ตัวบีบอัด PAX จะปรับขนาดโดยอัตโนมัติเพื่อใช้คอร์ CPU ทั้งหมดที่มีอยู่ การแบ่งพาร์ติชันที่คล้ายกันช่วยให้สามารถคลายการบีบอัดแบบขนานเพื่อการแยกที่เร็วขึ้น
PAX ให้ความสมบูรณ์ของข้อมูลและการตรวจจับการปลอมแปลงโดยการจัดเก็บแฮชของข้อมูลต้นฉบับและข้อมูลที่บีบอั ด ไฟล์เก็บถาวรมีแฮชส่วนหัวเพื่อตรวจจับการตัดทอน ไดเร็กทอรีกลางยังถูกแฮชเพื่อป้องกันการปลอมแปลงเมตาดาต้าของไฟล์ การเสื่อมสภาพของบิตในข้อมูลที่บีบอัดจะถูกตรวจจับโดยการแฮชแต่ละบล็อก
ที่ส่วนท้ายของไฟล์เก็บถาวร PAX คือส่วนท้าย ซึ่งมีสำเนาของฟิลด์ส่วนหัว ออฟเซ็ต/ขนาดของไดเร็กทอรีกลาง และแฮชของไฟล์เก็บถาวรทั้งหมด ส่วนท้ายมีขนาดคงที่และอยู่ที่ส่วนท้ายของไฟล์เสมอ ซึ่งช่วยให้สามารถระบุตำแหน่งและตรวจสอบไฟล์เก็บถาวร PAX ได้ง่าย
ไฟล์เก็บถาวร PAX สามารถอัปเดตได้อย่างมีประสิทธิภาพโดยการแก้ไขไดเร็กทอรีกลางและผนวกบล็อกข้อมูลที่เปลี่ยนแปลง แทนที่จะเขียนไฟล์เก็บถาวรใหม่ทั้งหมด ไฟล์ทั้งหมดสามารถแทรก ลบ หรือแทนที่ได้โดยการอัปเดตเมตาดาต้าและเพิ่ม/ลบบล็อกที่เกี่ยวข้อง นอกจากนี้ยังสามารถผนวกไฟล์เก็บถาวรได้อย่างรวดเร็ว
เพื่อลดช่องโหว่ zip-slip PAX ต้องการเส้นทางที่ชัดเจน (ไม่มีการเคลื่อนผ่าน ../) และป้องกันการเขียนนอกรูทการแยกข้อมูล ฟิลด์เมตาดาต้า ZIP ที่ยาวซึ่งเปิดใช้งานการปฏิเสธการให้บริการจะถูกจำกัด การโจมตีแบบ Compression bomb จะลดลงผ่านการจำกัดอัตราการบีบอัดและการใช้หน่วยความจำ
การประทับเวลาของไฟล์ในไฟล์เก็บถาวร PAX ใช้รูปแบบ 64 บิตมาตรฐานที่ครอบคลุมช่วงวันที่กว้างพร้อมความแม่นยำ 1 วินาที รองรับแอตทริบิวต์สำหรับสิทธิ์ POSIX และ ACL ของ Windows PAX สามารถจัดเก็บสตรีมข้อมูลสำรอง NTFS และฟอร์กทรัพยากรได้ นอกจากนี้ยังสามารถแสดงลิงก์เชิงสัญลักษณ์และลิงก์แบบแข็งได้
SDK PAX โอเพนซอร์สให้ API ที่เรียบง่ายสำหรับการสร้าง การแยกข้อมูล การอัปเดต และการตรวจสอบไฟล์เก็บถาวร PAX ด้วยโปรแกรม จัดการรายละเอียดระดับต่ำทั้งหมดของรูปแบบ PAX SDK มีให้บริการในหลายภาษา รวมถึง C, C++, C#, Java, Python, JavaScript, Go และ Rust
โดยสรุป รูปแบบไฟล์เก็บถาวร PAX สร้างขึ้นจากรากฐานของรูปแบบที่พิสูจน์แล้ว เช่น ZIP พร้อมทั้งนำเสนอคุณสมบัติและการปรับให้เหมาะสมที่ทันสมัย - การบีบอัดที่มีประสิทธิภาพ มัลติเธรด การเข้าถึงแบบสุ่ม ความปลอดภัย และข้อกำหนดแบบเปิด สิ่งนี้ทำให้ PAX เหมาะอย่างยิ่งสำหรับสถานการณ์การเก็บถาวรที่หลากหลายในระบบปัจจุบัน
การบีบอัดไฟล์คือกระบวนการที่ลดขนาดของไฟล์ข้อมูลเพื่อการจัดเก็บหรือการส่งที่มีประสิทธิภาพ มันใช้อัลกอริทึมต่างๆเพื่อทำให้ข้อมูลเข้มข้นโดยการตรวจสอบและการกำจัดส่วนซ้ำซ้อน ซึ่งมักจะลดขนาดข้อมูลลงอย่างมากโดยไม่สูญเสียข้อมูลเดิม
มีประเภทการบีบอัดไฟล์สองประเภทหลัก: ปราศจากข้อผิดพลาด และมีข้อผิดพลาด การบีบอัดปราศจากข้อผิดพลาดช่วยให้ข้อมูลเดิมสามารถสร้างขึ้นมา ใหม่ได้ดีจากข้อมูลที่ถูกบีบอัด ซึ่งเหมาะสำหรับไฟล์ที่ทุกซองข้อมูลเป็นสถานะที่สำคัญ เช่น ข้อความหรือไฟล์ฐานข้อมูล ตัวอย่างทั่วไปรวมถึงรูปแบบไฟล์ ZIP และ RAR อย่างไรก็ตาม การบีบอัดที่มีข้อผิดพลาดจะยกเลิกข้อมูลที่ไม่สำคัญเพื่อลดขนาดไฟล์มากขึ้น มักจะใช้กับไฟล์เสียง วิดีโอ และแฟ้มภาพ JPEG และ MP3 เป็นตัวอย่างที่การสูญเสียข้อมูลบางส่วนไม่ลดคุณภาพทางการรับรู้ของเนื้อหาอย่างมาก
การบีบอัดไฟล์มีผลประโยชน์ในหลาย ๆ ทาง มันช่วยประหยัดพื้นที่จัดเก็บบนอุปกรณ์และเซิร์ฟเวอร์ ลดราคาและปรับปรุงประสิทธิภาพ มันยังเร่งการถ่ายโอนไฟล์ผ่านเครือข่าย รวมถึงอินเทอร์เน็ต ซึ่งเหมาะสมอย่างยิ่งสำหรับไฟล์ขนาดใหญ่ นอกจากนี้ ไฟล์ที่ถูกบีบอัดก็สามารถรวมเข้าด้วยกันเป็นไฟล์เก็บถาวรหนึ่ง ช่วยในการจัดระเบียบและการนำข้อมูลหลาย ๆ ไฟล์ไปที่อ ื่นได้ง่ายขึ้น
อย่างไรก็ตาม การบีบอัดไฟล์มีข้อเสียบางอย่าง การบีบอัดและการบีบอัดไฟล์ต้องใช้ทรัพยากรการคำนวณ ซึ่งอาจทำให้ประสิทธิภาพของระบบช้าลง โดยเฉพาะสำหรับไฟล์ขนาดใหญ่ และในกรณีการบีบอัดที่มีข้อผิดพลาด บางส่วนของข้อมูลเดิมจะหายไปในระหว่างการบีบอัด และคุณภาพที่ได้อาจไม่เหมาะสมสำหรับการใช้งานทั้งหมด โดยเฉพาะการใช้งานเชิงวิชาชีพที่ต้องการคุณภาพสูง
การบีบอัดไฟล์เป็นเครื่องมือที่สำคัญในโลกดิจิตอลในปัจจุบัน มันเพิ่มประสิทธิภาพ ประหยัดพื้นที่จัดเก็บและลดเวลาดาวน์โหลดและอัปโหลด อย่างไรก็ตาม มันมาพร้อมกับข้อเสียของตัวเองในเรื่องได้ผลของระบบและความเสี่ยงของการตกต่ำของคุณภาพ ดังนั้น จึงจำเป็นต้องระมัดระวังเหล่านี้เพื่อเลือกวิธีการบีบอัดที่เหมาะสมสำหรับความต้องการข้อมูลเฉพาะ
การบีบอัดไฟล์คือกระบวนการที่ลดขนาดไฟล์หรือไฟล์ทั้งหมด โดยทั่วไปจะใช้เพื่อประหยัดพื้นที่จัดเก็บหรือเร่งความเร็วในการส่งผ่านเครือข่าย
การบีบอัดไฟล์ทำงานโดยระบุและการนำข้อมูลที่ซ้ำซ้อนออก มันใช้อัลกอริทึมเพื่อเข้ารหัสข้อมูลเดิมในพื้นที่ที่เล็กกว่า
สองประเภทหลักของการบีบอัดไฟล์คือการบีบอัดแบบสูญเสียและแบบไม่สูญเสีย การบีบอัดแบบไม่สูญเสียอนุญาตให้ไฟล์เดิมสามารถถูกกู้คืนได้แบบสมบูรณ์เมื่อการบีบอัดแบบสูญเสียช่วยลดขนาดไฟล์อย่างมากด้วยการสูญเสียคุณภาพข้อมูลบางส่ วน
ตัวอย่างของเครื่องมือการบีบอัดไฟล์ที่นิยมคือ WinZip ซึ่งรองรับรูปแบบการบีบอัดหลายรูปแบบ รวมถึง ZIP และ RAR
ด้วยการบีบอัดแบบไม่สูญเสีย คุณภาพจะไม่เปลี่ยนแปลง หากแต่ด้วยการบีบอัดแบบสูญเสีย อาจมีการลดลงของคุณภาพเพราะการกำจัดข้อมูลที่ไม่สำคัญเพื่อลดขนาดไฟล์มากขึ้น
ใช่ การบีบอัดไฟล์ปลอดภัยในเชิงของความไม่เปล่าเสีย โดยเฉพาะด้วยการบีบอัดแบบไม่สูญเสีย แต่เหมือนกับไฟล์ใด ๆ ไฟล์ที่ถูกบีบอัดสามารถถูกกลายเป็นเป้าหมายของมัลแวร์หรือไวรัส ดังนั้นเสมอแล้วควรมีซอฟต์แวร์ความปลอดภัยที่น่าเชื่อถือ
แทบทุกประเภทของไฟล์สามารถบีบอัดได้ รวมถึงไฟล์ข้อความ ภาพ ข้อมูลเสียง วิดีโอ และไฟล์ซอฟต์แวร์ อย่างไรก็ตาม ระดับการบีบอัดที่สามารถทำได้สามารถแตกต่างกันอย่างมากขึ้นอยู่กับประเภทไฟล์
ไฟล์ ZIP เป็นประเภทของรูปแบบไฟล์ที่ใช้การบีบอัดแบบไม่สูญเสียเพื่อลดขนาดไฟล์หนึ่งหรือหลายไฟล์ ไฟล์หลายไฟล์ในไฟล์ ZIP ถูกจัดรวมเข้าด้วยกันเป็นไฟล์เดียวทำให้การแบ่งปันง่ายขึ้น
จริงแล้วด้วยทางเทคนิค คุณสามารถบีบอัดไฟล์ที่ถูกบีบอัดแล้ว แต่การลดขนาดเพิ่มเติมอาจจะมีน้อยหรือแม้แต่ทำงานตรงข้าม การบีบอัดไฟล์ที่ถูกบีบอัดแล้วอาจทำให้ขนาดของมันเพิ่มขึ้นเนื่องจากมีการเพิ่มข้อมูลเมตาดาตาโดยอัลกอริทึมการบีบอัด
เพื่อถอดการบีบอัดไฟล์ คุณโดยทั่วไปจะต้องมีเครื่องมือการถอดความกดหรือ unzip เช่น WinZip หรือ 7-Zip เครื่องมือเหล่านี้สามารถแยกไฟล์เดิมออกจากรูปแบบที่ถูกบีบอัด