একটি জিপ ফাইল কি?
A file with .zip extension is an archive that can hold one or more files or directories. The archive can have compression applied to the included files in order to reduce the জিপ file size. জিপ file format was made public back in February 1989 by Phil Katz for achieving archiving of files and folders. The format was made part of PKজিপ utility, created by PKWARE, Inc. Right after the availability of available specifications, many companies made জিপ file format part of their software utilities including Microsoft (since Windows 7), Apple (Mac OS X ) and many others.
জিপ ফাইল ফরম্যাটের সংক্ষিপ্ত ইতিহাস
জিপ ফাইল ফরম্যাটের ইতিহাসটি PKWARE-এর বিরুদ্ধে সিস্টেম এনহ্যান্সমেন্ট অ্যাসোসিয়েটস (SEA) দ্বারা তার ট্রেডমার্ক এবং পণ্যের চেহারা এবং ব্যবহারকারীর ইন্টারফেসের কপিরাইটগুলির অনুমতি ছাড়াই ARC ইউটিলিটি ব্যবহার করার জন্য মামলা দায়েরের ঘটনা থেকে ফিরে এসেছে। এর আগে, ফিল কাটজ, SEA-এর সোর্স কোড পুনর্লিখন করেছিলেন এবং MS-DOS ভিত্তিক সিস্টেমের জন্য ফ্রিওয়্যার হিসাবে PKXARC, একটি ARC এক্সট্রাক্টর এবং PKARC, একটি ফাইল কম্প্রেসার প্রকাশ করেছিলেন। মামলায় হেরে যাওয়ায়, PKWARE আর ARC সম্পর্কিত কিছু ব্যবহার করতে পারেনি। এখানেই একটি নতুন ফাইল কম্প্রেশন তৈরি করা হয়েছিল, যার নাম জিপ যা PKWARE, Inc-এর PKজিপ ইউটিলিটির অংশ ছিল।
কাটজ তার কম্প্রেশন এবং এক্সট্রাকশন ইউটিলিটি অর্থাৎ PKজিপ-এর উপর মালিকানা অধিকার বজায় রেখে জিপ ফাইল ফরম্যাটের স্পেসিফিকেশনগুলিকে পাবলিক ডোমেনে প্রকাশ করেছে। জিপ কম্প্রেশন সিস্টেম ফাইলের আকার সংকুচিত করার জন্য 32-বিট সাইক্লিক রিডানডেন্সি চেক (CRC) অ্যালগরিদমের মাধ্যমে একটি ফোল্ডারে ফাইল সংরক্ষণ করতে সক্ষম ছিল (এবং আছে)৷ ARC এর বিপরীতে, .জিপ ফোল্ডারে একটি ডিরেক্টরি ফাইল অন্তর্ভুক্ত ছিল যা একটি ক্রিপ্টোগ্রাফারের কোড বইয়ের ভূমিকা পালন করে, সংকুচিত ফাইলগুলিকে রেন্ডার করার জন্য প্রয়োজনীয় তথ্য ধারণ করে।
জিপ-এ সমর্থিত কম্প্রেশন পদ্ধতি
.জিপ ফাইল ফরম্যাট স্পেসিফিকেশন অনুযায়ী, নিম্নলিখিত কম্প্রেশন পদ্ধতি সমর্থিত।
স্টোর - কোন কম্প্রেশন বোঝায়
সঙ্কুচিত
হ্রাস (এটি লেভেল 1 থেকে লেভেল 4 পর্যন্ত কম্প্রেশন ফ্যাক্টর বোঝায়)
বিস্ফোরণ
ডিফ্লেট
Deflat64
Bজিপ2
LZMA (EFS)
WavPack
PPMd সংস্করণ I, Rev 1
DEFLATE is the commonly used compression method which is a lossless date compression algorithm that uses a combination of the LZ77 and Huffman coding and is detailed in RFC 1951.
জিপ ফাইল ফরম্যাট স্পেসিফিকেশন
জিপ ফাইলগুলি বিভিন্ন কম্প্রেশন কৌশল ব্যবহার করে একাধিক ফাইল সংরক্ষণ করার ক্ষমতা রাখে যখন একই সময়ে কোনও কম্প্রেশন ছাড়াই একটি ফাইল সংরক্ষণ করা সমর্থন করে। প্রতিটি ফাইল পৃথকভাবে সংরক্ষিত/সংকুচিত করা হয় যা সম্পূর্ণ সংরক্ষণাগারে কম্প্রেশন বা ডিকম্প্রেশন প্রয়োগ না করে সেগুলিকে বের করতে বা নতুনগুলি যোগ করতে সহায়তা করে।
সামগ্রিক জিপ ফাইল ফরম্যাট
প্রতিটি জিপ ফাইল নিম্নলিখিত পদ্ধতিতে গঠন করা হয়:
জিপ ফাইল ফরম্যাট |
---|
স্থানীয় ফাইল হেডার 1 |
ফাইল ডেটা ১ |
ডেটা বর্ণনাকারী 1 |
স্থানীয় ফাইল হেডার 2 |
ফাইল ডেটা 2 |
ডেটা বর্ণনাকারী 2 |
… |
… |
স্থানীয় ফাইল হেডার এন |
ফাইল ডেটা এন |
ডেটা বর্ণনাকারী এন |
আর্কাইভ ডিক্রিপশন হেডার |
অতিরিক্ত ডেটা রেকর্ড আর্কাইভ করুন |
কেন্দ্রীয় ডিরেক্টরি |
জিপ ফাইল ফরম্যাট সংরক্ষণাগারের উদ্দেশ্যে 32-বিট CRC অ্যালগরিদম ব্যবহার করে। সংকুচিত ফাইলগুলি রেন্ডার করার জন্য, একটি জিপ সংরক্ষণাগারের শেষে একটি ডিরেক্টরি থাকে যা সংরক্ষণাগার ফাইলে থাকা ফাইলগুলির এন্ট্রি এবং তাদের অবস্থান রাখে। এটি, এইভাবে, সংকুচিত ফাইল রেন্ডার করার জন্য প্রয়োজনীয় তথ্য এনক্যাপসুলেট করার জন্য এনকোডিংয়ের ভূমিকা পালন করে। জিপ পাঠকরা সম্পূর্ণ জিপ সংরক্ষণাগার না পড়ে ফাইলের তালিকা লোড করার জন্য ডিরেক্টরি ব্যবহার করে। বিন্যাস ডাটা হারানোর বিরুদ্ধে অধিকতর সুরক্ষা প্রদানের জন্য ডিরেক্টরি কাঠামোর দ্বৈত কপি রাখে।
একটি জিপ সংরক্ষণাগারের প্রতিটি ফাইলকে একটি পৃথক এন্ট্রি হিসাবে উপস্থাপন করা হয় যেখানে প্রতিটি এন্ট্রিতে একটি স্থানীয় ফাইল শিরোনাম থাকে যার পরে সংকুচিত ফাইল ডেটা থাকে৷ সংরক্ষণাগারের শেষে থাকা ডিরেক্টরি এই সমস্ত ফাইল এন্ট্রির রেফারেন্স ধারণ করে৷ জিপ ফাইল পাঠকদের স্থানীয় ফাইল শিরোনাম পড়া এড়ানো উচিত এবং ডিরেক্টরি থেকে সমস্ত ধরণের ফাইল তালিকা পড়া উচিত। এই ডিরেক্টরিটি সংরক্ষণাগারে বৈধ ফাইল এন্ট্রির একমাত্র উত্স কারণ ফাইলগুলি সংরক্ষণাগারের শেষের দিকেও যুক্ত করা যেতে পারে। এই কারণেই যদি একজন পাঠক শুরু থেকে একটি জিপ সংরক্ষণাগারের স্থানীয় শিরোনামগুলি পড়েন, তাহলে এটি অবৈধ (মুছে ফেলা) এন্ট্রি পড়তে পারে এবং সেই সাথে যেগুলি সংরক্ষণাগার থেকে মুছে ফেলা ডিরেক্টরির অংশ নয়।
সেন্ট্রাল ডিরেক্টরীতে ফাইল এন্ট্রির ক্রম আর্কাইভের ফাইল এন্ট্রির অর্ডারের সাথে মিলতে হবে না।
জিপ ফাইল এন্ট্রি
জিপ ফাইলের এন্ট্রিগুলি একের পর এক সাজানো হয় যেখানে প্রতিটি এন্ট্রিতে থাকে:
স্থানীয় ফাইল হেডার
ঐচ্ছিক অতিরিক্ত ডেটা ক্ষেত্র
ব্যবহারকারীর ডেটা (ঐচ্ছিকভাবে সংকুচিত/ঐচ্ছিকভাবে এনক্রিপ্ট করা)
প্রতিটি এন্ট্রির স্থানীয় ফাইল হেডার ফাইল সম্পর্কে তথ্য যেমন মন্তব্য, ফাইলের আকার এবং ফাইলের নাম উপস্থাপন করে। অতিরিক্ত ডেটা ক্ষেত্র (ঐচ্ছিক) জিপ ফর্ম্যাটের এক্সটেনসিবিলিটি বিকল্পগুলির জন্য তথ্য মিটমাট করতে পারে।
স্থানীয় ফাইল হেডার
স্থানীয় ফাইল হেডারে মাল্টি-বাইট মান সমন্বিত নির্দিষ্ট ক্ষেত্রের কাঠামো রয়েছে। সমস্ত মান লিটল-এন্ডিয়ান বাইট ক্রমে সংরক্ষণ করা হয় যেখানে ক্ষেত্রের দৈর্ঘ্য বাইটে দৈর্ঘ্য গণনা করে। একটি জিপ ফাইলের সমস্ত কাঠামো প্রতিটি ফাইল এন্ট্রির জন্য 4-বাইট স্বাক্ষর ব্যবহার করে। কেন্দ্রীয় ডিরেক্টরি স্বাক্ষরের শেষটি হল 0x06054b50 এবং এটির নিজস্ব অনন্য স্বাক্ষর ব্যবহার করে আলাদা করা যেতে পারে। স্থানীয় ফাইল হেডারে সংরক্ষিত তথ্যের ক্রম নিম্নরূপ।
অফসেট | বাইটস | বর্ণনা |
---|---|---|
0 | 4 | স্থানীয় ফাইল হেডার স্বাক্ষর # 0x04034b50 (একটি ছোট-এন্ডিয়ান সংখ্যা হিসাবে পড়ুন) |
4 | 2 | ভার্সন এক্সট্র্যাক্ট করতে প্রয়োজন |
6 | 2 | সাধারণ উদ্দেশ্য বিট পতাকা |
8 | 2 | কম্প্রেশন পদ্ধতি |
10 | 2 | ফাইল শেষ পরিবর্তনের সময় |
12 | 2 | ফাইল শেষ পরিবর্তনের তারিখ |
14 | 4 | CRC-32 |
18 | 4 | সংকুচিত আকার |
22 | 4 | অসংকুচিত আকার |
26 | 2 | ফাইলের নামের দৈর্ঘ্য (n) |
28 | 2 | অতিরিক্ত ক্ষেত্রের দৈর্ঘ্য (মি) |
30 | n | ফাইলের নাম |
30+n | m | অতিরিক্ত ক্ষেত্র |
কেন্দ্রীয় ডিরেক্টরি ফাইল হেডার
অফসেট | বাইটস | বর্ণনা |
---|---|---|
0 | 4 | সেন্ট্রাল ডিরেক্টরি ফাইল হেডার স্বাক্ষর # 0x02014b50 |
4 | 2 | সংস্করণ তৈরি করেছে |
6 | 2 | এক্সট্র্যাক্ট করার জন্য সংস্করণ প্রয়োজন (সর্বনিম্ন) |
8 | 2 | সাধারণ উদ্দেশ্য বিট পতাকা |
10 | 2 | কম্প্রেশন পদ্ধতি |
12 | 2 | ফাইল শেষ পরিবর্তনের সময় |
14 | 2 | ফাইল শেষ পরিবর্তনের তারিখ |
16 | 4 | CRC-32 |
20 | 4 | সংকুচিত আকার |
24 | 4 | অসংকুচিত আকার |
28 | 2 | ফাইলের নামের দৈর্ঘ্য (n) |
30 | 2 | অতিরিক্ত ক্ষেত্রের দৈর্ঘ্য (মি) |
32 | 2 | ফাইল মন্তব্যের দৈর্ঘ্য (k) |
34 | 2 | ডিস্ক নম্বর যেখানে ফাইল শুরু হয় |
36 | 2 | অভ্যন্তরীণ ফাইলের বৈশিষ্ট্য |
38 | 4 | বাহ্যিক ফাইলের বৈশিষ্ট্য |
42 | 4 | স্থানীয় ফাইল হেডারের আপেক্ষিক অফসেট। এটি প্রথম ডিস্কের সূচনা এবং স্থানীয় ফাইল হেডারের শুরুর মধ্যে বাইটের সংখ্যা। এটি সফ্টওয়্যারকে জিপ ফাইলের ভিতরে ফাইলের অবস্থান সনাক্ত করতে কেন্দ্রীয় ডিরেক্টরি পড়ার অনুমতি দেয়। |
46 | n | ফাইলের নাম |
46+n | m | অতিরিক্ত ক্ষেত্র |
46+n+m | k | ফাইল মন্তব্য |
কেন্দ্রীয় ডিরেক্টরি রেকর্ডের শেষ
অফসেট | বাইটস | বর্ণনা |
---|---|---|
0 | 4 | কেন্দ্রীয় ডিরেক্টরি স্বাক্ষরের সমাপ্তি # 0x06054b50 |
4 | 2 | এই ডিস্কের সংখ্যা |
6 | 2 | ডিস্ক যেখানে কেন্দ্রীয় ডিরেক্টরি শুরু হয় |
8 | 2 | এই ডিস্কে কেন্দ্রীয় ডিরেক্টরি রেকর্ডের সংখ্যা |
10 | 2 | কেন্দ্রীয় ডিরেক্টরি রেকর্ডের মোট সংখ্যা |
12 | 4 | কেন্দ্রীয় ডিরেক্টরির আকার (বাইট) |
16 | 4 | সেন্ট্রাল ডিরেক্টরির শুরুর অফসেট, সংরক্ষণাগার শুরুর সাথে সম্পর্কিত |
20 | 2 | মন্তব্যের দৈর্ঘ্য (n) |
22 | n | মন্তব্য |