غطاء طرفي

مقارنة بين مكتبات واجهة المستخدم الطرفية ونظيراتها من واجهات المستخدم الرسومية .

Termcap ( اختصارًا لـ Terminal Ability ) هي مكتبة برمجية وقاعدة بيانات قديمة تُستخدم على أجهزة الكمبيوتر الشبيهة بنظام Unix، وتُمكّن البرامج من استخدام شاشات الكمبيوتر الطرفية بطريقة مستقلة عن الطرفية، مما يُسهّل بشكل كبير عملية كتابة تطبيقات نصية محمولة . [ 1 ] وقد تم استبدالها بقاعدة بيانات terminfo التي تستخدمها برامج مثل ncurses و tput وغيرها.

يمكن لقاعدة بيانات termcap وصف إمكانيات مئات من شاشات العرض المختلفة. وهذا يسمح للبرامج بعرض مخرجات نصية ، بغض النظر عن نوع شاشة العرض. تُعد محررات النصوص على الشاشة، مثل vi و Emacs، أمثلة على البرامج التي قد تستخدم termcap. تُدرج برامج أخرى ضمن فئة Termcap . عادةً ما كان الوصول إلى قاعدة بيانات termcap يتم عبر مكتبات منفصلة، ​​مثل GNU Termcap. [ 1 ]

أمثلة على ما تصفه قاعدة البيانات:

  • كم عدد الأعمدة التي يعرضها العرض
  • ما هي السلسلة النصية التي يجب إرسالها لتحريك المؤشر إلى موضع عشوائي (بما في ذلك كيفية ترميز أرقام الصف والعمود)
  • كيفية تمرير الشاشة لأعلى سطرًا واحدًا أو عدة أسطر
  • ما مقدار المساحة الفارغة المطلوبة لعملية التمرير هذه؟

تاريخ

كتب بيل جوي أول مكتبة termcap في عام 1978 [ 2 ] [ 3 ] لنظام التشغيل يونكس بيركلي ؛ ومنذ ذلك الحين تم نقلها إلى معظم بيئات يونكس والبيئات الشبيهة بيونكس، حتى نظام التشغيل OS-9 . [ 4 ] ويُقال إن تصميم جوي تأثر بتصميم مخزن بيانات الطرفية في نظام المشاركة الزمنية غير المتوافق السابق . [ 5 ]

نموذج البيانات

تتكون قواعد بيانات Termcap من وصف واحد أو أكثر للأجهزة الطرفية.

المؤشرات

يجب أن يتضمن كل وصف الاسم الرسمي للطرفية. وقد يتضمن أيضًا اسمًا بديلًا واحدًا أو أكثر. يُعد الاسم الرسمي أو الأسماء البديلة هي المفاتيح التي تستخدمها المكتبة للبحث في قاعدة بيانات termcap.

قيم البيانات

يحتوي الوصف على قدرة واحدة أو أكثر، ولكل منها اسم تقليدي. وتُصنّف هذه القدرات إلى أنواع: منطقية ، ورقمية، ونصية . لا تحتوي مكتبة termcap على نوع مُحدد مسبقًا لكل اسم قدرة، بل تُحدد أنواع كل قدرة من خلال الصيغة التالية:

  • تحتوي إمكانيات السلسلة النصية على علامة "=" بين اسم الإمكانية وقيمتها.
  • تحتوي القدرات الرقمية على علامة "#" بين اسم القدرة وقيمتها، و
  • لا توجد قيمة مرتبطة بالقدرات المنطقية (فهي تكون صحيحة دائمًا إذا تم تحديدها).

تتوقع التطبيقات التي تستخدم termcap أنواعًا محددة للقدرات الشائعة الاستخدام، وتحصل على قيم القدرات من قاعدة بيانات termcap باستخدام استدعاءات المكتبة التي تعود بنجاح فقط عندما تتطابق محتويات قاعدة البيانات مع النوع المفترض.

تَسَلسُل

يمكن إنشاء أوصاف Termcap عن طريق تضمين محتويات وصفٍ ما في وصفٍ آخر، أو حجب بعض الإمكانيات من الوصف المُضمّن، أو استبدال بعض الإمكانيات أو إضافتها. وبغض النظر عن نموذج التخزين المُستخدم، تقوم مكتبة termcap بإنشاء وصف الطرفية من الوصف المطلوب، مع تضمين بعض الإمكانيات أو حجبها أو استبدالها عند وقت الطلب.

نموذج التخزين

تُخزَّن بيانات Termcap كنص، مما يُسهِّل تعديلها. ويمكن لمكتبة Termcap استرجاع النص من الملفات أو متغيرات البيئة.

متغيرات البيئة

يحتوي متغير البيئة TERM على اسم نوع الجهاز الطرفي.

قد يحتوي متغير البيئة TERMCAP على قاعدة بيانات لخصائص الطرفية. ويُستخدم غالبًا لتخزين وصف واحد لخصائص الطرفية، يتم تعيينه بواسطة محاكي طرفية لتوفير خصائص الطرفية للصدفة والبرامج التابعة لها.

يتم دعم متغير البيئة TERMPATH بواسطة تطبيقات termcap الأحدث ويحدد مسار بحث لملفات termcap.

ملف مسطح

