فایل CSO چیست؟
یک فایل با پسوند cso. یک فایل تصویر ISO فشرده است. CSO جایگزینی برای روش فشرده سازی DAX است. همچنین به عنوان CISO شناخته می شود. اولین روش برای فشردهسازی فایلهای ISO بود و معمولاً یک روش ترجیحی برای آرشیو کردن موارد قابل حمل پلیاستیشن است. این فرمت از فشرده سازی Deflate استفاده می کند که می تواند تا نه لایه فشرده سازی را شامل شود. برای ایجاد تصاویر از نرم افزارهایی مانند Prometheus و YACC استفاده می شود.
فرمت فایل CSO
فرمت فایل CSO اولین روش فشرده سازی ISO برای صرفه جویی در فضای بیشتر حافظه بود. بهبودها هر از گاهی برای فشرده سازی بهتر انجام می شد. CSO از فشرده سازی Deflate با 9 سطح از پیش تنظیم استفاده می کند، معمولاً هر سطح می تواند 2 بلوک KiB را به صورت جداگانه مدیریت کند. در حالی که بالاترین سطوح فشرده سازی می تواند زمان بارگذاری را در نرم افزار کند و طولانی کند که به شدت به جریان دیسک بستگی دارد، همچنین سطوح پایین تر می توانند فشرده سازی قابل توجهی انجام دهند.
ساختار فایل CSO
فرمت فایل CSO شامل یک هدر 24 بایتی، بلوک های داده و یک جدول فهرست است. اندین کوچک برای فیلدهای بزرگتر از یک بایت در نظر گرفته می شود. مشخصات معماری 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 | Version | 1 | The version of the file format in use. For the “v1” format, the value can be either 0 or 1. برای فرمت v2، این باید 2 باشد. علاوه بر این، فرمت ZSO نیاز به این دارد که 1 باشد. |
0x15 | تراز شاخص | 1 | تراز هر ورودی شاخص، مشخص شده در بیت. |
0x16 | رزرو شده | 2 | این فیلد استفاده نشده است. در قالب v1، این فیلد نادیده گرفته می شود و ممکن است حاوی مقادیر دلخواه باشد. در فرمت v2 این فیلد باید صفر باشد. |
جدول فهرست
جدول فهرست شامل چندین ورودی 4 بایتی است که موقعیت هر بلوک داده را نشان می دهد و آخرین ورودی اضافی که به انتهای فایل اشاره می کند. محتوای هر مدخل به شرح زیر است:
بیت | طول | ماسک | نام | هدف |
---|---|---|---|---|
0 | 31 | 0x7FFFFFFFF | موقعیت | این فیلد، هنگامی که توسط تراز شاخص ارائه شده در هدر به چپ منتقل می شود، موقعیتی را نشان می دهد که بلوک داده از آنجا شروع می شود. |
31 | 1 | 0x80000000 | نوع فشرده سازی | فرمت ZSO معنایی مشابه دارد، فقط 0 به جای Deflate، LZ4 را نشان می دهد. در قالب v2. اگر اندازه بلوک برابر یا بزرگتر از اندازه بلوک مشخص شده در سرفصل فایل باشد، به طور ضمنی بلوک غیرفشرده در نظر گرفته می شود. |
بلوک های داده
بلوک های داده شامل داده های فشرده نشده یا فشرده می شود. اندازه یک بلوک با بدست آوردن موقعیت آن و سپس کم کردن آن از موقعیت بلوک زیر محاسبه می شود. اگر تراز شاخص بزرگتر از صفر باشد، به احتمال زیاد اندازه بلوک بزرگتر از داده هایی است که در آن نگهداری می شود.
منابع
- N/A