بينهيكس
| امتداد اسم الملف |
.hqx |
|---|---|
| نوع الوسائط على الإنترنت |
|
| معرف النوع الموحد (UTI) | com.apple.binhex-archive |
BinHex ، وهو اختصار في الأصل لـ "binary-to-hexadecimal"، هو نظام ترميز من ثنائي إلى نص كان يستخدم في نظام التشغيل Mac OS الكلاسيكي لإرسال الملفات الثنائية عبر البريد الإلكتروني . في الأصل كان نظام ترميز سداسي عشري ، والإصدارات اللاحقة من BinHex تشبه إلى حد كبير uuencode ، ولكنها جمعت بين "الشعبتين" لنظام ملفات Mac مع معلومات الملف الموسعة. تشغل الملفات التي تم تحويلها إلى BinHex مساحة أكبر من الملفات الأصلية، ولكنها لن تتلف بواسطة برامج غير " نظيفة 8 بت ".
تاريخ
TRS-80 BinHex (.hex)
تم كتابة BinHex في الأصل عام 1981 بواسطة Tim Mann لـ TRS-80 كإصدار مستقل من مخطط ترميز تم بناؤه في الأصل في محاكي طرفية شائع ، ST80-III بواسطة Lance Micklus. تم استخدام BinHex لإرسال الملفات عبر الخدمات الرئيسية عبر الإنترنت ، مثل CompuServe ، والتي لم تكن "نظيفة 8 بت" وتتطلب درع ASCII للبقاء. ومع ذلك، لم يستخدم الجميع ST-80، لذلك كتب Mann BinHex للسماح لمستخدمي المحطات الطرفية الأخرى باستخدام التنسيق. [1]
كان نظام ST-80 الأصلي يعمل عن طريق تحويل محتويات الملف الثنائي إلى أرقام سداسية عشرية ، والتي تم ترميزها كأرقام وحروف ASCII0 ( – 9، A– F). ثم أضاف سطرًا جديدًا بعد كل 60 حرفًا. أصبح النظام شائعًا للغاية بعد أن قام مان بتحميله إلى منطقة ملفات TRS-80 في CompuServe. اكتسب النظام بسرعة إضافة مجموع اختباري في نهاية كل سطر للتحقق من الأخطاء. قام بيل ستوكويل بتحويل هذا الإصدار إلى مُجمِّع BASIC/S، والذي كان يعمل بشكل أسرع بكثير من إصدار مان المُفسَّر. [1]
كانت ملفات BinHex في ذلك العصر تُعطى عادةً امتداد الملف .hex . وسرعان ما ظهرت المنافذ لمنصات أخرى شائعة في ذلك العصر، بما في ذلك Apple II . أضافت CompuServe لاحقًا دعمًا لعمليات النقل ذات 8 بت، واختفى التنسيق بسرعة. [1]
ماك بينهيكس (.hex)
ظلت مشكلة تحميل الملفات موجودة على CompuServe عندما تم إصدار Mac لأول مرة في عام 1984. في أبريل 1984، نقل ويليام ديفيس BinHex إلى Mac باستخدام Microsoft BASIC لإنتاج إصدار كان متطابقًا إلى حد كبير مع إصدارات TRS-80 من نفس العصر. [1] يدعم هذا الإصدار ترميز "شوكة البيانات" فقط، متجاهلاً شوكة الموارد ، مما يعني أنه لا يمكن استخدامه إلا لملفات البيانات. تزامن ارتفاع استخدام البريد الإلكتروني عبر الإنترنت تقريبًا مع إصدار Macintosh، ونشر جويل هيلر إصدار ديفيس على قائمة بريد Info-Mac في يونيو 1984. تم نشر العديد من الإصدارات الأحدث خلال عام 1984، مما أدى إلى ظهور BinHex 3 الذي يمكنه ترميز كلا الشوكتين.
وجد إيف ليمبيرور، مؤلف أول برنامج تجميعي لنظام التشغيل ماك، MacASM، أنه من أجل تحميل ملفاته إلى CompuServe كان عليه استخدام BinHex. كانت النسخة BASIC بطيئة للغاية، لذا قام ليمبيرور بنقل BinHex 3 إلى لغة التجميع وأصدره باسم BinHex 1.0. كان البرنامج أسرع بحوالي مائة مرة من النسخة BASIC، وسرعان ما تدفقت طلبات الترقية. [2]
ملف BinHex مضغوط (.hcx)
كان تنسيق BinHex الأصلي بسيطًا إلى حد ما، ولم يكن فعالًا للغاية لأنه كان يوسع كل بايت من المدخلات إلى اثنين، كما هو مطلوب من التمثيل السداسي عشر - ترميز من 8 إلى 4 بت. بالنسبة لـ BinHex 2.0، استخدم Lempereur ترميزًا جديدًا من 8 إلى 6 مما أدى إلى تقليل حجم الملف بنسبة 50%. كما اغتنم الفرصة لتوسيع المجموع الاختباري من 8 إلى 16 بت. [2]
استخدم هذا الترميز الجديد أول 64 حرف طباعة ASCII، بما في ذلك المسافة، لتمثيل البيانات، [3] على نحو مماثل لـ uuencode . وعلى الرغم من أن الترميز الجديد لم يعد سداسي عشريًا بطبيعته، فقد تم الاحتفاظ بالاسم الثابت للبرنامج. كانت الملفات الأصغر غير متوافقة مع الملفات الأقدم، لذلك أصبح الامتداد .hcx ، وc لـ compact. حل الإصدار الجديد محل الإصدارات السابقة "بين عشية وضحاها". [2]
بينهيكس 4 (.hqx)
كان لدى Lempereur مخاوف بشأن بعض ميزات BinHex، وخاصة استخدامه لمجموع اختباري بدلاً من فحص التكرار الدوري (CRC) وحقيقة أن معلومات البيانات الوصفية في الرأس كانت في نص عادي وبالتالي يمكن إتلافها بنفس الطريقة التي تتلف بها البيانات. [2]
من أجل حل كل هذه المشاكل، أصدر Lempereur BinHex 4.0 في عام 1985، متجاوزًا الإصدار 3.0 لتجنب الارتباك مع إصدار BASIC الميت منذ فترة طويلة الآن. قام الإصدار 4.0 أولاً بدمج شوكة البيانات وشوكة الموارد وبيانات التعريف الخاصة بالملف في تنسيق مشترك مكون من 8 بتات، وشغل ترميز طول التشغيل (RLE) على النتيجة لتوفير بعض الضغط، ثم قام بتشغيل تحويل 8->6 على النتيجة وحمايتها باستخدام عمليات CRC متعددة. .hqxكانت الملفات الناتجة بنفس حجم ملفات .hcx's تقريبًا، ولكنها أكثر قوة. [2]
بينهيكس 5
في الوقت الذي تم فيه إصدار BinHex 4 تقريبًا، بدأت معظم الخدمات عبر الإنترنت في دعم بروتوكولات نقل الملفات القوية ذات 8 بتات مثل ZMODEM ، واختفت الحاجة إلى حماية ASCII. ومع ذلك، ترك هذا مشكلة على نظام التشغيل Mac، حيث لا تزال هناك حاجة إلى ترميز الشوكتين في واحدة.
أدى جهد جماعي بين مبرمجي اتصالات ماكنتوش، بما في ذلك ليمبيرور، إلى ظهور MacBinary . تركت هذه .binالملفات محتويات الشوكات بتنسيقها الأصلي ذي الثمانية بتات وأضافت رأسًا بسيطًا لدمجها عند الاستقبال؛ وبالتالي كانت ملفات MacBinary أصغر كثيرًا من BinHex. أصدر ليمبيرور BinHex 5.0، وهو مطابق تقريبًا للإصدار 4.0 باستثناء أنه استخدم MacBinary لدمج الشوكات قبل تشغيل الترميز من 8 إلى 6. وقد وجد هذا استخدامًا ضئيلًا، كما توقع. [2]
على شبكة الإنترنت ، كان البريد الإلكتروني لا يزال الطريقة الأساسية لنقل الملفات. في ذلك الوقت، كان عدد قليل نسبيًا من الأشخاص يتمتعون بإمكانية الوصول الكامل إلى الإنترنت، وكانت خدمات مثل FTPmail هي الطريقة الوحيدة التي يمكن للعديد من المستخدمين من خلالها تنزيل الملفات. بعد سنوات، عندما دخل Lempereur لأول مرة إلى الإنترنت، فوجئ بأن BinHex 4.0 لا يزال شائعًا للغاية. [2]
كان من الممكن تحقيق نفس الغايات باستخدام MacBinary أو AppleSingle أولاً لدمج الشوكات، ثم استخدام Uuencode أو Base64 في الملف الناتج، لكن لم يحظ أي من هذه الحلول بشعبية كبيرة واستمر BinHex 4.0 حتى أواخر التسعينيات. لا تزال أرشيفات الملفات الخاصة ببرامج Mac OS الكلاسيكية مليئة بملفات BinHexed.
تنسيق الملف BinHex 4
عند النظر إلى محتويات ملف BinHex، سيلاحظ المرء أنه يحتوي على رسالة عادةً في السطر الأول تشير إلى أنه BinHex، متبوعة بالعديد من الأسطر التي يبلغ طول كل منها 64 حرفًا والتي تتكون من أحرف وأرقام وعلامات ترقيم عشوائية على ما يبدو. فيما يلي عينة من الشكل الفعلي لملف BinHex:
(يجب تحويل هذا الملف باستخدام BinHex 4.0) :$f*TEQKPH#jdCA0d,R0TG!"6594%8dP8)3#3"!&m!*!%EMa6593K!!%!!!&mFNa KG3,r!*!$&[rr$3d,BQPZD'9i,R4PFh3!RQ+!!"AV#J#3!i!!N!@QKUjrU!#3'[q 3"&4&@&483N)f!3#Xaj6bV-H8mJ!!!B3!N!0"!*!$[3#3!cR@iiY)!*!'[I%4!!J Fp$X%X3@J!mZE6!GRiKUi$HGKMf0U61S46%i1"AB!TI,fLl!d1X3RDDE8ALfTCbM 8UP9p4iUqY-0k4krHpk9XK@`rbj2Ti'U@5rGH@+[fr-i4T6-qXpfl26,k!H5$Nml TIkI'(l3GI4)f8mII&01CNEbC2LrNLBeaZ1HG@$G8!Z6"k)hh,q9p"r6FC*!!Se" (ic,Pd(4(b`pflKC`H1&JN5)GVX3mREdH55[l`%`Yhp%q092c`A(hPV)!83Dr&f4 $$L#I1aM-"VjqV-q$34KQq6$M$f8#,Zc,i),!(`*ZN!$K$rS!LA%3cL+dYi"@,K( Z"`#3!fKi!!!:
يجب أن يكون هناك سطر نصي يستخدمه المستخدمون والأدوات للتعرف على إصدارات BinHex: (This file must be converted with BinHex 4.0). يجب تجاهل أي نص قبل هذا السطر. [4]
يتكون باقي الملف من ثلاثة أجزاء، رأس (يحتوي على اسم الملف والحجم وما إلى ذلك)، وشوكة بيانات (تحتوي على بيانات الملف) وشوكة موارد . كل منها يحتوي على مجموع اختباري CRC مكون من بايتين .
كل شيء باستثناء (This fileالسطر ... يُنظر إليه بعد ذلك كمنطقة من البيانات الثنائية، والتي يتم ترميزها بأحرف ASCII. تقول خوارزمية الترميز أن ثلاثة بايتات إدخال مقسمة إلى أربع قيم مكونة من 6 بتات، بطريقة مماثلة للطريقة التي تعمل بها Base64 . يتم إعطاء الأرقام من 0 إلى 63 أحرفًا وفقًا للقائمة التالية!"#$%&'()*+,-012345689@ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdefhijklmpqr
عند الترميز، يجب إدراج <return> بعد كل 64 حرفًا. بعد الترميز، يتم وضع علامة نقطتين قبل وبعد البيانات.
مراجع
- ^ أ ب ج د مان.
- ^ abcdefg Lempereur 1997.
- ^ على سبيل المثال، يستخدم الكود المصدر لإصدار CWI
hexbinالمضمن في macutils ، فيhecx.cالسطر 187، التعبير((c)-0x20) & 0x3fللحصول على القيمة العددية لرقم HCX باستخدام القيمة ASCIIc. - ^ RFC 1741 نوع محتوى MIME للملفات المشفرة بصيغة BinHex. Faltstrom, P. & Crocker, D. & Fair., E. (ديسمبر 1994).
فهرس
- مان، تيم. "ما قبل التاريخ من BinHex".
- Lempereur, Yves (25 نوفمبر 1997). "ما قبل تاريخ BinHex".
انظر أيضا
- الترميز الثنائي إلى نص للمقارنة بين خوارزميات الترميز المختلفة
روابط خارجية
- تعريف BinHex 4.0 - بيتر ن. لويس، أغسطس 1991.
- Convert::BinHex، وحدة Perl لتشفير وفك تشفير ملفات BinHex
- macutils، يحول بين ترميزات ملفات Macintosh المختلفة لنظام UNIX
- UUDeview، برنامج فك تشفير سطر الأوامر متعدد المنصات
- برنامج ترميز/فك تشفير BinHex عبر الإنترنت
