يرجى مراجعة هذه المقالة وإزالة وسم المقالات غير المراجعة، ووسمها بوسوم الصيانة المناسبة.

إن كيرسيس Ncurses

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
إن كيرسيس Ncurses
Linux-menuconfig.png
معلومات عامة
نوع
نظام التشغيل
النموذج المصدري
المطورون
موقع الويب
invisible-island.net…[1] (الإنجليزية) عدل القيمة على Wikidata
معلومات تقنية
لغة البرمجة
الإصدار الأول
الإصدار الأخير
المستودع
الرخصة
التسلسل
curses (en) ترجم عدل القيمة على Wikidata

إن كيرسيس (ncurses) (ال كيرسيس الجديد)  مكتبة البرمجة توفر واجهة برمجة التطبيقات (API) التي تسمح للمبرمج بكتابة النص القائم على واجهات المستخدم بأسلوب المنصة المستقلة. هو مجموعة أدوات تطوير «مثل - واجهة المستخدم الرسومية» التي يتم تشغيلها تحت محطة المحاكي. كما تٌحَسّن تغييرات الشاشة، من أجل الحد من الكمون (أو وقت الاستجابة أثناء التجربة) ذوي الخبرة عند استخدام غلاف التحكم عن بعد.

التاريخ[عدل]

النسخة الجديدة، ncurses هو برنامج مجاني يضاهي نظام V الإصدار 4.0  SVr4) curses)، الذي كان في حد ذاته تحسنا على الإصدار المتوقف 4.4 BSD curses. معيارXSI Curses القياسي الصادر عن X/Open بصراحة وعن كثب هو معدل على غرار النظام الخامس.

curses[عدل]

أول مكتبة لل curses تم تطويرها في جامعة كاليفورنيا في بيركلي، لنظام التشغيل BSD  حوالي عام 1980 لدعم ألعاب ذات التوجه لاستخدام الشاشات. إنها في الأصل تستخدم مكتبة termcap التي تم استخدامها في برامج أخرى، مثل المحرر السادس vi-editor.[8]

نجاح مكتبة BSD curses دفعت مختبرات بيل لللإفراج عن مكتبة معززة لل curses في نظام V الإصدار 2 Unix systems. هذه المكتبة كانت أكثر قوة وبدلا من استخدام termcap ،  تم استخدام terminfo. ولكن نظرالسياسات AT&T المتعلقة بتوزيع مصادر الكود، الذي يحسن مكتبة ال curses , لم يكن لديها الكثير من القبول في مجتمع ال BSD .

pcurses[عدل]

حوالي عام 1982، بافل كورتيس بدأ العمل على مستنسخ مجاني من ال curses, في مختبرات بيل اسمه pcurses, التي كانت محتفظًا بها لدى العديد من الناس خلال عام 1986.[9]

ncurses[عدل]

مكتبة pcurses تمت الاستفاضة في تحسينها عندما تولى  زياد بن حليم جهود التنمية في أواخر عام 1991.[10] تم إصدار المكتبة الجديدة كما curses  في تشرين الثاني / نوفمبر 1993، مع النسخة 1.8.1 كأول إصدار رئيسي. كعملٍ لاحق، من خلال إصدار 1.8.8 (M1995)، كان مدفوعا من خلال ايريك رايموند Eric S. Raymond, الذي أضاف مكتبات الصيغة والقوائم (the form and menu libraries) التي كتبها يورجن فايفر.[11] منذ عام 1996، تم إيكال مهمة صيانتها لتوماس ديكي Thomas E. ديكي.

معظم استدعاءات مكتبة curses يمكن أن يتم تطويعها بسهولة لمجارات curses القديمة. تطبيقات نظام curses الخامس يمكن أن تدعم برامج BSD curses مع قليل من إعادة تجميع أو recompilation.[12] ومع ذلك، فإن بعض اللإشكاليات في بعض المساحات، مثل التعامل مع تغيير حجم المنصات أو terminal resizing، حيث لا يوجد له نظير في ال curses القديم.

Terminal database[عدل]

 يمكن استخدام curses إما مع terminfo (مع البيانات القابلة للتمدد) أو termcap. تطبيقات أخرى يمكن ل curses التعامل معها باستخدام terminfo ؛ أقلية تستخدم termcap. القليل من (mytinfo) كانت استثناءات قديمة.[13]

الترخيص License[عدل]

curses هو جزء من مشروع جنو أو GNU Project. وهي واحدة من عدد قليل من ملفات ال GNU غير موزعة تحت رخصة GNU GPL أو LGPL; يتم توزيعه تحت مُستَهَل البرمجيات الحرة الترخيص أو رخصة البرمجيات المجانية، على غرار رخصة MIT.[14] هذا ويرجع إلى الاتفاق مع مؤسسة البرمجيات الحرة في وقت تعيين المطورين لحقوق التأليف والنشر.

