وحدات البيئة (البرمجيات)
نظام وحدات البيئة هو أداة برمجية مصممة لمساعدة المستخدمين على تعديل بيئة سطر الأوامر الخاصة بهم بشكل ديناميكي . يوفر النظام آلية لإدارة مجموعات إعدادات متغيرات البيئة والتبديل بينها ، والتي تُستخدم غالبًا لتكوين حزم البرامج والمترجمات والمكتبات المختلفة.
ملخص
تتيح وحدات البيئة للمستخدمين إمكانية تهيئة بيئة سطر الأوامر ديناميكيًا دون الحاجة إلى تعديل نصوص تسجيل الدخول بشكل دائم. يُعدّ هذا مفيدًا بشكل خاص في بيئات الحوسبة عالية الأداء (HPC) حيث قد يحتاج المستخدمون إلى الوصول إلى إصدارات متعددة من التطبيق نفسه. يقوم المستخدمون بتحميل وتفريغ نصوص تُسمى ملفات الوحدات النمطية لتعديل متغيرات البيئة مثل PATH أو LD_LIBRARY_PATH .
وحدات البيئة مستقلة عن الصدفة وتدعم جميع صدفات يونكس الرئيسية ( Bash و ksh و Zsh و Fish و sh و tcsh و csh ) وصدفات ويندوز ( CMD.EXE و PowerShell ) والعديد من لغات البرمجة النصية ( Perl و Python و Ruby و Tcl و CMake و R ).
تتعامل وحدات البيئة مع جميع أنواع العناصر التي تشكل جزءًا من بيئة الصدفة، بما في ذلك متغيرات البيئة ، وأسماء الصدفة المستعارة ، ووظائف الصدفة، وإكمال سطر الأوامر .
تاريخ
طُوِّرت وحدات البيئة لأول مرة في أوائل التسعينيات [ 1 ] على يد جون إل. فورلاني في شركة صن مايكروسيستمز . طُوِّر الإصدار الأول كبرامج نصية شل خالصة. مع الإصدار الثاني، أصبحت وحدات البيئة برنامجًا مكتوبًا بلغة C يُقيِّم ملفات الوحدات المكتوبة بلغة Tcl .
في منتصف التسعينيات، أصدر بيتر دبليو أوسيل من شركة سيمنز وجينز هاميش من شركة ستروبيري النسخة التجريبية 3.0. [ 2 ] تولى آر كي أوين من المركز الوطني لأبحاث الطاقة والحوسبة العلمية (NERSC) المشروع في أواخر التسعينيات ونقله إلى نظام لينكس . وأصدر النسخة 3.1 في عام 2000 بموجب رخصة جنو العمومية (GPL). [ 3 ]
خلال العقد الأول من الألفية الثانية، اكتسبت وحدات البيئة رواجًا في عالم الحوسبة عالية الأداء ، وبدأ استخدامها في أكبر مراكز الحوسبة. [ 4 ] [ 5 ] وقد تم تحديد وحدات البيئة كمتطلب أساسي لتكوين برنامج تحديث الحوسبة عالية الأداء التابع لوزارة الدفاع الأمريكية. [ 6 ]
في عام 2004، قام مارك لاكاتا من شركة MIPS Technologies بتطوير نسخة معاد تنفيذها بلغة Tcl خالصة لوحدات البيئة. [ 7 ] واستمر كينت مين في جامعة مينيسوتا في صيانة هذه النسخة البديلة لاحقًا .
في عام 2008، قدم روبرت مكلاي من مركز تكساس للحوسبة المتقدمة (TACC) مشروع Lmod، [ 8 ] وهو مشروع تنفيذ بديل لوحدات البيئة المكتوبة بلغة Lua .
بعد إصدار النسخة 3.2.10 في ديسمبر 2012، توقف تطوير تطبيق C لوحدات البيئة. وفي السنوات اللاحقة، ازداد مشروع Lmod شعبيةً في أوساط مجتمع الحوسبة عالية الأداء .
في عام ٢٠١٧، نُقلت إدارة مشروع وحدات البيئة إلى كزافييه ديلارويل من هيئة الطاقة البديلة والطاقة الذرية الفرنسية (CEA). وقد أصدر الإصدار الرابع، المبني على تطبيق Tcl خالص ، والذي تم تعديله للحفاظ على التوافق مع إصدار C السابق . [ ٩ ] ومنذ ذلك الحين، تُضاف ميزات جديدة بانتظام لتحسين سهولة الاستخدام وتوسيع الوظائف. [ ١٠ ]
في عام 2025، أصبح مشروع Modules مشروعًا تابعًا لمؤسسة Linux Foundation، وهو جزء من مؤسسة البرمجيات عالية الأداء (HPSF). [ 11 ]
بنيان
توفر وحدات البيئة الأمر modulecmd.tcl بالإضافة إلى دالة shell أو اسم مستعار باسم module . [ 12 ] يفسر الأمر ملفات modulefiles ، [ 13 ] وهي نصوص برمجية مكتوبة بلغة Tcl تُحدد تعديلات البيئة، ويُنتج شيفرة shell المقابلة. ثم تُقيّم دالة shell أو الاسم المستعار هذه الشيفرة لتحديث جلسة shell الحالية وفقًا لذلك.
عادةً ما يقوم ملف الوحدة النمطية بتعديل متغيرات البيئة مثل PATH و MANPATH و LD_LIBRARY_PATH . يوضح المثال أدناه ملف وحدة نمطية بسيط لحزمة برامج نموذجية:
#%Module module-whatis { برنامج مثال الإصدار 1.2 }set root / usr / local / example-1.2أضف المسار PATH إلى بداية الملف $root / bin ، ثم أضف المسار LD_LIBRARY_PATH إلى بداية الملف $root / lib ، ثم أضف المسار MANPATH إلى بداية الملف $root / man. يتم تنظيم ملفات الوحدات في مجلدات تُعرف باسم مسارات الوحدات . ويمكن إدارة هذه المسارات مركزياً لتوفير الوصول على مستوى النظام أو وضعها في مجلدات شخصية لتكوينات خاصة بالمستخدم.
يمكن للمستخدمين:
- قم بتحميل ملف الوحدة (أي تطبيق تغييرات البيئة المحددة) باستخدام تحميل الوحدة
- قم بإلغاء تحميل ملف الوحدة (أي التراجع عن تغييرات بيئته) باستخدام الأمر module unload
- قم بالتبديل بين ملفات الوحدات النمطية باستخدام مفتاح تبديل الوحدات النمطية
- عرض ملفات الوحدات النمطية المتاحة باستخدام الأمر module avail
- عرض محتوى ملف الوحدة النمطية باستخدام عرض الوحدة النمطية
- اعرض قائمة ملفات الوحدات النمطية المحملة حاليًا باستخدام الأمر module list
- احفظ ملفات الوحدات النمطية المحملة حاليًا في مجموعة باستخدام الأمر module save
- استعادة البيئة الموصوفة بواسطة مجموعة باستخدام وحدة الاستعادة
- قم بتمكين مسار الوحدة النمطية باستخدام استخدام الوحدة النمطية
أمثلة على الاستخدام
أنشئ ملفات نموذجية للوحدات النمطية في مسار وحدة نمطية خاص بالمستخدم:
$ mkdir -p $HOME /privatemodules/test $ echo '#%Module' > $HOME /privatemodules/test/1.0 $ echo '#%Module' > $HOME /privatemodules/test/2.0 $ module use $HOME /privatemodules عرض الوحدات المتاحة:
$ module available ---- /home/user/privatemodules --------------------------- test/1.0 test/2.0---- /usr/share/Modules/modulefiles ------------------------ dot module-git module-info modules null use.ownجارٍ تحميل الوحدة النمطية:
$ module load test/2.0 قائمة الوحدات النمطية المحملة:
$ module list الملفات المُحمّلة حاليًا: 1) test/2.0تبديل الإصدارات:
$ module switch test/2.0 test/1.0 إلغاء تحميل جميع الوحدات النمطية المحملة:
$ module purge حدد إصدارًا افتراضيًا لوحدة اختبار العينة :
$ echo '#%Module' > $HOME /privatemodules/test/.modulerc $ echo 'module-version test/1.0 default' >> $HOME /privatemodules/test/.modulerc تحميل وحدة الاختبار الافتراضية:
$ module load test $ module list ملفات الوحدات النمطية المحملة حاليًا: 1) test/1.0التوافر
تُوزَّع وحدات البيئة عبر مجموعة واسعة من أنظمة تشغيل لينكس ويونكس . [ 14 ] وهي متوفرة تحت اسم الحزمة environment-modules في ديبيان ، وأوبونتو ، وريد هات إنتربرايز لينكس ، وفيدورا . كما يُتاح البرنامج مُجمَّعًا لنظام macOS من خلال مشروع Homebrew ، وتتوفر نسخة منه لأنظمة ويندوز . وفي حال عدم توفر توزيعات مُجمَّعة مُسبقًا، يُقدِّم المشروع شفرة المصدر والوثائق اللازمة لدعم التثبيت والتكوين اليدويين. [ 15 ] [ 16 ]
مراجع
- ↑ فورلاني، جون ل. (30 سبتمبر - 3 أكتوبر 1991). "الوحدات: توفير بيئة مستخدم مرنة" (ملف PDF) . وقائع المؤتمر الخامس لإدارة أنظمة التركيبات الكبيرة (LISA V) . سان دييغو، كاليفورنيا: 141-152 . تاريخ الاسترجاع: 9 فبراير 2014 .
- ↑ "الإصدار التجريبي الأول من الوحدة 3.0 متاح الآن" . سورس فورج . 4 أكتوبر 1996.
- ↑ "الوحدات 3.1.0 جاهزة تقريبًا" . سورس فورج . 28 يونيو 2000.
- ↑ "وصف وحدات كراكن لدعم مستخدمي NICS" . المعهد الوطني لعلوم الحوسبة (NICS) . مختبر أوك ريدج الوطني - وزارة الطاقة. 22 مايو 2011. مؤرشف من الأصل في 22 فبراير 2014. تم الاطلاع عليه في 9 فبراير 2014 .
- ↑ "بيئة برمجيات وحدات NERSC" . المركز الوطني لأبحاث الطاقة والحوسبة العلمية (NERSC) . مكتب العلوم - وزارة الطاقة. 7 فبراير 2014. مؤرشف من الأصل في 7 نوفمبر 2012. تم الاطلاع عليه في 3 سبتمبر 2025 .
- ↑ "استخدام الوحدات النمطية للوصول إلى إصدارات متعددة من البرامج" . التكوين الأساسي . برنامج تحديث الحوسبة عالية الأداء التابع لوزارة الدفاع الأمريكية (HPCMP). 20 مارس 2008. مؤرشف من الأصل في 22 فبراير 2014. تم الاطلاع عليه في 9 فبراير 2014 .
- ↑ "تنفيذ TCL خالص للوحدة النمطية" . SourceForge . 29 أكتوبر 2002.
- ↑ "الإعلان عن Lmod: نظام وحدات جديد" . SourceForge . 16 أكتوبر 2008.
- ↑ "إصدار الوحدات 4.0.0" . سورس فورج . 16 أكتوبر 2017.
- ↑ "الميزات الجديدة" . اقرأ الوثائق . 25 نوفمبر 2025.
- ↑ "مؤسسة البرمجيات عالية الأداء ترحب بالوحدات البرمجية كمشروع تابع لها" . مؤسسة البرمجيات عالية الأداء . 10 نوفمبر 2025.
- ↑ "وحدة نمطية" . اقرأ الوثائق . 25 نوفمبر 2025.
- ↑ "ملف الوحدة" . اقرأ الوثائق . 25 نوفمبر 2025.
- ↑ "إصدارات لوحدات البيئة" . ريبولوجي . تم الاطلاع عليه بتاريخ 4 سبتمبر 2025 .
- ↑ "تثبيت الوحدات النمطية على نظام يونكس" . اقرأ الوثائق . 25 نوفمبر 2025.
- ↑ "تثبيت الوحدات النمطية على نظام التشغيل Windows" . اقرأ الوثائق . 25 نوفمبر 2025.
روابط خارجية
- الموقع الرسمي
- الوحدات النمطية على GitHub
- جون إل. فورلاني، الوحدات: توفير بيئة مستخدم مرنة، وقائع المؤتمر الخامس لإدارة أنظمة التركيبات الكبيرة (LISA V) ، الصفحات 141-152، سان دييغو، كاليفورنيا، 30 سبتمبر - 3 أكتوبر 1991.
- دليل مستخدم وحدات بيئة جامعة ولاية بنسلفانيا
- انقل بيئة التصميم الخاصة بك إلى التسعينيات بكل سهولة مع الوحدات النمطية! - مؤتمر SNUB بوسطن 2001 - إريك ويتني، شبكات أكسيوويف، مارك سبراغ، أبحاث ATI
- بيئات برمجيات Xsede . بيئة الاكتشاف العلمي والهندسي المتطرفة - المؤسسة الوطنية للعلوم
- cmod - تطبيق بديل بلغة C تم تطويره في التسعينيات
- Lmod - نظام الوحدة المستندة إلى Lua
- Spack - مدير حزم مرن لبرامج الحوسبة عالية الأداء
- EasyBuild - إطار عمل لبناء البرامج وتثبيتها لإدارة البرامج على أنظمة الحوسبة عالية الأداء
- برنامج مجاني مكتوب بلغة Tcl
- برامج يونكس
- برامج علمية
- إدارة النظام
- برنامج يستخدم رخصة جنو العمومية العامة
