معلومات المصطلحات

Terminfo هي مكتبة وقاعدة بيانات تُمكّن البرامج من استخدام شاشات العرض الطرفية بطريقة مستقلة عن الجهاز. قامت ماري آن هورتون بتطوير أول مكتبة terminfo في الفترة 1981-1982 كتحسين لمكتبة termcap . [ 1 ] تشمل التحسينات ما يلي:

  • الوصول بشكل أسرع إلى أوصاف المحطات الطرفية المخزنة،
  • أسماء أطول وأكثر وضوحًا لإمكانيات الجهاز الطرفي و
  • تقييم التعبيرات العامة للسلاسل النصية المرسلة إلى الجهاز الطرفي.

أُدرج برنامج Terminfo مع الإصدار الثاني من نظام UNIX System V ، وسرعان ما أصبح الشكل المُفضّل لوصف المحطات الطرفية في System V، بدلاً من termcap (الذي استمر نظام BSD في استخدامه). [ 2 ] وقد حُوذِف هذا البرنامج في pcurses بين عامي 1982 و1984 بواسطة بافيل كورتيس ، وكان متاحًا في تطبيقات UNIX الأخرى ، مع تعديل أو دمج إصلاحات من ماري هورتون. [ 3 ] لمزيد من المعلومات، يُرجى الرجوع إلى المنشور في comp.sources.unixمجموعة الأخبار من ديسمبر 1986. [ 4 ]

يمكن لقاعدة بيانات terminfo وصف إمكانيات مئات من شاشات العرض المختلفة. وهذا يسمح للبرامج الخارجية بالحصول على مخرجات عرض نصية ، بغض النظر عن نوع شاشة العرض.

بعض التكوينات هي:

  • عدد الأسطر على الشاشة
  • وضع أحادي اللون؛ كتم اللون
  • استخدم جرسًا مرئيًا بدلاً من صوت التنبيه

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

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

المؤشرات

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

قيم البيانات

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

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

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

على غرار مكتبة termcap ، تمثل بعض إمكانيات معالجة السلاسل النصية تسلسلات هروب يمكن إرسالها إلى النظام المضيف بالضغط على مفاتيح خاصة في لوحة المفاتيح. بينما تمثل إمكانيات أخرى سلاسل نصية يمكن للتطبيق إرسالها إلى الطرفية. في الحالة الأخيرة، تعمل مكتبة terminfo (كما تفعل مكتبة termcap) على استبدال معلمات التطبيق في السلسلة النصية المُرسلة. توفر هذه الدوال محلل تعبيرات قائم على المكدس ، يُستخدم بشكل أساسي للمساعدة في تقليل عدد الأحرف المُرسلة لتسلسلات التحكم التي تحتوي على معلمات اختيارية مثل SGR (تحديد العرض الرسومي) . في المقابل، توفر مكتبات termcap مجموعة محدودة من العمليات المفيدة لمعظم الطرفيات.

تَسَلسُل

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

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

تُخزَّن بيانات Terminfo كملف ثنائي ، مما يجعل تعديلها أقل سهولة من تعديل بيانات termcap . يمكن لمكتبة terminfo استرجاع البيانات من الملفات التي تُخزَّن فيها. تُنظَّم البيانات نفسها في جداول خاصة بقدرات الإدخال المنطقي والرقمي والنصي، على التوالي. هذا هو المخطط الذي وضعته ماري هورتون، ويُستخدم في معظم تطبيقات terminfo، باستثناء بعض الاختلافات المتعلقة بالأسماء المتاحة. [ 5 ] لا يُحدِّد X/Open تنسيق وصف الطرفية المُجمَّع. في الواقع، لا يذكر حتى أدوات tic أو infocmp الشائعة . [ 6 ] [ 7 ] نظرًا لأن إدخالات terminfo المُجمَّعة لا تحتوي على بيانات وصفية تُحدِّد الفهارس داخل الجداول التي تُخصَّص لها كل قدرة، فإنها ليست بالضرورة متوافقة بين التطبيقات. مع ذلك، بما أن معظم التطبيقات تستخدم نفس بنية الجدول العامة (بما في ذلك أحجام عناصر الرأس والبيانات)، فمن الممكن إنشاء مكتبات terminfo مُخصَّصة تلقائيًا لقراءة البيانات لتطبيق مُعيَّن. على سبيل المثال، يمكن إنشاء ncurses لمطابقة بيانات terminfo للعديد من التطبيقات الأخرى. [ 8 ]

