รูปแบบไฟล์เก็บถาวร ISO หรือที่รู้จักในชื่อ ISO 9660 เป็นมาตรฐานระบบไฟล์ที่เผยแพร่โดยองค์การระหว่างประเทศว่าด้วยการมาตรฐาน (ISO) ในปี 1988 ออกแบบมาให้เป็นระบบไฟล์แบบข้ามแพลตฟอร์มสำหรับสื่อแผ่นดิสก์ออปติคัล เช่น CD-ROM เป้าหมายคือการจัดเตรียมวิธีการแบบรวมศูนย์สำหรับระบบปฏิบัติการต่างๆ เพื่ออ่านข้อมูลจากแผ่นดิสก์ออปติคัล โดยรับรองความสามารถในการทำงานร่วมกันและความเข้ากันได้
ISO 9660 กำหนดโครงสร้างระบบไฟล์แบบลำดับชั้น ซึ่งคล้ายกับระบบไฟล์ที่ใช้โดยระบบปฏิบัติการส่วนใหญ่ จัดระเบียบข้อมูลเป็นไดเรกทอรีและไฟล์ โดยแต่ละไดเรกทอรีสามารถมีไดเรกทอรีและไฟล์ย่อยได้ มาตรฐานระบุรูปแบบของตัวอธิบายไดเรกทอรีและไดเรกท อรี รวมถึงตารางเส้นทาง ซึ่งใช้สำหรับการเข้าถึงไดเรกทอรีอย่างรวดเร็ว
หนึ่งในคุณสมบัติหลักของรูปแบบ ISO 9660 คือความเรียบง่ายและความเข้ากันได้ มาตรฐานกำหนดข้อจำกัดสำหรับชื่อไฟล์ โครงสร้างไดเรกทอรี และเมตาดาต้า เพื่อให้แน่ใจว่าแผ่นดิสก์สามารถอ่านได้โดยระบบต่างๆ ชื่อไฟล์จำกัดไว้ที่ 8 อักขระ ตามด้วยส่วนขยาย 3 อักขระ (รูปแบบ 8.3) และสามารถใช้ได้เฉพาะตัวอักษรตัวใหญ่ ตัวเลข และเครื่องหมายขีดล่างเท่านั้น ชื่อไดเรกทอรีก็มีข้อจำกัดเช่นกัน โดยมีความลึกสูงสุด 8 ระดับ
เพื่อรองรับชื่อไฟล์ที่ยาวขึ้นและเมตาดาต้าเพิ่มเติม มาตรฐาน ISO 9660 จึงได้รับการขยายผ่านข้อกำหนดต่างๆ ส่วนขยายดังกล่าวส่วนหนึ่งคือ Joliet ซึ่งเปิดตัวโดย Microsoft ในปี 1995 Joliet อนุญาตให้ใช้ชื่อไฟล์ที่ยาวขึ้น (สูงสุด 64 อักขระ Unicode) และรองรับการแยกแยะตัวพิมพ์ใหญ่-เล็ก ทำได้โดยการรวม ชุดเรกคอร์ดไดเรกทอรีเพิ่มเติมโดยใช้การเข้ารหัส UCS-2 ซึ่งอ่านได้โดยระบบที่รองรับส่วนขยาย Joliet
ส่วนขยายที่โดดเด่นอีกส่วนหนึ่งของ ISO 9660 คือ Rock Ridge ซึ่งพัฒนาขึ้นสำหรับระบบ UNIX Rock Ridge เพิ่มความหมายของระบบไฟล์ POSIX เช่น สิทธิ์ไฟล์ ความเป็นเจ้าของ และลิงก์เชิงสัญลักษณ์ ลงในรูปแบบ ISO 9660 ส่วนขยายนี้ช่วยให้สามารถรักษาแอตทริบิวต์ไฟล์เฉพาะของ UNIX ไว้ได้เมื่อสร้างอิมเมจ ISO จากระบบไฟล์ UNIX
รูปแบบ ISO 9660 แบ่งแผ่นดิสก์ออกเป็นบล็อกเชิงตรรกะ โดยแต่ละบล็อกมีขนาด 2,048 ไบต์ บล็อก 16 บล็อกแรกสงวนไว้สำหรับการใช้งานของระบบและมีตัวอธิบายไดเรกทอรี ซึ่งให้ข้อมูลเกี่ยวกับโครงสร้างและเนื้อหาของแผ่นดิสก์ ตัวอธิบายไดเรกทอรีหลักเป็นสิ่งจำเป็นและมีรายละเอียดต่างๆ เช่น ตัวระบุไดเรกทอรีของแผ่นดิสก์ ขนาดของบล็อกเชิงตรรกะ และเรกคอร์ดไดเรกทอรีราก
หลังจากตัวอธิบายไดเรกทอรี ตารางเส้นทางจะถูกจัดเก็บไว้ในแผ่นดิสก์ ตารางเส้นทางมีข้อมูลเกี่ยวกับตำแหน่งของแต่ละไดเรกทอรีบนแผ่นดิสก์ ซึ่งช่วยให้สามารถสำรวจลำดับชั้นของไดเรกทอรีได้อย่างรวดเร็ว ประกอบด้วยตารางเส้นทาง L (Little-Endian) และตารางเส้นทาง M (Big-Endian) เพื่อรองรับการจัดเรียงไบต์ที่แตกต่างกันซึ่งใช้โดยระบบต่างๆ
ไดเรกทอรีและไฟล์จะถูกจัดเก็บในบล็อกถัดไปของแผ่นดิสก์ แต่ละไดเรกทอรีแสดงโดยเรกคอร์ดไดเรกทอรี ซึ่งมีข้อมูลต่างๆ เช่น ชื่อไดเรกทอรี ไดเรกทอรีหลัก และตำแหน่งของไฟล์และไดเรกทอรีย่อยที่เกี่ยวข้อง ไฟล์จะถูกจัดเก็บเป็นลำดับบล็อกเชิงตรรกะที่ต่อเนื่องกัน โดยมีตำแหน่งและขนาดระบุไว้ในเรกคอร์ดตัวระบุไฟล์ที่สอดคล้องกันภายในไดเรกทอรี
เมื่อสร้างอิมเมจ ISO ระบบไฟล์จะถูกจัดระเบียบตามข้อกำหนดของมาตรฐาน ISO 9660 ก่อน ซึ่งรวมถึงการตรวจสอบให้แน่ใจว่าชื่อไฟล์และไดเรกทอรีเป็นไปตามรูปแบบ 8.3 จำกัดความลึกของไดเรกทอรี และแปลงชื่อไฟล์เป็นตัวพิมพ์ใหญ่ เมื่อเตรียมระบบไฟล์แล้ว จะถูกเขียนไปยังไฟล์อิมเมจที่มีส่วนขยาย `.iso` ซึ่งสามารถเขียนลงแผ่นดิสก์ออปติคัลหรือใช้เป็นอิมเมจแผ่นดิสก์เสมือนได้
ในการอ่านแผ่นดิสก์ที่จัดรูปแบบ ISO 9660 ระบบปฏิบัติการหรือแอปพลิเคชันซอฟต์แวร์เฉพาะจะเริ่มต้นด้วยการตรวจสอบตัวอธิบายไดเรกทอรีเพื่อพิจารณาโครงสร้างและลักษณะของแผ่นดิสก์ จากนั้นใช้ตารางเส้นทางและเรกคอร์ดไดเรกทอรีเพื่อนำทางลำดับชั้นของระบบไฟล์และค้นหาไฟล์หรือไดเรกทอรีเฉพาะ เมื่อเข้าถึงไฟล์ ระบบจะอ่านบล็อกเชิงตรรกะที่เหมาะสมจากแผ่นดิสก์ตามข้อมูลที่ระบุในเรกคอร์ดตัวระบุไฟล์
รูปแบบ ISO 9660 ได้รับการนำมาใช้กันอย่างแพร่หลายและยังคงใช้กันทั่วไปสำหรับการแจกจ่ายซอฟต์แวร์ เนื้อหามัลติมีเดีย และข้อมูลที่เก็บถาวรบนแผ่นดิสก์ออปติคัล ความเรียบง่าย ความเข้ากันได้ และความทนทานของรูปแบบนี้มีส่วนทำให้มีอายุการใช้งานที่ยาวนาน แม้ว่าจะมีรูปแบบแผ่นดิสก์ออปติคัลและระบบไฟล์ใหม่ๆ เกิดขึ้น
แม้จะมีอายุ แต่มาตรฐาน ISO 9660 ยังคงมีความเกี่ยวข้องในคอมพิวเตอร์สมัยใหม่ แอปพลิเคชันซอฟต์แวร์และระบบปฏิบัติการจำนวนมาก รวมถึง Windows, macOS และ Linux ยังคงรองรับรูปแบบนี้โดยตรง นอกจากนี้ อิมเมจ ISO มักใช้สำหรับการแจกจ่ายไฟล์ติดตั้งระบบปฏิบัติการ แพ็กเกจซอฟต์แวร์ และอิมเมจดิสก์ของเครื่องเสมือน เนื่องจากเป็นวิธีที่สะดวกและไม่ขึ้นกับแพลตฟอร์มสำหรับการจัดเก็บและถ่ายโอนข้อมูล
สรุปแล้ว รูปแบบ ISO 9660 มีบทบาทสำคัญในการทำให้โครงสร้างระบบไฟล์สำหรับแผ่นดิสก์ออปติคัลเป็นมาตรฐาน ซึ่งช่วยให้สามารถทำงานร่วมก ันได้ระหว่างแพลตฟอร์มและอำนวยความสะดวกในการแจกจ่ายเนื้อหาดิจิทัล ส่วนขยายต่างๆ เช่น Joliet และ Rock Ridge ได้เพิ่มการรองรับชื่อไฟล์ที่ยาวขึ้น เมตาดาต้าเพิ่มเติม และแอตทริบิวต์เฉพาะของ UNIX แม้ว่าแผ่นดิสก์ออปติคัลจะถูกแทนที่ด้วยสื่อจัดเก็บข้อมูลอื่นๆ และวิธีการแจกจ่ายแบบใช้เครือข่ายเป็นส่วนใหญ่แล้ว แต่รูปแบบ ISO 9660 ยังคงเป็นมาตรฐานที่เชื่อถือได้และได้รับการสนับสนุนอย่างกว้างขวางสำหรับการเก็บถาวรและแลกเปลี่ยนข้อมูล
เมื่อเทคโนโลยียังคงพัฒนาต่อไป รูปแบบ ISO 9660 อาจถูกแทนที่ด้วยระบบไฟล์ใหม่ที่ทันสมัยกว่าซึ่งออกแบบมาสำหรับแผ่นดิสก์ออปติคัลความจุสูงหรือสื่อจัดเก็บข้อมูลอื่นๆ อย่างไรก็ตาม ผลกระทบที่มีต่อประวัติศาสตร์ของการประมวลผลและบทบาทในการสร้างแนวทางมาตรฐานสำหรับการแลกเปลี่ยนข้อมูลข้ามแพลตฟอร์มจะไม่ถูกลืม รูปแ บบ ISO 9660 เป็นเครื่องพิสูจน์ถึงความสำคัญของความสามารถในการทำงานร่วมกัน
การบีบอัดไฟล์ช่วยลดความซ้ำซ้อนเพื่อให้ข้อมูลเดียวกันใช้บิตน้อยลง ขีดจำกัดสูงสุดของระยะทางที่คุณสามารถไปได้ถูกควบคุมโดยทฤษฎีข้อมูล: สำหรับการบีบอัดแบบไม่สูญเสียข้อมูล ขีดจำกัดคือเอนโทรปีของแหล่งที่มา (ดู ทฤษฎีบทการเข้ารหัสต้นทาง ของแชนนอนและบทความต้นฉบับของเขาในปี 1948 “ทฤษฎีทางคณิตศาสตร์ของการสื่อสาร”) สำหรับการบีบอัดแบบสูญเสียข้อมูล การแลกเปลี่ยนระหว่างอัตราและคุณภาพถูกจับโดย ทฤษฎีอัตรา-ความผิดเพี้ยน.
คอมเพรสเซอร์ส่วนใหญ่มีสองขั้นต อน ขั้นแรก แบบจำลอง จะทำนายหรือเปิดเผยโครงสร้างในข้อมูล ประการที่สอง ตัวเข้ารหัส จะเปลี่ยนการคาดการณ์เหล่านั้นให้เป็นรูปแบบบิตที่เกือบจะเหมาะสมที่สุด ตระกูลการสร้างแบบจำลองแบบคลาสสิกคือ Lempel–Ziv: LZ77 (1977) และ LZ78 (1978) ตรวจจับสตริงย่อยที่ซ้ำกันและส่งออกการอ้างอิงแทนไบต์ดิบ ในด้านการเข้ารหัส การเข้ารหัสฮัฟฟ์แมน (ดูบทความต้นฉบับ 1952) กำหนดรหัสที่สั้นกว่าให้กับสัญลักษณ์ที่มีแนวโน้มมากกว่า การเข้ารหัสเลขคณิต และ การเข้ารหัสช่วง เป็นทางเลือกที่ละเอียดกว่าซึ่งบีบเข้าใกล้ขีดจำกัดเอนโทรปีมากขึ้น ในขณะที่ ระบบเลขไม่สมมาตร (ANS) ที่ทันสมัยบรรลุการบีบอัดที่คล้ายกันด้วยการใช้งานที่ขับเคลื่อนด้วยตารางที่รวดเร็ว
DEFLATE (ใช้โดย gzip, zlib และ ZIP) รวม LZ77 เข้ากับการเข้ารหัสฮัฟฟ์แมน ข้อกำหนดของมันเป็นแบบสาธารณะ: DEFLATE RFC 1951, zlib wrapper RFC 1950, และรูปแบบไฟล์ gzip RFC 1952. Gzip ถูกจัดเฟรมสำหรับการสตรีมและอย่างชัดเจน ไม่พยายามให้การเข้าถึงแบบสุ่ม. รูปภาพ PNG กำหนดมาตรฐาน DEFLATE เป็นวิธีการบีบอัดเพียงวิธีเดียว (โดยมีหน้าต่างสูงสุด 32 KiB) ตามข้อกำหนด PNG “วิธีการบีบอัด 0… deflate/inflate… มากที่สุด 32768 ไบต์” และ W3C/ISO PNG ฉบับที่ 2.
Zstandard (zstd): คอมเพรสเซอร์สำหรับวัตถุประสงค์ทั่วไปรุ่นใหม่ที่ออกแบบมาสำหรับอัตราส่วนที่สูงพร้อมการคลายการบีบอัดที่รวดเร็วมาก รูปแบบ được ghi lại trong RFC 8878 (cũng gương HTML) và thông số kỹ thuật tham chiếu trên GitHub. Giống như gzip, khung cơ bản không nhắm đến truy cập ngẫu nhiên. Một trong những siêu năng lực của zstd là từ điển: các mẫu nhỏ từ kho dữ liệu của bạn giúp cải thiện đáng kể việc nén trên nhiều tệp nhỏ hoặc tương tự (xem tài liệu từ điển python-zstandard và ví dụ làm việc của Nigel Tao). Các triển khai chấp nhận cả từ điển “không có cấu trúc” và “có cấu trúc” (thảo luận).
Brotli: เหมาะสำหรับเนื้อหาเว็บ (เช่น แบบอักษร WOFF2, HTTP) มันผสมพจนานุกรมคงที่กับ แกน LZ+เอนโทรปีที่คล้ายกับ DEFLATE ข้อกำหนดคือ RFC 7932ซึ่งยังบันทึกหน้าต่างเลื่อนของ 2WBITS−16 โดย WBITS อยู่ใน [10, 24] (1 KiB−16 B ถึง 16 MiB−16 B) และ ไม่พยายามเข้าถึงแบบสุ่ม. Brotli มักจะเอาชนะ gzip ในข้อความเว็บในขณะที่ถอดรหัสได้อย่างรวดเร็ว
คอนเทนเนอร์ ZIP: ZIP เป็น ไฟล์เก็บถาวร ที่สามารถจัดเก็บรายการด้วยวิธีการบีบอัดต่างๆ (deflate, store, zstd, etc.) มาตรฐานโดยพฤตินัยคือ APPNOTE ของ PKWARE (ดู พอร์ทัล APPNOTE, สำเนาที่โฮสต์, และภาพรวม LC รูปแบบไฟล์ ZIP (PKWARE) / ZIP 6.3.3).
LZ4 มุ่งเป้าไปที่ความเร็วล้วนๆ ด้วยอัตราส่วนที่พอประมาณ ดู หน้าโครงการ (“การบีบอัดที่รวดเร็วอย่างยิ่ง”) และ รูปแบบเฟรม. เหมาะอย่างยิ่งสำหรับแคชในหน่วยความจำ, telemetry, หรือ hot paths ที่การคลายการบีบอัดต้องใกล้เคียงกับความเร็วของ RAM
XZ / LZMA ผลักดันความหนาแน่น (อัตราส่วนที่ดี) ด้วยการบีบอัดที่ค่อนข้างช้า XZ เป็นคอนเทนเนอร์; งานหนักส่วนใหญ่มักทำโดย LZMA/LZMA2 (การสร้างแบบจำลองคล้าย LZ77 + การเข้ารหัสช่วง) ดู รูปแบบไฟล์ .xz, ข้อมูลจำเพาะของ LZMA (Pavlov), และบันทึกเคอร์เนลของลินุกซ์ บน XZ Embedded. XZ มักจะบีบอัดได้ดีกว่า gzip และมักจะแข่งขันกับตัวแปลงสัญญาณที่ทันสมัยที่มีอัตราส่วนสูง แต่ใช้เวลาเข้ารหัสนานกว่า
bzip2 ใช้ การแปลง Burrows–Wheeler (BWT), move-to-front, RLE, และการเข้ารหัสฮัฟฟ์แมน โดยทั่วไปจะมีขนาดเล็กกว่า gzip แต่ช้ากว่า; ดู คู่มืออย่างเป็นทางการ และหน้า man (Linux).
“ขนาดหน้าต่าง” มีความสำคัญ การอ้างอิง DEFLATE สามารถมองย้อนกลับไปได้เพียง 32 KiB (RFC 1951 และขีดจำกัด 32 KiB ของ PNG ที่ระบุไว้ที่นี่). หน้าต่างของ Brotli มีตั้งแต่ประมาณ 1 KiB ถึง 16 MiB (RFC 7932). Zstd ปรับแต่งหน้าต่างและความลึกของการค้นหาตามระดับ (RFC 8878). สตรีมพื้นฐานของ gzip/zstd/brotli ได้รับการออกแบบมาสำหรับการถอดรหัสตามลำดับ; รูปแบบพื้นฐาน ไม่รับประกันการเข้าถึงแบบสุ่ม, แม้ว่าคอนเทนเนอร์ (เช่น ดัชนี tar, เฟรมแบบแบ่งส่วน, หรือดัชนีเฉพาะรูปแบบ) สามารถแบ่งชั้นได้
รูปแบบข้างต้นคือ ไม่สูญเสียข้อมูล: คุณสามารถสร้างไบต์ที่แน่นอนขึ้นมาใหม่ได้ ตัวแปลงสัญญาณสื่อมักเป็น สูญเสียข้อมูล: พวกเขาทิ้งรายละเอียดที่มองไม่เห็นเพื่อให้อัตราบิตต่ำลง ในภาพ, JPEG แบบคลาสสิก (DCT, การหาปริมาณ, การเข้ารหัสเอนโทรปี) ถูกกำหนดมาตรฐานใน ITU-T T.81 / ISO/IEC 10918-1. ในด้านเสียง, MP3 (MPEG-1 Layer III) และ AAC (MPEG-2/4) อาศัยแบบจำลองการรับรู้และการแปลง MDCT (ดู ISO/IEC 11172-3, ISO/IEC 13818-7, และภาพรวม MDCT ที่นี่). การสูญเสียและไม่สูญเสียข้อมูลสามารถอยู่ร่วมกันได้ (เช่น PNG สำหรับเนื้อหา UI; ตัวแปลงสัญญาณเว็บสำหรับภาพ/วิดีโอ/เสียง)
ทฤษฎี: แชนนอน 1948 · อัตรา-ความผิดเพี้ยน · การเข้ารหัส: ฮัฟฟ์แมน 1952 · การเข้ารหัสเลขคณิต · การเข้ารหัสช่วง · ANS. รูปแบบ: DEFLATE · zlib · gzip · Zstandard · Brotli · เฟรม LZ4 · รูปแบบ XZ. สแต็ก BWT: Burrows–Wheeler (1994) · คู่มือ bzip2. สื่อ: JPEG T.81 · MP3 ISO/IEC 11172-3 · AAC ISO/IEC 13818-7 · MDCT.
สรุป: เลือกคอมเพรสเซอร์ที่ตรงกับข้อมูลและข้อจำกัดของคุณ วัดผลจากข้อมูลจริง และ อย่าลืมประโยชน์จากพจนานุกรมและการจัดเฟรมอย่างชาญฉลาด ด้วยการจับคู่ที่เหมาะสม คุณจะได้รับ ไฟล์ขนาดเล็กลง, การถ่ายโอนที่เร็วขึ้น, และแอปที่เร็วขึ้น — โดยไม่สูญเสียความถูกต้องหรือการพกพา
การบีบอัดไฟล์คือกระบวนการที่ลดขนาดไฟล์หรือไฟล์ทั้งหมด โดยทั่วไปจะใช้เพื่อประหยัดพื้นที่จัดเก็บหรือเร่งความเร็วในการส่งผ่านเครือข่าย
การบีบอัดไฟล์ทำงานโดยระบุและการนำข้อมูลที่ซ้ำซ้อนออก มันใช้อัลกอริทึมเพื่อเข้ารหัสข้อมูลเดิมในพื้นที่ที่เล็กกว่า
สองประเภทหลักของการบีบอัดไฟล์คือการบีบอัดแบบสูญเสียและแบบไม่สูญเสีย การบีบอัดแบบไม่สูญเสียอนุญาตให้ไฟล์เดิมสามารถถูกกู้คืนได้แบบสมบูรณ์เมื่อการบีบอัดแบบสูญเสียช่วยลดขนาดไฟล์อย่างมากด้วยการสูญเสียคุณภาพข้อมูลบางส่วน
ตัวอย่างของเครื่องมือการบีบอัดไฟล์ที่นิยมคือ WinZip ซึ่งรองรับรูปแบบการบีบอัดหลายรูปแบบ รวมถึง ZIP และ RAR
ด้วยการบีบอัดแบบไม่สูญเสีย คุณภาพจะไม่เปลี่ยนแปลง หากแต่ด้วยการบีบอัดแบบสูญเสีย อาจมีการลดลงของคุณภาพเพราะการกำจัดข้อมูลที่ไม่สำคัญเพื่อลดขนาดไฟล์มากขึ้น
ใช่ การบีบอัดไฟล์ปลอดภัยในเชิงของความไม่เปล่าเสีย โดยเฉพาะด้วยการบีบอัดแบบไม่สูญเสีย แต่เหมือนกับไฟล์ใด ๆ ไฟล์ที่ถูกบีบอัดสามารถถูกกลายเป็นเป้าหมายของมัลแวร์หรือไวรัส ดังนั้นเสมอแล้วควรมีซอฟต์แวร์ความปลอดภัยที่น่าเชื่อถือ
แทบทุกประเภทของไฟล์สามารถบีบอัดได้ รวมถึงไฟล์ข้อความ ภาพ ข้อมูลเสียง วิดีโอ และไฟล์ซอฟต์แวร์ อย่างไรก็ตาม ระดับการบีบอัดที่สามารถทำได้สามารถแตกต่างกันอย่างมากขึ้นอยู่กับประเภทไฟล์
ไฟล์ ZIP เป็นประเภทของรูปแบบไฟล์ที่ใช้การบีบอัดแบบไม่สูญเสียเพื่อลดขนาดไฟล์หนึ่งหรือหลายไฟล์ ไฟล์หลายไฟล์ในไฟล์ ZIP ถูกจัดรวมเข้าด้วยกันเป็นไฟล์เดียวทำให้การแบ่งปันง่ายขึ้น
จริงแล้วด้วยทางเทคนิค คุณสามารถบีบอัดไฟล์ที่ถูกบีบอัดแล้ว แต่การลดขนาดเพิ่มเติมอาจจะมีน้อยหรือแม้แต่ทำงานตรงข้าม การบีบอัดไฟล์ที่ถูกบีบอัดแล้วอาจทำให้ขนาดของมันเพิ่มขึ้นเนื่องจากมีการเพิ่มข้อมูลเมตาดาตาโดยอัลกอริทึมการบีบอัด
เพื่อถอดการบีบอัดไฟล์ คุณโดยทั่วไปจะต้องมีเครื่องมือการถอดความกดหรือ unzip เช่น WinZip หรือ 7-Zip เครื่องมือเหล่านี้สามารถแยกไฟล์เดิมออกจากรูปแบบที่ถูกบีบอัด