تسترجع النسخة الأصلية (والأكثر شيوعًا) من مكتبة termcap البيانات من ملف نصي عادي. قد يكون البحث في ملف termcap كبير، مثلاً بحجم 500 كيلوبايت، بطيئًا. ولتحسين الأداء، تُستخدم أداة مثل reorder لوضع الإدخالات الأكثر استخدامًا في بداية الملف.

قاعدة بيانات مجزأة

في تطبيقات نظام 4.4BSD، تُخزّن مكتبة termcap وصف الطرفية في قاعدة بيانات مُجزأة (مثل قاعدة بيانات Berkeley DB الإصدار 1.85). تُخزّن هذه القاعدة نوعين من السجلات: أسماء مستعارة تُشير إلى المدخل الأصلي، والمدخل الأصلي نفسه. يُخزّن نص مدخل termcap حرفيًا.

القيود والتوسعات

تم تصميم تطبيق termcap الأصلي بحيث يستخدم ذاكرة قليلة:

  • الاسم الأول يتكون من حرفين، ليناسب 16 بت.
  • أسماء القدرات تتكون من حرفين
  • تقتصر الأوصاف على 1023 حرفًا.
  • لا يمكن تضمين سوى مدخل واحد من مدخلات termcap مع تعريفاته، ويجب أن يكون في النهاية.

لا تتطلب التطبيقات الأحدث لواجهة termcap عمومًا الاسم المكون من حرفين في بداية الإدخال.

لا تزال أسماء القدرات تتكون من حرفين في جميع التطبيقات.

تستخدم دالة tgetent، المُستخدمة لقراءة وصف الطرفية، مخزنًا مؤقتًا يجب أن يكون حجمه كافيًا للبيانات، ويُفترض أن يكون 1024 حرفًا. قد تُخفف التطبيقات الأحدث لواجهة termcap هذا القيد بالسماح بمؤشر فارغ بدلًا من المخزن المؤقت الثابت، [ 1 ] أو بإخفاء البيانات التي لا تتسع، على سبيل المثال، عبر خاصية ZZ في مكتبة termcap لنظام NetBSD . [ 6 ] كما تُحاكي واجهة مكتبة terminfo واجهة termcap، ولا تستخدم فعليًا المخزن المؤقت ذي الحجم الثابت .

تتيح محاكاة مكتبة terminfo لمكتبة termcap إمكانية تضمين عدة مدخلات أخرى دون تقييد موضعها. وقد توفر بعض التطبيقات الأحدث لمكتبة termcap هذه الإمكانية أيضًا، على الرغم من أنها غير موثقة بشكل كافٍ. [ 7 ]

الميزات القديمة

تم تعريف خاصية خاصة، هي خاصية "hz"، خصيصًا لدعم طرفية Hazeltine 1500 ، التي كانت تعاني من مشكلة استخدام رمز المد (~) في نظام ASCII كبادئ لتسلسل التحكم. [ 8 ] لدعم هذه الطرفية، لم يكن على الكود الذي يستخدم قاعدة البيانات معرفة استخدام رمز المد لبادئة تسلسلات تحكم معينة فحسب، بل كان عليه أيضًا معرفة استبدال أي رمز مد في النص المعروض برمز قابل للطباعة، لأن الطرفية كانت تفسر رمز المد في النص على أنه بداية تسلسل تحكم، مما يؤدي إلى فقدان النص وتشويه الشاشة. [ 9 ] بالإضافة إلى ذلك، كانت علامات السمات (مثل بداية ونهاية التسطير) تشغل مساحة على الشاشة. غالبًا ما أشارت التعليقات في شفرة مصدر قاعدة البيانات إلى هذه المشكلة باسم "تلف دماغ Hazeltine". [ 10 ] نظرًا لأن Hazeltine 1500 كانت طرفية شائعة الاستخدام في أواخر السبعينيات، كان من المهم أن تتمكن التطبيقات من التعامل مع قيودها.

انظر أيضاً

مراجع

  1. 1 2 3 مكتبة GNU Termcap
  2. بيتر هـ. سالوس، "إن تاريخ يونكس يتعلق بالتعاون بقدر ما يتعلق بالتكنولوجيا"، بايت، أكتوبر 1994.
  3. كينيث سي آر سي أرنولد وإيلان أمير، "تحديث الشاشة وتحسين حركة المؤشر: حزمة مكتبة"
  4. جويل ماثيو هيغبيرغ (نوفمبر 1994). "معالجة Termcap، الجزء الأول" . إجابات OS-9/OSK! تم الاطلاع عليه بتاريخ 26 أبريل 2021 .
  5. مارك كريسبين (7 أكتوبر 1998). "رد: أوامر وحدة تحكم KL" . مجموعة الأخبار : alt.sys.pdp10 . 
  6. تنسيق ملف termcap لنظام NetBSD
  7. مناقشة الحد الأقصى في السادس
  8. دليل تنسيقات ملفات BSDtermcap(5)  
  9. ستالمان، ريتشارد م. (1992). "مكتبة وقاعدة بيانات Termcap، الطبعة الثانية" . Gnu.org . تم الاطلاع عليه بتاريخ 17 مايو 2014 .
  10. "termcap.src" . شركة أبل للكمبيوتر . تم الاطلاع عليه بتاريخ 17 مايو 2014 .