وحدة تحكم افتراضية

وحدة التحكم الافتراضية (بالإنجليزية:Virtual console) والمعروفة أيضاً بالـطرفية الافتراضية هي مفهوم يجمع لوحة المفاتيح و العرض لواجهة المستخدم في الحاسوب .  وهي ميزة في بعض أنظمة التشغيل مثل لينُكس، BSD و UnixWare حيث يمكن لوحدة تحكم النظام للحاسوب أن تُستخدم للتبديل بين وحدات تحكم افتراضية عديدة للوصول لواجهات المستخدم الغير مرتبطة. يعود تاريخ وحدات التحكم الافتراضية على الأقل إلى زينيكس في ثمانينات القرن الماضي.

عادة في نظام لينُكس (انظر وحدة تحكم لينكس) تُزوّد أول ست وحدات تحكم افتراضية طرفية نصية مع موجّه تسجيل الدخول لهيكل يونكس. يبدأ نظام نوافذ إكس الرسومي في وحدة التحكم السابعة. في لينكس، يبدّل المستخدم بين وحدات التحكم الافتراضية بواسطة مجموعة مفاتيح وهي Alt ومفتاح آخر _ على سبيل المثال Alt+F1_ للوصول لوحدة التحكم الافتراضية رقم 1. Alt+ السهم لليسار للانتقال لوحدة التحكم الافتراضية السابقة، و Alt+ السهم لليمين للانتقال للوحدة التالية. للانتقال من نظام نوافذ إكس : Ctrl+Alt+function key حيث functoin key هو مفتاح للمهمة يكون معيّن مسبقاً. (يمكن للمستخدمين إعادة تعيين مجموعة الأزرار الافتراضية هذه).

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

الواجهة 
يتم تقديم وحدات التحكم الافتراضية من قبل ملفات خاصة في الجهاز /dev/tty1 ، /dev/tty2 , إلخ. وهناك أيضاً /dev/console ، /dev/tty و /dev/tty0 . يمكن لوحدات التحكم الافتراضية أن يتم ضبطها في الملف /ect/inittab . ونظام نوافذ إكس يمكن ضبطه في /etc/inittab أو من خلال مدير عرض إكس. هناك العديد من توزيعات لينكس تستخدم systemd بدلاً من init، والتي تسمح أيضاً بضبط وحدات التحكم الافتراضية. تتضمن البرامج المستخدمة للوصول لوحدة التحكم الافتراضية :
 chvt لتبديل وحدة التحكم الحالية
 openvt لتشغيل برنامج ما على وحدة تحكم افتراضية جديدة
 deallocvt لإغلاق وحدة تحكم افتراضية حالية غير مستخدمة.
إن برنامج startx يقوم بتشغيل نظام نوافذ إكس على وحدة تحكم افتراضية جديدة. وهناك أيضاً برامج رسومية أخرى يمكن أن تبدأ من وحدة التحكم، مثل لينوكس تيفي و إم بلاير. 

يمكن للبرامج الوصول لوحدات التحكم الافتراضية من خلال الملفات الخاصة بالجهاز. في الوضع النصي، الكتابة على الملف تعرض النص على وحدة التحكم الافتراضية، والقراءة  من الملف تُعيد النص الذي كتبه المستخدم إلى وحدة التحكم الافتراضية. وكما في الطرفيات النصية الأخرى، هناك أيضاً حلقات خروج خاصة، محارف تحكم ووظائف termios (استدعاءات نظام) يمكن للبرنامج استخدامها، حيث أسهل طريقة هي عبر مكتبة مثل ncurses. ومن أجل العمليات الأكثر تعقيداً، يمكن للبرامج استخدام استدعاءات دخل وخرج للنظام خاصة لوحدة التحكم والطرفية. يمكن للبرامج الرسومية استخدام مكتبات مثل DirectFB ، DRI ، SDL أو SVGALib

أنظمة يونِكس 
محطات عمل يونكس ، مثل تلك المصنوعة من قبل شركة سَن أو سيليكون جرافيكس، لا تتضمن وحدات تحكم افتراضية. الهدف الوحيد من وحدة التحكم سيكون لإصلاح النظام وبحيث يمكن للبيئة الرسومية أن تعمل.

اقرأ أيضاً 
 وحدة تحكم النظام
 محاكي الطرفية

المراجع 
 كتاب FreeBSD ، الفصل 3.2 : Virtual Consoles and Terminals.

طرفيات الحاسوب
واجهات مستخدم