عندما تم الاتفاق لتمرير الحقوق ل FSF ، هناك بند ينص على ذلك قائلا:

تعد المؤسسة بأن كل توزيع للحزمة، أو أي عمل «بناء على الحزمة»، الذي يقام تحت سيطرة المؤسسة أو وكلائها أو الأشخاص الذين يحال إليهم الأمر، يجب أن يكون بشروط صريحة على الدوام للسماح لأي شخص يحوز نسخة من العمل التي تتطابق الشروط ويمتلك إشعار دقيق من هذه الشروط، بأن يقوم بتوزيع نسخ من العمل إلى أي شخص على نفس الشروط.

وفقا للمعيل Thomas E. ديكي، وهذا يحول دون إعادة الترخيص إلى الترخيص في أي إصدار، لأن من شأنه أن يضع قيودا على البرامج التي سوف تكون قادرة على ربط المكتبات.

برامج باستخدام ncurses[عدل]

هناك المئات من البرامج التي تستخدم ncurses.[15][16] البعض، مثل  GNU screen جنو الشاشة و w3m ، تستخدم فقط termcap واجهة أداء إدارة الشاشة داخل التطبيق. أخرى، مثل GNU Midnight Commander جنو قائد منتصف الليل وياست YaST تستخدم واجهة برمجة ال curses.

انظر أيضًا[عدل]

  • conio.h – A C header file used in MS-DOS compilers to create text user interfaces
  • Curses Development Kit
  • Dialog (software)
  • PDCurses
  • S-Lang (programming library)
  • SMG$ – The screen-management library available under OpenVMS

مراجع[عدل]

  1. أ ب ت ث ج مذكور في: دليل البرمجيات الحرة. دليل البرمجيات الحرة: ncurses. الوصول: 9 نوفمبر 2021.
  2. ^ وصلة مرجع: https://github.com/ThomasDickey/ncurses-snapshots/blob/master/COPYING.
  3. ^ مذكور في: جنو جويكس. دليل البرمجيات الحرة: ncurses. الوصول: 9 نوفمبر 2021.
  4. أ ب "Announcing ncurses 6.3"، اطلع عليه بتاريخ 7 نوفمبر 2021. {{استشهاد ويب}}: تحقق من التاريخ في: |access-date= (مساعدة)
  5. أ ب Thomas E. Dickey (8 نوفمبر 2021"ncurses 6.3" (باللغة الإنجليزية)، اطلع عليه بتاريخ 9 نوفمبر 2021. {{استشهاد ويب}}: تحقق من التاريخ في: |access-date= و|date= (مساعدة)صيانة CS1: أسماء متعددة: قائمة المؤلفون (link) صيانة CS1: لغة غير مدعومة (link)
  6. ^ وصلة مرجع: https://invisible-island.net/personal/git-exports.html.
  7. ^ مذكور في: دليل البرمجيات الحرة. دليل البرمجيات الحرة: ncurses. الوصول: 16 فبراير 2020.
  8. ^ Eric S. Raymond (سبتمبر 1995)، "ncurses: Portable Screen-Handling for Linux"، Linux Journal، مؤرشف من الأصل في 20 مارس 2018.
  9. ^ Thomas E. Dickey (ديسمبر 1996)، "NCURSES - New Curses"، مؤرشف من الأصل في 8 مايو 2019.
  10. ^ The README file in ncurses 1.8.1 states "v0.1 July 31, 1992" and "v1.8.1 November 5, 1993", which agrees with the NEWS (changelog) file نسخة محفوظة 13 يونيو 2017 على موقع واي باك مشين.
  11. ^ NCURSES - Frequently Asked Questions (FAQ): Who wrote NCURSES? نسخة محفوظة 21 أغسطس 2018 على موقع واي باك مشين.
  12. ^ A Hacker's Guide to Ncurses Internals نسخة محفوظة 21 مارس 2018 على موقع واي باك مشين.
  13. ^ Sydney S. Weinstein (أبريل 1993)، "On the Networks"، C/C++ Users Journal، مؤرشف من الأصل في 11 أغسطس 2014.
  14. ^ NCURSES - Frequently Asked Questions (FAQ): Is it GPL'd? نسخة محفوظة 21 أغسطس 2018 على موقع واي باك مشين.
  15. ^ "Search results: +ncurses on freshmeat.net"، مؤرشف من الأصل في 18 فبراير 2012، اطلع عليه بتاريخ 10 مايو 2013.
  16. ^ "Projects tagged 'ncurses'"، ohloh، مؤرشف من الأصل في 10 ديسمبر 2019.

روابط خارجية[عدل]