إن كيرسيس (ncurses) (ال كيرسيس الجديد) مكتبة البرمجة توفر واجهة برمجة التطبيقات (API) التي تسمح للمبرمج بكتابة النص القائم على واجهات المستخدم بأسلوب المنصة المستقلة. هو مجموعة أدوات تطوير "مثل - واجهة المستخدم الرسومية " التي يتم تشغيلها تحت محطة المحاكي. كما تٌحَسّن تغييرات الشاشة، من أجل الحد من الكمون (أو وقت الاستجابة أثناء التجربة) ذوي الخبرة عند استخدام غلاف التحكم عن بعد.
نوع | |
---|---|
نظام التشغيل | |
موقع الويب |
(الإنجليزية) invisible-island.net/ncurses |
المطورون |
Thomas E. Dickey |
---|---|
لغة البرمجة | |
الإصدار الأول |
1993 |
المستودع | |
الرخصة |
X11 license [1] |
|
التاريخ
النسخة الجديدة، ncurses هو برنامج مجاني يضاهي نظام V الإصدار 4.0 SVr4) curses) ، الذي كان في حد ذاته تحسنا على الإصدار المتوقف 4.4 BSD curses. معيارXSI Curses القياسي الصادر عن X/Open بصراحة وعن كثب هو معدل على غرار النظام الخامس.
curses
أول مكتبة لل curses تم تطويرها في جامعة كاليفورنيا في بيركلي، لنظام التشغيل BSD حوالي عام 1980 لدعم ألعاب ذات التوجه لاستخدام الشاشات. إنها في الأصل تستخدم مكتبة termcap التي تم استخدامها في برامج أخرى، مثل المحرر السادس vi-editor.[2]
نجاح مكتبة BSD curses دفعت مختبرات بيل لللإفراج عن مكتبة معززة لل curses في نظام V الإصدار 2 Unix systems. هذه المكتبة كانت أكثر قوة وبدلا من استخدام termcap ، تم استخدام terminfo. ولكن نظرالسياسات AT&T المتعلقة بتوزيع مصادر الكود، الذي يحسن مكتبة ال curses , لم يكن لديها الكثير من القبول في مجتمع ال BSD .
pcurses
حوالي عام 1982 ، بافل كورتيس بدأ العمل على مستنسخ مجاني من ال curses, في مختبرات بيل اسمه pcurses, التي كانت محتفظًا بها لدى العديد من الناس خلال عام 1986.[3]
ncurses
مكتبة pcurses تمت الاستفاضة في تحسينها عندما تولى زياد بن حليم جهود التنمية في أواخر عام 1991.[4] تم اصدار المكتبة الجديدة كما curses في تشرين الثاني / نوفمبر 1993 ، مع النسخة 1.8.1 كأول إصدار رئيسي. كعملٍ لاحق، من خلال إصدار 1.8.8 ( M1995) ، كان مدفوعا من خلال ايريك رايموند Eric S. Raymond, الذي أضاف مكتبات الصيغة والقوائم (the form and menu libraries) التي كتبها يورجن فايفر.[5] منذ عام 1996 ، تم إيكال مهمة صيانتها لتوماس ديكي Thomas E. ديكي.
معظم استدعاءات مكتبة curses يمكن أن يتم تطويعها بسهولة لمجارات curses القديمة. تطبيقات نظام curses الخامس يمكن أن تدعم برامج BSD curses مع قليل من إعادة تجميع أو recompilation.[6] ومع ذلك، فإن بعض اللإشكاليات في بعض المساحات، مثل التعامل مع تغيير حجم المنصات أو terminal resizing، حيث لا يوجد له نظير في ال curses القديم.
Terminal database
يمكن استخدام curses إما مع terminfo (مع البيانات القابلة للتمدد) أو termcap. تطبيقات أخرى يمكن ل curses التعامل معها باستخدام terminfo ؛ أقلية تستخدم termcap. القليل من (mytinfo) كانت استثناءات قديمة.[7]
الترخيص License
curses هو جزء من مشروع جنو أو GNU Project. وهي واحدة من عدد قليل من ملفات ال GNU غير موزعة تحت رخصة GNU GPL أو LGPL; يتم توزيعه تحت مُستَهَل البرمجيات الحرة الترخيص أو رخصة البرمجيات المجانية، على غرار رخصة MIT.[8] هذا ويرجع إلى الاتفاق مع مؤسسة البرمجيات الحرة في وقت تعيين المطورين لحقوق التأليف والنشر.
عندما تم الاتفاق لتمرير الحقوق ل FSF ، هناك بند ينص على ذلك قائلا:
تعد المؤسسة بأن كل توزيع للحزمة، أو أي عمل "بناء على الحزمة" ، الذي يقام تحت سيطرة المؤسسة أو وكلائها أو الأشخاص الذين يحال إليهم الأمر، يجب أن يكون بشروط صريحة على الدوام للسماح لأي شخص يحوز نسخة من العمل التي تتطابق الشروط ويمتلك إشعار دقيق من هذه الشروط، بأن يقوم بتوزيع نسخ من العمل إلى أي شخص على نفس الشروط.
وفقا للمعيل Thomas E. ديكي، وهذا يحول دون إعادة الترخيص إلى الترخيص في أي إصدار، لأن من شأنه أن يضع قيودا على البرامج التي سوف تكون قادرة على ربط المكتبات.
برامج باستخدام ncurses
هناك المئات من البرامج التي تستخدم ncurses.[9][10] البعض، مثل 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
مراجع
- دليل البرمجيات الحرة: https://directory.fsf.org/wiki/ncurses — تاريخ الاطلاع: 16 فبراير 2020
- Eric S. Raymond (September 1995). "ncurses: Portable Screen-Handling for Linux". Linux Journal. مؤرشف من الأصل في 20 مارس 2018.
- Thomas E. Dickey (December 1996). "NCURSES - New Curses". مؤرشف من الأصل في 8 مايو 2019.
- 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 على موقع واي باك مشين.
- NCURSES - Frequently Asked Questions (FAQ): Who wrote NCURSES? - تصفح: نسخة محفوظة 21 أغسطس 2018 على موقع واي باك مشين.
- A Hacker's Guide to Ncurses Internals - تصفح: نسخة محفوظة 21 مارس 2018 على موقع واي باك مشين.
- Sydney S. Weinstein (April 1993). "On the Networks". C/C++ Users Journal. مؤرشف من الأصل في 11 أغسطس 2014.
- NCURSES - Frequently Asked Questions (FAQ): Is it GPL'd? - تصفح: نسخة محفوظة 21 أغسطس 2018 على موقع واي باك مشين.
- "Search results: +ncurses on freshmeat.net". مؤرشف من الأصل في 18 فبراير 201210 مايو 2013.
- "Projects tagged 'ncurses". ohloh. مؤرشف من الأصل في 10 ديسمبر 2019.