واجهة مستخدم نصية

بعض برامج إدارة الملفات تستخدم واجهة مستخدم نصية ( هنا: Midnight Commander )
Vim هو محرر نصوص TUI واسع الانتشار.

في مجال الحوسبة ، تُعدّ واجهات المستخدم النصية ( TUI ) (أو واجهات المستخدم الطرفية ، للدلالة على اعتمادها على خصائص أجهزة الحاسوب الطرفية وليس على النصوص فقط) مصطلحًا قديمًا يصف نوعًا من واجهات المستخدم (UI) كان شائعًا كشكل مبكر من أشكال التفاعل بين الإنسان والحاسوب ، قبل ظهور شاشات العرض النقطية وواجهات المستخدم الرسومية التقليدية الحديثة (GUI). ومثل واجهات المستخدم الرسومية الحديثة، يمكنها استخدام كامل مساحة الشاشة ، وقد تقبل إدخالات الفأرة وغيرها. كما يمكنها استخدام الألوان، وغالبًا ما تُهيكل العرض باستخدام رموز رسم المربعات مثل ┌ و╣. أما سياق استخدامها الحديث فهو عادةً محاكي الطرفية .

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

في السنوات الأولى للحوسبة، كانت محطات النصوص عادةً عبارة عن أجهزة لوحة مفاتيح/طابعة. أما الآن، فقد أصبحت أجهزة لوحة المفاتيح/الشاشة هي السائدة.

يمكن أن تنتمي شاشة النصوص (والاتصالات معها) إلى أحد الأنواع الثلاثة (مرتبة هنا حسب تناقص إمكانية الوصول):

  1. شاشة عرض نصية محلية ، يتم التحكم بها بواسطة محول فيديو أو المعالج المركزي نفسه. هذا وضع طبيعي لتطبيق يعمل محليًا على أنواع مختلفة من أجهزة الكمبيوتر الشخصية والأجهزة المحمولة . إذا لم يمنع نظام التشغيل ذلك ، فقد يستغل برنامج ذكي كامل إمكانيات وضع النص المادي.
  2. محاكي وضع النص . من أمثلته TN3270 ، وxterm لنظام X Window ، ووحدة تحكم win32 (في وضع النافذة) لنظام التشغيل Microsoft Windows . يدعم هذا عادةً البرامج التي تتطلب عرضًا حقيقيًا لوضع النص، ولكنه قد يعمل ببطء شديد. من شبه المؤكد أن بعض وظائف وضع النص المتقدم، مثل تحميل الخطوط الخاصة ، ستصبح غير متاحة.
  3. محطة طرفية نصية عن بُعد . عادةً ما تقتصر إمكانيات الاتصال على خط تسلسلي أو محاكاته، وربما مع عدد قليل من أوامر ioctl كقناة خارج النطاق في حالات مثل Telnet و Secure Shell . هذه هي أسوأ الحالات، لأن قيود البرامج تعيق استخدام إمكانيات جهاز العرض عن بُعد.

من وجهة نظر تطبيق النصوص ، يتم تحديد نوع العرض بواسطة واجهة برمجة التطبيقات (API)، على سبيل المثال، curses و TPUT .

في أنظمة لينكس وغيرها من الأنظمة الشبيهة بيونكس ، يتكيف البرنامج بسهولة مع أي من الحالات الثلاث لأن نفس الواجهة (أي التدفقات القياسية ) تتحكم في الشاشة ولوحة المفاتيح. انظر أدناه للمقارنة مع نظام ويندوز.

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

محطات طرفية متوافقة مع معيار ANSI

يُحدد معيار المعهد الوطني الأمريكي للمعايير (ANSI) ANSI X3.64 مجموعة قياسية من تسلسلات الهروب التي يمكن استخدامها لتشغيل المحطات الطرفية لإنشاء واجهات المستخدم النصية (انظر رمز الهروب ANSI ). قد تدعم تسلسلات الهروب الحالات الثلاث المذكورة أعلاه، مما يسمح بتحريك المؤشر وتغيير الألوان بحرية. مع ذلك، لا تتبع جميع المحطات الطرفية هذا المعيار، وتوجد العديد من التسلسلات غير المتوافقة ولكنها مكافئة وظيفيًا.

نظام التشغيل MS-DOS ونظام التشغيل ويندوز

واجهة مستخدم FreeDOS Edit