شجرة الدليل

تسترجع النسخة الأصلية (والأكثر شيوعًا) من مكتبة terminfo البيانات من تسلسل هرمي للمجلدات . وباستخدام الحرف الأول من اسم وصف الطرفية كأحد مكونات مسار الملف، واسم وصف الطرفية كاسم للملف المراد استرجاعه، تتفوق مكتبة terminfo عادةً على البحث في ملف termcap كبير.

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

تقوم بعض تطبيقات terminfo بتخزين وصف الجهاز الطرفي في قاعدة بيانات مُجزأة (مثل Berkeley DB الإصدار 1.85). [ 9 ] [ 10 ] وتخزن هذه التطبيقات نوعين من السجلات: أسماء مستعارة تشير إلى المدخل الأساسي، والمدخل الأساسي نفسه الذي يحتوي على بيانات إمكانيات الجهاز الطرفي.

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

توثق مجموعة Open Group حدود بيانات terminfo (القيم الدنيا المضمونة)، والتي تنطبق فقط على ملف المصدر. [ 11 ] [ 12 ] اثنان من هذه الحدود لهما أهمية خاصة:

  • الحد الأقصى لعدد الأحرف في أسماء المحطات الطرفية هو 14 حرفًا
  • الحد الأقصى للكميات العددية هو 32,767

يُعالج حدّ الـ 14 حرفًا أنظمة الملفات القديمة جدًا التي لا يمكنها تمثيل أسماء الملفات بأكثر من ذلك. ورغم أن هذه الأنظمة أصبحت قديمة عمومًا، إلا أن هذه الحدود كانت موثقة منذ أواخر ثمانينيات القرن الماضي، ولم تُراجع منذ ذلك الحين.

يُحدد الحد الأقصى البالغ 32,767 للقيم الموجبة في قيمة 16 بت بنظام المتمم الثنائي المُوقّع . قد يستخدم إدخال terminfo أرقامًا سالبة لتمثيل القيم الملغاة أو الغائبة.

على عكس termcap ، يمتلك terminfo تمثيلاً مصدرياً وتمثيلاً مُجمّعاً. لم تُحدد حدود التمثيل المُجمّع، إلا أن معظم التطبيقات تُشير في وثائقها الخاصة بـ tic (مُجمّع معلومات الطرفية) إلى أن حجم الإدخالات المُجمّعة لا يمكن أن يتجاوز 4096 بايت.

انظر أيضاً

مراجع

  1. هورتون، مارك. "حزمة اللعنات الجديدة ومعلومات المصطلحات". وقائع مؤتمر USENIX . صيف 1982. بوسطن، ماساتشوستس: USENIX: 79-91 .
  2. " تعليقات قائمة البريد fa.info-terms على termcap/terminfo في عام 1985" .
  3. " ملف مشاركة pcurses من عام 1986 يعرض سجل التغييرات" . مؤرشف من الأصل بتاريخ 27-09-2007.
  4. " إكمال نشر اللعنات " .
  5. توماس إي. ديكي (17 ديسمبر 2006). "term - تنسيق ملف المصطلحات المُجمَّع" .
  6. "X/Open Curses, Issue 4 Version 2 Reference Pages" . The Open Group. 1997.
  7. "الأوامر والأدوات المساعدة، الإصدار 5 - صفحات المراجع" . مجموعة أوبن. 1997.
  8. توماس إي. ديكي (12 أكتوبر 2002). "إعلان ncurses 5.3" .
  9. تود سي. ميلر (1999). "وحدة OpenBSD read_bsd_terminfo.c" .
  10. توماس إي. ديكي (17 ديسمبر 2006). "إعلان ncurses 5.6" .
  11. تم إنجاز معظم هذا قبل اندماج X/Open مع مؤسسة البرمجيات المفتوحة لتشكيل مجموعة البرمجيات المفتوحة ، وبالتالي هناك العديد من المصادر التي تقول X/Open .
  12. "تنسيق مصدر Terminfo (اللعنات المحسنة) - الحدود الدنيا المضمونة" . مجموعة Open Group. 1997.