ما هو ملف CSO؟
الملف ذو الامتداد .cso هو ملف صورة ISO مضغوط. CSO هو بديل لطريقة ضغط DAX ؛ المعروف أيضًا باسم CISO ؛ كانت الطريقة الأولى لضغط ملفات ISO وعادة ما تكون الطريقة المفضلة لأرشفة عناصر PlayStation المحمولة. يستخدم هذا التنسيق ضغط Deflate ، والذي يمكن أن يتضمن ما يصل إلى تسع طبقات ضغط. يتم استخدام برامج مثل Prometheus و YACC لإنشاء الصور.
تنسيق ملف CSO
كان تنسيق ملف CSO هو أول طريقة ضغط لـ ISO لتوفير مساحة أكبر من الذاكرة. تم إجراء التحسينات من وقت لآخر لتحسين الضغط. يستخدم CSO ضغط Deflate الذي يحتوي على تسعة مستويات من الإعدادات المسبقة ، وعادةً ما يمكن لكل مستوى التعامل مع كتل 2 KiB على حدة. في حين أن أعلى مستويات الضغط يمكن أن تبطئ أوقات التحميل الطويلة في البرامج التي تعتمد بشكل كبير على تدفق القرص ، كما يمكن للمستويات المنخفضة أن تؤدي ضغطًا كبيرًا.
هيكل ملف CSO
يحتوي تنسيق ملف CSO على رأس 24 بايت وكتل بيانات وجدول فهرس. يُفترض أن تكون قيمة Endian صغيرة للحقول الأكبر من البايت. فيما يلي الشكل الداخلي للهندسة المعمارية لجهاز PlayStation Portable.
العنوان
إزاحة (بايت) | الاسم | الحجم (بايت) | الغرض |
---|---|---|---|
0x0 | السحر | 4 | دائمًا CISO ، أو 0x4F534943 عند قراءته كعدد صحيح 32 بت. يستخدم هذا الحقل لتعريف ملف CSO. لاحظ أن هذا الحقل يمكن أن يكون مختلفًا بالنسبة لمشتقات CSO الأخرى ، على سبيل المثال ، استخدم ZSO الرمز السحري ZISO. |
0x4 | حجم الرأس | 4 | بالنسبة إلى تنسيق ملف CSO “v1” الأصلي ، يتم تجاهل هذا الحقل وبالتالي لا يشترط أن يكون دقيقًا. ومع ذلك ، يتطلب تنسيق “v2” و ZSO أن يكون هذا الحقل دائمًا 0x18 (24 بايت). |
0x8 | حجم غير مضغوط | 8 | حجم ملف ISO الأصلي غير المضغوط بالبايت. |
0x10 | حجم الكتلة | 4 | حجم كل كتلة بيانات بالبايت قبل الضغط. عادة 2048 بايت ، نفس حجم كل قطاع ISO 9660. |
0x14 | الإصدار | 1 | إصدار تنسيق الملف قيد الاستخدام. بالنسبة للتنسيق “v1” ، يمكن أن تكون القيمة إما 0 أو 1. للتنسيق “v2” ، يجب أن تكون 2. بالإضافة إلى ذلك ، يتطلب تنسيق ZSO أن يكون 1. |
0x15 | محاذاة الفهرس | 1 | محاذاة كل مدخل فهرس ، محدد بالبتات. |
0x16 | محجوز | 2 | هذا الحقل غير مستخدم. في تنسيق “v1” ، يتم تجاهل هذا الحقل وقد يحتوي على قيم عشوائية. في تنسيق “v2” ، يجب أن يكون هذا الحقل صفراً. |
جدول الفهرس
يحتوي جدول الفهرس على عدة إدخالات من 4 بايت ، والتي تشير إلى موضع كل كتلة بيانات ، ومدخل أخير إضافي يشير إلى نهاية الملف. محتوى كل إدخال كما يلي:
بت | الطول | قناع | الاسم | الغرض |
---|---|---|---|---|
0 | 31 | 0x7FFFFFFF | المنصب | هذا الحقل ، عند إزاحته لليسار بواسطة محاذاة الفهرس الواردة في الرأس ، يعطي الموضع الذي تبدأ فيه كتلة البيانات. |
31 | 1 | 0x80000000 | نوع الضغط | يحتوي تنسيق ZSO على دلالات متشابهة ، فقط هذا 0 يمثل LZ4 بدلاً من Deflate. بتنسيق “v2”. تعتبر الكتلة غير مضغوطة ضمنيًا إذا كان حجم الكتلة مساويًا أو أكبر من حجم الكتلة المحدد في رأس الملف. |
كتل البيانات
تتكون كتل البيانات من البيانات غير المضغوطة أو المضغوطة. يتم حساب حجم الكتلة عن طريق الحصول على موضعها ، ثم طرحها من موضع الكتلة التالية. إذا كانت محاذاة الفهرس أكبر من الصفر ، فمن المحتمل أن يكون حجم الكتلة أكبر من البيانات التي تحتوي عليها.
مراجع
- N/A