في أجهزة الكمبيوتر المتوافقة مع IBM PC ، يوفر نظام الإدخال والإخراج الأساسي ( BIOS ) واستدعاءات نظام MS-DOS طريقةً لكتابة النصوص على الشاشة، وكان بإمكان برنامج تشغيل ANSI.SYS معالجة تسلسلات الهروب القياسية ANSI. مع ذلك، سرعان ما أدرك المبرمجون أن كتابة البيانات مباشرةً إلى مخزن الشاشة المؤقت أسرع وأسهل في البرمجة، وأقل عرضةً للأخطاء؛ راجع وضع النص المتوافق مع VGA لمزيد من التفاصيل. وقد أدى هذا التغيير في أساليب البرمجة إلى ظهور العديد من برامج واجهة المستخدم النصية (TUI) لنظام DOS.تشتهر بيئة سطر الأوامر في ويندوز بمحاكاتها لبعض ميزات وضع النص EGA/VGA، وخاصة الوصول العشوائي إلى مخزن النص، حتى لو كان التطبيق يعمل في نافذة. من ناحية أخرى، تتمتع البرامج التي تعمل تحت ويندوز (سواءً كانت تطبيقات أصلية أو تطبيقات DOS) بتحكم أقل بكثير في الشاشة ولوحة المفاتيح مقارنةً ببرامج لينكس وDOS، وذلك بسبب طبقة سطر الأوامر في ويندوز المذكورة آنفًا.

مؤشر الماوس في برنامج Impulse Tracker . تم تحقيق مؤشر أكثر دقة (دقة لكل بكسل) عن طريق إعادة توليد رموز الأحرف المستخدمة حيث كان المؤشر مرئيًا، عند كل حركة للماوس في الوقت الفعلي.

في أغلب الأحيان، كانت هذه البرامج تستخدم خلفية زرقاء للشاشة الرئيسية، مع أحرف بيضاء أو صفراء، مع إمكانية تخصيص الألوان من قِبل المستخدم. وكثيراً ما كانت تستخدم أحرفاً مربعة الشكل وفقاً لصفحة رموز IBM رقم 437. لاحقاً، تأثرت واجهة المستخدم بشكل كبير بواجهات المستخدم الرسومية (GUI)، حيث أُضيفت إليها قوائم منسدلة ، ونوافذ متداخلة ، ومربعات حوار ، وعناصر واجهة مستخدم رسومية يتم التحكم بها عبر اختصارات لوحة المفاتيح . وسرعان ما أُضيفت إمكانية إدخال البيانات باستخدام الفأرة ، إما بدقة عرض نصية على شكل مربع ملون بسيط، أو بدقة عرض رسومية بفضل قدرة محولات العرض EGA و VGA على إعادة تعريف أشكال الأحرف النصية بواسطة البرمجيات ، مما وفر وظائف إضافية.  

من أبرز البرامج من هذا النوع: مايكروسوفت وورد ، وDOS Shell ، و WordPerfect ، و Norton Commander ، وBorland Turbo Pascal و Turbo C (التي تضمنت مكتبة conio ) المبنية على Turbo Vision ، و Lotus 1-2-3، وغيرها الكثير. وقد استمرت بعض هذه الواجهات حتى خلال فترة نظام التشغيل مايكروسوفت ويندوز 3.1x في أوائل التسعينيات. فعلى سبيل المثال، لا يزال مُصرّف مايكروسوفت C 6.0، المستخدم لكتابة برامج بواجهة رسومية حقيقية على نظام ويندوز 16 بت ، يحتفظ بواجهة نصية خاصة به.

منذ بدايتها، تضمنت مايكروسوفت ويندوز وحدة تحكم لعرض برامج DOS. أضافت الإصدارات اللاحقة وحدة تحكم ويندوز كواجهة أصلية لبرامج سطر الأوامر وبرامج واجهة المستخدم النصية. عادةً ما تُفتح وحدة التحكم في وضع النافذة، ولكن يمكن التبديل إلى وضع ملء الشاشة (وضع النص الحقيقي) والعكس بالضغط على مفتاحي Alt و Enter معًا. وضع ملء الشاشة غير متوفر في ويندوز فيستا والإصدارات الأحدث، ولكن يمكن استخدامه مع بعض الحلول البديلة. [ 1 ]

