Skip to content

الكشف التلقائي عن المعلم مقابل الطالب (اقرأ أولًا)

الميزة المميِّزة لـ cc-class هي أنك تثبّت الحزمة نفسها على كل جهاز. بعد التثبيت، يكتشف كل جهاز بنفسه ما إذا كان "معلمًا" أم "طالبًا" — ولا يحتاج المسؤولون إلى فعل أي شيء مختلف لكل جهاز.

يستند القرار إلى شيء واحد فقط: اسم الحاسوب (hostname).

1. القاعدة: أيّ الأسماء تُعدّ "معلمًا"

يُعامَل الجهاز على أنه معلم إذا طابق اسم حاسوبه أيًّا مما يلي (دون حساسية لحالة الأحرف)؛ وإلا فهو طالب.

  1. يحتوي على كلمة مفتاحية للمعلم: يتضمن الاسم teacher أو jiaoshi أو laoshi أو الكلمة الصينية 老师.
    • مثال: teacher-01، JiaoShi، lab1-老师
  2. يحتوي على وسم معلم -t / _t: حرف t مستقل محدّد بحيث يكون الحرف قبله هو - أو _ أو بداية الاسم، والحرف بعده هو - أو _ أو رقم أو نهاية الاسم.
    • يطابق: pc-t، lab-t-01، room1-t2، PC001-T
    • لا يُطلَق خطأً على: -test (حرف t يتبعه eteam (حرف t يتبعه ehost-time (حرف t يتبعه i)
للفنيين: القاعدة الدقيقة

يُطابَق وسم المعلم بواسطة التعبير النمطي (^|[-_])t([-_]|[0-9]|$) (بعد تحويل الأحرف إلى صغيرة). يتضمّن مثبّت Windows (installer.nsi) وخدمة Linux الخفية (StudentService) منطقًا متطابقًا، لذا يتفق دائمًا تطبيق المعلم وتطبيق الطالب والمثبّت.

التسمية الموصى بها

الدورمثال على اسم الحاسوبملاحظة
المعلمteacher، teacher-01، PC-T، PC001-Tكلمة مفتاحية أو وسم -t
الطالبPC001، PC002، stu-01، room1-15اسم عادي، بدون وسم معلم

أبسط نظام

سمِّ جهاز المعلم PC001-T (ينتهي بـ -T)، والطلاب PC002، PC003، … تستخدم البيئة التجريبية في هذا الدليل ذلك تمامًا: المعلم PC001-T، الطلاب PC002 وPC003.

2. أولوية اسم سطح المكتب السحابي (مهم)

تستخدم العديد من المختبرات حلول سطح المكتب السحابي / بلا أقراص (IDV/VOI) حيث تُقلِع أجهزة كثيرة من الصورة نفسها، فقد يكون اسم مضيف نظام التشغيل متطابقًا عبر الأجهزة. للتعامل مع ذلك، يحلّ cc-class الاسم على النحو التالي:

  1. أولًا، يقرأ "اسم حاسوب سطح المكتب السحابي" الذي تدفعه المنصة:
    • في Linux: من الجهاز /dev/vdchardev؛
    • في Windows: من الجهاز \\.\vddsk.
  2. لا يلجأ إلى اسم مضيف نظام التشغيل إلا إذا كان ذلك الجهاز غائبًا / غير قابل للقراءة / فارغًا.

بعبارة أخرى: اسم سطح المكتب السحابي > اسم مضيف نظام التشغيل. في بيئة سطح المكتب السحابي، اضبط اسم حاسوب سطح المكتب السحابي للجهاز (مثل PC001-T) على منصة الإدارة — وليس فقط اسم مضيف نظام التشغيل.

مزلق شائع

إذا كان اسم مضيف نظام التشغيل هو PC001-T (يبدو معلمًا) لكن اسم سطح المكتب السحابي المدفوع هو PC001 (طالب)، فسيستخدم cc-class الاسم السحابي PC001 ويعامله كطالب، فيرفض تطبيق المعلم العمل. عند استكشاف الأخطاء، ثِق بـ "اسم حاسوب سطح المكتب السحابي".

3. ما الذي يسبّبه القرار (السلوك التلقائي)

إذا كان الجهاز…TeacherAppStudentAppاختصار سطح المكتب
معلمًايعمل بشكل طبيعييخرج تلقائيًا (تطبيق الطالب لا يعمل على جهاز معلم)ينشئ أيقونة المعلم فقط
طالبًايعرض "ليس جهاز معلم، لن يعمل"يعمل ويتصل تلقائيًا بالمعلملا ينشئ أي أيقونة على سطح المكتب (يبقي سطح المكتب نظيفًا)
  • يخرج تطبيق الطالب بهدوء على جهاز المعلم (يُرجِع 0، دون إزعاج).
  • يحذّر تطبيق المعلم ويخرج على جهاز الطالب. في الحالات الطارئة يمكنك إضافة وسيط سطر الأوامر --no-host-check لتخطّي الفحص (انظر الأسئلة الشائعة).

4. اختصارات سطح المكتب: تلقائية، دون عمل يدوي

أنت لا تنشئ الأيقونات يدويًا. يتولّى cc-class أمرها حسب الدور وينظّف أي أيقونات متبقّية بدور خاطئ:

  • جهاز المعلم: تُوضَع أيقونة cc-class Teacher على سطح المكتب.
    • في Linux، تعيد خدمة الطالب الخفية StudentService بناءها عند كل إقلاع بناءً على اسم سطح المكتب السحابي، وتضبط تلقائيًا خاصية metadata::trusted في GNOME حتى لا تظهر الأيقونة كـ"مشغّل تطبيقات غير موثوق" (وهو ما يجعل النقر المزدوج لا يفعل شيئًا).
    • في Windows، ينشئ المثبّت …-Teacher.lnk بناءً على اسم الحاسوب.
  • جهاز الطالب: لا توجد أيقونة على سطح المكتب على الإطلاق (يبقى مدخل في قائمة التطبيقات لأغراض استكشاف الأخطاء).

النتيجة الفعلية في البيئة التجريبية (عند فحص مجلدات سطح المكتب):

text
# Teacher PC001-T desktop: has the teacher icon
~/Desktop/cc-class-teacher.desktop

# Student PC002 / PC003 desktops: empty (no cc-class icon)
(none)

هل غيّرت اسم الحاسوب؟

فقط أعد التشغيل. عند الإقلاع تعيد الخدمة الخفية تقييم الدور بالاسم الجديد وتعيد بناء/تنظيف أيقونة سطح المكتب — تلقائيًا بالكامل.

5. مخطط القرار

                ┌─────────────────────────────┐
                │  Read "cloud-desktop name"   │
                │  Linux:   /dev/vdchardev     │
                │  Windows: \\.\vddsk          │
                └──────────────┬──────────────┘
              non-empty │ otherwise fall back
                ┌──────────────▼──────────────┐
                │      Use the OS hostname     │
                └──────────────┬──────────────┘

        name contains teacher / jiaoshi / laoshi / 老师
        or a -t / _t teacher tag?
                       ┌───────┴───────┐
                    yes│               │no
                ┌──────▼──────┐ ┌──────▼──────┐
                │   Teacher   │ │   Student   │
                │ run teacher │ │ run student │
                │ make icon   │ │ no icon     │
                └─────────────┘ └─────────────┘

بعد ذلك، اختر منصّتك 👉 التثبيت على Windowsالتثبيت على Linux