الخلاصة
- نشأ Kermit في Columbia عام 1981 لتلبية حاجة الطلاب والموظفين إلى تبادل الملفات بين الحواسيب المركزية والحواسيب الصغيرة التي بدأت تنتشر.
- عملت نواته بحزم صغيرة تتطلب تأكيداً فوق خطوط تسلسلية، بينما عالجت قواعد الأحرف والسجلات والخيارات المتفاوض عليها اختلافات لا تحلها الوصلة المادية.
في أول عرض لنقل الملفات عبر Kermit، تبادل برنامجا Kermit-20 ملفاً بواسطة كابل null-modem بين منفذين تسلسليين في حاسوب DECSYSTEM-20 واحد. ووصف مشروع Kermit ذلك لاحقاً بأنه إثبات للمفهوم، فالنسخ داخل الحاسوب نفسه أبسط. جاء الاختبار الفعلي بعد أسابيع: في طرف حاسوب DEC-20 يعمل بنظام TOPS-20، وفي الطرف الآخر حاسوب Intertec Superbrain يعمل بنظام CP/M-80. اختلف المعالج ونظام التشغيل وطريقة تمثيل الملفات. لم تكن المشكلة مجرد إرسال بايتات عبر سلك.
كان نمط استخدام الحواسيب في Columbia يتغير. أخذت الحواسيب الصغيرة تدخل المختبرات والأقسام والمنازل والسكن الطلابي، فيما ظلت الملفات والخدمات الأساسية على أنظمة المشاركة الزمنية المركزية. وفي ورقة أُعدت عام 1983، وصف Frank da Cruz وBill Catchings معرفات الطلاب المخصصة بحسب المقرر أو الفصل، والتي لم تضمن بقاء مساحة القرص زمناً طويلاً. وكان الحاسوب الصغير المزود بقرص مرن قادراً على حفظ العمل محلياً، شرط وجود طريقة موثوقة لنقله إلى الحاسوب المركزي والعكس. هذا وصف لحاجة مؤسسة بعينها، وليس قياساً لجميع الجامعات.
زادت الخطوط التسلسلية صعوبة التبادل. فالخط غير المتزامن العادي لم يكن يحمي كثيراً من الضوضاء أو فقد الأحرف أو امتلاء المخازن المؤقتة أو الانقطاع المتقطع للحامل. لذلك قسم Kermit النقل إلى حزم، وجعل كل حزمة جزءاً من حوار. يبدأ المرسل بحزمة Send-Init لعرض المعلمات، ثم يرد المستقبل بمعلماته. يعرّف رأس الملف اسمه، وتحمل حزم البيانات أجزاء المحتوى، فيما تشير حزم منفصلة إلى نهاية الملف ثم نهاية النقل. يسمح التأكيد بالتقدم؛ أما الرفض أو انتهاء المهلة فيؤدي إلى إعادة الإرسال.
كانت الآلية الأساسية صغيرة عن قصد. يتقدم رقم الحزمة بترديد 64، كي يعرف البرنامجان الوحدة التي جرى تأكيدها ويلاحظا خطوة مفقودة أو مكررة داخل الجلسة. ويساعد فحص حسابي إلزامي من حرف واحد على اكتشاف الحزمة المتغيرة. لكنه ليس فحصاً تشفيرياً حديثاً ولا يثبت هوية الشخص عند الطرف الآخر. إنه وسيلة تتيح للبرنامجين اكتشاف بعض أخطاء النقل والمحاولة من جديد. جاءت الموثوقية من تعاون الطرفين، لا من تحول الخط إلى وسيط موثوق بذاته.
لم تقتصر مشكلة التوافق على الخط. فقد تتبادل آلتان أحرف ASCII مع اختلافهما في فهم الملف. اختلفت بيئة DEC-20 عن CP/M، وأدخلت الحواسيب المركزية من IBM قيوداً إضافية. قد يتكون الملف من سجلات لا من سلسلة بايتات بسيطة؛ كما تختلف ترميزات النصوص، وقد تعكس طرفية الحاسوب المركزي الأحرف أو تلتف عند نهاية السطر أو تحول حالة الأحرف أو تستهلك رموز التحكم. وإذا عومل الاتصال كقناة شفافة تماماً فقد يتغير الملف قبل كتابته على قرص المستقبل.
وضع Kermit تمثيلاً مشتركاً للنقل وتحويلات واضحة عند الطرفين. تستخدم صيغة الحزم الأساسية أحرفاً قابلة للطباعة، ويمكن تحويل رموز التحكم في البيانات إلى تسلسلات قابلة للطباعة. بعد ذلك يعيد كل برنامج صياغة التبادل وفق قواعد الملفات المحلية. وحدد دليل البروتوكول الافتراض المشترك بدقة: ASCII على خط تسلسلي غير متزامن عادي. لم يجعل الحواسيب متطابقة، بل أعطاها لغة محدودة تتجاوز اختلافات التخزين والترميز وسلوك الطرفية.
وكان على التطبيقات ذات القدرات المختلفة أن تتواصل أيضاً. يوضح دليل نوفمبر 1983 أن التطوير كان موزعاً وغير منظم، لذلك تعذر فرض إصدار ثابت على كل منفذي Kermit. عرّف الدليل الوظائف الأساسية والخيارات، وأتاح لتبادل المعلمات الأولي إعلان قدرات كل طرف. وكان هدف التصميم المعلن أن يعمل التنفيذ البسيط مع تنفيذ أكثر تطوراً. هذا تعبير عن النية، وليس دليلاً على توافق كل تطبيقين.
لم تجمد النواة الصغيرة البروتوكول. أضافت الإصدارات اللاحقة حزماً أطول وفحوصاً أقوى ونوافذ انزلاقية كاملة الازدواج. وينسب الدليل تطوير النوافذ إلى مجموعة في The Source Telecomputing خلال 1985–1986. عالجت الإضافة مشكلة أداء مختلفة: انتظار تأكيد كل حزمة قد يهدر الوقت على مسار ذي تأخير ملحوظ. كان التوسع يحتاج إلى تفاوض، وكان المستقبل الذي لا يدعمه يستطيع البقاء على الأساس المشترك. لذلك لا ينبغي إسقاط التوسع اللاحق على أول نقل جرى عام 1981.
يسجل الخط الزمني للمشروع إنشاء موقع FTP وقائمة Info-Kermit البريدية على ARPANET في 1984. ساعدت الشبكة على توزيع البرنامج ومناقشته، لكن حاجته الأصلية بقيت ملموسة: مستخدم يريد نقل ملف من حاسوب إلى آخر. لم يكن Kermit معياراً للإنترنت ولم يحل محل بروتوكولات الشبكة. بل أدى مهمة في طبقة أخرى: جعل نقل الملفات ممكناً بين أنظمة تتصل بخط تسلسلي، ثم عبر خدمات الشبكات لاحقاً.
توضح هذه القصة أن الاتصال ليس هو قابلية التشغيل البيني. يستطيع الحامل ربط طرفيتين من دون جعل ملفاتهما متوافقة؛ ويمكن لفحص الحزمة اكتشاف بعض التلف من دون توثيق هوية المرسل؛ وقد تتيح مواصفة مشتركة التبادل من دون ضمان تبني كل تنفيذ لكل خيار. جعل Kermit هذه الفواصل حواراً صريحاً قابلاً للتنفيذ.
المصادر
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