Windows Terminal هو برنامج محاكاة طرفية متعدد علامات التبويب قامت مايكروسوفت بتطويره لنظام التشغيل Windows 10 والإصدارات الأحدث [ 2 ] كبديل لـ Windows Console .

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

أنظمة شبيهة بنظام يونكس

XFdrake، واجهة نصية تُستخدم في نظام ماندريفا لينكس لتكوين النظام الرسومي
btop، أداة لإدارة المهام لنظام Linux وأنظمة التشغيل الأخرى الشبيهة بنظام Unix

في أنظمة التشغيل الشبيهة بنظام يونكس ، غالبًا ما تُبنى واجهات المستخدم النصية باستخدام مكتبة التحكم الطرفية curses ، أو ncurses (مكتبة متوافقة إلى حد كبير)، أو مكتبة S-Lang البديلة . وقد أدى ظهور مكتبة curses مع نظام Berkeley Unix إلى توفير واجهة برمجة تطبيقات (API) محمولة ومستقرة لكتابة واجهات المستخدم النصية. وأدت القدرة على التواصل مع أنواع مختلفة من المحطات الطرفية النصية باستخدام نفس الواجهات إلى انتشار أوسع لبرامج يونكس "المرئية"، التي كانت تشغل شاشة المحطة الطرفية بالكامل بدلًا من استخدام واجهة سطرية بسيطة. ويمكن ملاحظة ذلك في محررات النصوص مثل vi ، وبرامج البريد الإلكتروني مثل pine أو mutt ، وأدوات إدارة النظام مثل SMIT و SAM و Sysinstall الخاص بنظام FreeBSD ، ومتصفحات الويب مثل lynx . وتستخدم بعض التطبيقات، مثل w3m ، والإصدارات القديمة من pine و vi ، مكتبة termcap الأقل كفاءة ، حيث تؤدي العديد من الوظائف المرتبطة بمكتبة curses داخل التطبيق. يمكن تطوير تطبيقات واجهة المستخدم النصية المخصصة القائمة على الأدوات بسهولة باستخدام برنامج الحوار (القائم على ncurses )، أو برنامج Whiptail (القائم على S-Lang ).

بالإضافة إلى ذلك، أدى ازدياد شعبية نظام لينكس إلى انتقال العديد من مستخدمي نظام DOS السابقين إلى منصة شبيهة بنظام يونكس، مما عزز تأثير DOS في العديد من واجهات المستخدم النصية. على سبيل المثال، تم تصميم برنامج minicom على غرار برنامج Telix الشهير لنظام DOS. كما تم نقل بعض برامج واجهات المستخدم النصية الأخرى، مثل برنامج Twin desktop، إلى نظام لينكس.

تدعم معظم أنظمة التشغيل الشبيهة بنظام يونكس (لينكس، فري بي إس دي، إلخ) وحدات تحكم افتراضية ، يتم الوصول إليها عادةً عبر اختصار لوحة المفاتيح Ctrl-Alt-F. على سبيل المثال، في نظام لينكس، يمكن الوصول إلى ما يصل إلى 64 وحدة تحكم (12 منها عبر مفاتيح الوظائف)، حيث تعرض كل منها نصها في وضع ملء الشاشة.

يُتيح برنامج GNU Screen المجاني إدارة جلسات متعددة داخل واجهة نصية واحدة، ولذا يُمكن اعتباره بمثابة مدير نوافذ لواجهات الوضع النصي وواجهات سطر الأوامر. كما يُمكن لبرنامج Tmux القيام بذلك أيضًا.

يتضمن محرر النصوص BBEdit الخاص بنظام macOS وظيفة ورقة عمل shell تعمل كنافذة shell بملء الشاشة. ويمكن لمحرر النصوص Emacs المجاني تشغيل shell داخل أحد مخازنه المؤقتة لتوفير وظائف مماثلة. يحتوي Emacs على عدة تطبيقات shell، ولكن واحدًا منها فقط مناسب لتشغيل برامج واجهة المستخدم النصية (TUI). أما أوضاع shell الشائعة الأخرى، فهي تحاكي سطر الأوامر فقط، وستظهر برامج TUI رسالة خطأ "Terminal غير مكتمل الوظائف" أو واجهة مشوشة. يحتوي محررا النصوص المجانيان Vim و Neovim على نوافذ طرفية (تحاكي xterm ). هذه الميزة مخصصة لتشغيل المهام، أو عمليات البناء المتوازية، أو الاختبارات، ولكن يمكن استخدامها أيضًا (مع تقسيم النوافذ وصفحات علامات التبويب) كمُضاعِف طرفي خفيف الوزن.ansi-termshelleshell

