طرفي زائف

scriptأمر يونكس الذي يسجل مدخلات المستخدم لإعادة تشغيلها لاحقًافي بعض أنظمة التشغيل ، بما في ذلك الأنظمة الشبيهة بنظام يونكس ، يُعدّ الطرفية الزائفة ( pseudoterminal) أو الطرفية الزائفة (pseudotty ) أو PTY زوجًا من نقاط نهاية الأجهزة الزائفة (ملفات) التي تُنشئ قناة اتصال ثنائية الاتجاه وغير متزامنة ( IPC ) (بمنفذين) بين عمليتين أو أكثر. [ 1 ] [ 2 ] [ 3 ]
يُوفّر أحد الجهازين الوهميين في الزوج، وهو الجهاز الرئيسي ، وسيلةً يتحكّم بها برنامج محاكاة طرفية أو خادم تسجيل دخول عن بُعد (مثل خادم Telnet أو rlogin أو Secure Shell ) [ 3 ] في الجهاز التابع. أما الجهاز الوهمي الآخر، وهو الجهاز التابع ، فيُحاكي منفذًا تسلسليًا ماديًا [ 1 ] ، وتستخدمه البرامج الموجهة للطرفيات، مثل الصدف (مثل bash )، كعملية لقراءة/كتابة البيانات من/إلى نقطة نهاية الجهاز الرئيسي . [ 1 ] تُشبه PTYs الأنابيب ثنائية الاتجاه. [ 3 ] : 1388
Devpts هو نظام ملفات افتراضي لنواة لينكس يحتوي على أجهزة طرفية زائفة.
يعتمد تطبيق لينكس على محطات طرفية من نمط النظام الخامس (يشار إليها عادةً باسم محطات طرفية زائفة UNIX 98) [ 4 ] ويوفر POSIX وواجهة برمجة تطبيقات مواصفات يونكس الفردية في شكل دالة posix_openpt() منذ عام 1998. [ 5 ]
تاريخ
كانت المحطات الطرفية الوهمية موجودة في نظام مراقبة المشاركة الزمنية DEC PDP-6 منذ عام 1967 على الأقل، وكانت تُستخدم لتنفيذ المعالجة الدفعية. وقد وُصفت في وثائق نظام TOPS-10 اللاحق على جهاز PDP-10 . [ 6 ] كما احتوت بعض أنظمة التشغيل الأخرى من DEC على محطات طرفية وهمية، بما في ذلك RSTS/E لجهاز PDP-11 ، وكذلك نظام التشغيل TENEX التابع لجهة خارجية لجهاز PDP-10.
يعود تاريخ تطبيقات المحطات الطرفية الوهمية في نظام يونكس إلى التعديلات التي أدخلها راند وبي بي إن على الإصدار السادس في أواخر سبعينيات القرن الماضي لدعم الوصول عن بُعد عبر الشبكة. [ 7 ] ظهرت المحطات الطرفية الوهمية الحديثة في نظام يونكس عام 1983 أثناء تطوير الإصدار الثامن، واستندت إلى ميزة مماثلة في نظام تينكس. [ 8 ] كانت هذه المحطات جزءًا من نظام 4.3BSD-Renoopenpty() ، مع واجهة استخدام معقدة نوعًا ما . [ 9 ]
تضمن نظام AT&T System V دعمًا للمحطات الطرفية الوهمية كبرنامج تشغيل في نموذج جهاز STREAMS الخاص به ، إلى جانب مُضاعِف المحطات الطرفية الوهمية ( /dev/ptmx ). وقد تطور هذا لاحقًا ليصبح نمط PTYs الخاص بنظام Unix98.
تم توحيد المحطات الطرفية الزائفة بموجب مواصفات يونكس الموحدة (التي تتولى صيانتها مجموعة أوستن ) منذ عام 2004 (الإصدار 6). [ 10 ] بدءًا من الإصدار 8 (2024) [ 11 ] ، يتبنى الوصف لغة شاملة باستبدال كلمة " الرئيسي" بكلمة " المدير " وكلمة " التابع " بكلمة "الفرعي" (الخلل 1466 [ 12 ] ).
الكتب
يحتوي كتاب "واجهة برمجة لينكس" الصادر عام 2010 على فصل كامل (الفصل 64 "المحطات الطرفية الوهمية"، الصفحات 1375-1399) يشرح المحطات الطرفية الوهمية. وهناك فصل آخر، هو الفصل 62 "المحطات الطرفية"، مخصص للمحطات الطرفية.
تم توسيع وحدة تحكم ويندوز لتشمل واجهة PTY تسمى ConPTY في عام 2018. [ 13 ]
التطبيقات
يتمثل دور عملية محاكاة الطرفية فيما يلي:
- للتفاعل مع المستخدم،
- لتغذية مدخلات نصية إلى الجهاز الوهمي الرئيسي لاستخدامها بواسطة الصدفة (مثل باش)، المتصلة بالجهاز الوهمي التابع،
- لقراءة مخرجات النص من الجهاز الوهمي الرئيسي وعرضها للمستخدم.
يجب أن يتعامل برنامج محاكاة الطرفية أيضًا مع أوامر التحكم في الطرفية، مثل تغيير حجم الشاشة. ومن برامج محاكاة الطرفية الشائعة الاستخدام: xterm و GNOME Terminal و Konsole و Terminal .
تؤدي خوادم تسجيل الدخول عن بعد مثل خوادم Secure Shell و Telnet نفس الدور ولكنها تتواصل مع مستخدم بعيد بدلاً من مستخدم محلي.
تُستخدم أدوات Screen و Tmux لإضافة سياق جلسة إلى طرفية افتراضية، مما يوفر حلاً أكثر قوة وتعددًا في الاستخدام. على سبيل المثال، توفر كل منهما استمرارية الطرفية، مما يسمح للمستخدم بفصل الاتصال بجهاز كمبيوتر ثم الاتصال لاحقًا من جهاز كمبيوتر آخر.
المتغيرات
في نظام BSD/dev/tty[p-za-e][0-9a-f] PTY، يدعم ملف الجهاز التابع، الذي يحمل عادةً اسمًا على شكل ، جميع استدعاءات النظام المطبقة على أجهزة طرفية النصوص. وبالتالي، فهو يدعم جلسات تسجيل الدخول . أما ملف الجهاز الرئيسي، الذي يحمل عادةً اسمًا على شكل /dev/pty[p-za-e][0-9a-f]، فهو نقطة النهاية للتواصل مع محاكي الطرفية.
باستخدام نظام تسمية BSD [p-za-e]، يمكن أن يصل عدد أزواج tty إلى 256 زوجًا كحد أقصى. كما أن البحث عن أول طرفية افتراضية رئيسية متاحة قد يُسبب حالة تنافس ما لم يتم اعتماد آلية تأمين. لهذا السبب، أضافت بعض أنظمة تشغيل BSD، مثل FreeBSD و OpenBSD و DragonFly BSD ، بالإضافة إلى macOS المبني على BSD ، دعمًا لأطراف Unix98 الافتراضية، [ 14 ] [ 15 ] [ 16 ] [ 17 ] التي لا يحد نظام تسميتها من عدد الأطراف الافتراضية، ويتم الوصول إليها دون خطر حدوث حالات تنافس. يُعدّ "مُضاعِف الطرفية الافتراضية الرئيسية" (pseudo-terminal master multiplexer). يؤدي فتحه إلى إرجاع مُعرّف ملف لعقدة رئيسية، ويتسبب في إنشاء /dev/ptmxعقدة تابعة مرتبطة بها . [ 18 ]/dev/pts/N
انظر أيضاً
مراجع
- 1 2 3 "ملفات طرفية زائفة" . www.ibm.com . 2016-02-12 . تم الاطلاع عليه بتاريخ 2021-09-30 .
- ↑ "الفصل 64: المحطات الطرفية الزائفة - واجهة برمجة لينكس [ كتاب ] " . www.oreilly.com . تم الاطلاع عليه بتاريخ 30-09-2021 .
- 1 2 3 كيريسك، مايكل (2010). واجهة برمجة لينكس : دليل برمجة أنظمة لينكس ويونكس . سان فرانسيسكو: دار نشر نو ستارش. ISBN 978-1-59327-291-3. OCLC 728672600 .
- ↑ "pty(7) - صفحة دليل لينكس" . man7.org . تم الاطلاع عليه بتاريخ 30-09-2021 .
- ↑ – مرجع واجهات النظام، مواصفات يونكس الموحدة ، الإصدار 5 من مجموعة Open Group
- ↑ دليل مرجعي لمبرمجي شاشات المشاركة الزمنية PDP-10 (PDF) . القسم 5.10.
- ↑ "PTY Driver for SRI-NOSC Net UNIX" . الأسطر 15-31.
- ↑ ريتشي، د.م. " نظام إدخال وإخراج متدفق ". المجلة التقنية لمختبرات AT&T Bell . 63 (8): 1897-1910 . CiteSeerX 10.1.1.48.3730 . doi : 10.1002/j.1538-7305.1984.tb00071.x . S2CID 33497669 .
- ↑ – دليل وظائف مكتبة FreeBSD
- ↑ معيار IEEE 1003.1، إصدار 2004 .
- ↑ معيار IEEE 1003.1-2024
- ↑ "يجب إعادة تسمية الأجهزة الطرفية الزائفة" .
- ↑ "تقديم وحدة التحكم الوهمية لنظام ويندوز (ConPTY)" . مدونة مطوري سطر أوامر ويندوز . 3 أغسطس 2018.
- ↑ – دليل واجهات نواة FreeBSD
- ↑ – دليل واجهات نواة OpenBSD
- ↑ – دليل أجهزة وبرامج تشغيل أجهزة DragonFly BSD
- ↑ – دليل واجهات نواة داروين وماك أو إس
- ↑ – دليل مبرمج لينكس – ملفات خاصة من Manned.org
روابط خارجية
- الحاويات، وأجهزة طرفية وهمية، والتوافق مع الإصدارات السابقة ، LWN.net ، 1 يونيو 2016، بقلم نيل براون
- محاكيات الطرفية
- أدوات الاتصال التقني