أوبن في إم إس

كان لدى نظام التشغيل VAX/VMS (الذي عُرف لاحقًا باسم OpenVMS ) ميزة مشابهة لـ curses تُعرف باسم ميزة إدارة الشاشة أو SMG. ويمكن استدعاء هذه الميزة من سطر الأوامر أو من البرامج التي تستخدم مكتبة SMG$. [ 3 ]

أوبرون

لقطة شاشة لسطح مكتب نظام أوبرون تُظهر صورة وعدة عارضات نصوص

يُعدّ نظام التشغيل أوبرون ، الذي صدر لأول مرة عام ١٩٨٨ ولا يزال قيد التطوير، نوعًا آخر من واجهات المستخدم النصية. على عكس معظم واجهات المستخدم النصية الأخرى، لا يستخدم أوبرون وحدة تحكم نصية أو طرفية، بل يتطلب شاشة عرض كبيرة ذات رسومات نقطية، حيث يكون النص هو الهدف الرئيسي لنقرات الفأرة. وكما هو الحال مع الروابط في النصوص التشعبية ، يكون للأمر تنسيق معين ويتم تفعيله بنقرة زر الفأرة الأوسط. يمكن تعديل أي نص معروض على الشاشة، وإذا تم تنسيقه باستخدام صيغة الأمر المطلوبة، يمكن النقر عليه بالزر الأوسط لتنفيذه. يمكن استخدام أي ملف نصي يحتوي على أوامر منسقة بشكل مناسب كنص أداة ، وبالتالي يعمل كقائمة قابلة للتخصيص من قِبل المستخدم. حتى مخرجات أمر سابق يمكن تعديلها واستخدامها كأمر جديد. يختلف هذا النهج اختلافًا جذريًا عن قوائم وحدة التحكم التقليدية الموجهة نحو الحوار أو واجهات سطر الأوامر، ولكنه يحمل بعض أوجه التشابه مع واجهة ورقة العمل في برنامج ماكنتوش بروجرامرز وركشوب .Module.Procedure parameters ~

بما أنه لا يستخدم عناصر واجهة رسومية ، بل نصًا عاديًا فقط، ولكنه يوفر وظائف مماثلة لواجهة المستخدم الرسومية مع مدير نوافذ متجانب ، يُشار إليه باسم واجهة المستخدم النصية (TUI). للاطلاع على مقدمة موجزة، انظر الفقرة الثانية في الصفحة الرابعة من التقرير الأول المنشور عن نظام أوبرون . [ 4 ]

أثرت واجهة المستخدم الخاصة بـ Oberon على تصميم محرر النصوص Acme وبرنامج البريد الإلكتروني لنظام التشغيل Plan 9 من Bell Labs .

الأنظمة المدمجة

نظام مضمن يعرض قائمة على شاشة LCD

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

عادة ما يتم التحكم في دوائر أو وحدات الفيديو باستخدام مجموعة أوامر متوافقة مع VT100 عبر UART ، وعادة ما تسمح تصميمات FPGA بالوصول المباشر إلى ذاكرة الفيديو.

استخدامات أخرى

انظر أيضاً

أمثلة على مكتبات البرمجة

مراجع

  1. عرض موجه الأوامر بملء الشاشة في نظام التشغيل ويندوز 7. Social.technet.microsoft.com. تاريخ الاطلاع: 15 يونيو 2013.
  2. وارن، توم (6 مايو 2019). "مايكروسوفت تكشف النقاب عن ويندوز تيرمينال، وهو تطبيق جديد لسطر الأوامر لنظام ويندوز" . ذا فيرج .
  3. "دليل إدارة شاشة OpenVMS RTL (SMG$)" . hpe.com . 2001. مؤرشف من الأصل بتاريخ 2020-12-04 . تم الاطلاع عليه بتاريخ 2021-01-01 .
  4. ^ ويرث، نيكلاوس ؛ جوتكنيشت، يورغ (1988). نظام أوبيرون (PDF) (التقرير الفني). ETH Eidgenössische Technische Hochschule زيورخ، معهد المعلوماتية. المجلد. 88. دوى : 10.3929/ethz-a-000487176 .