ICL VME

بيئة الآلة الافتراضية ( VME ) هي نظام تشغيل للحواسيب المركزية ، طورته شركة الكمبيوترات الدولية المحدودة (ICL ) البريطانية ، وهي الآن جزء من مجموعة فوجيتسو . طُوّر النظام في الأصل في سبعينيات القرن الماضي (باسم VME/B ، ثم VME 2900 ) لتشغيل الحواسيب المركزية من سلسلة ICL 2900 الجديدة آنذاك ، ويُعرف الآن باسم OpenVME ، ويتضمن نظامًا فرعيًا من يونكس ، ويعمل على الحواسيب المركزية من سلسلة ICL 39 وTrimetra [ 1 ] ، وعلى خوادم x86-64 القياسية في هذا المجال . [ 2 ]

الأصول

بدأ برنامج تطوير نظام "نيو رينج" باندماج شركتي "إنترناشونال كمبيوترز آند تابوليتورز " (ICT) و "إنجلش إلكتريك كمبيوترز" عام 1968. وكان من بين القرارات الأساسية اعتماد نظام تشغيل جديد. وقد أُجريت عدة دراسات جدوى وتصميم مختلفة داخل شركة ICL، أبرزها ثلاث دراسات:

  • VME/B (المعروفة أصلاً باسم System B)، تستهدف المعالجات الكبيرة مثل 2970/2980، وقد طُوّرت في كيدزغروف ، ستافوردشاير، وويست غورتون ، مانشستر.
  • VME/K (كان يُعرف سابقًا باسم System T)، استهدف الأنظمة متوسطة المدى مثل 2960، وطُوّر في براكنيل بعد التخلي عن التصميم الأصلي لهذه المعالجات الصغيرة، System D. طُوّر VME/K وطُرح في السوق، ولكن استُبدل لاحقًا بـ VME/B.
  • VME/T، الذي لم يتم إطلاقه فعليًا، ولكنه يستحق الذكر لأنه تم تصميمه لدعم "تحمل الأعطال"، وقد سبق جهود شركة Tandem Computers الأمريكية الناشئة الناجحة في هذا المجال.

كان برايان واربويز كبير مهندسي نظام VME/B ، والذي أصبح لاحقًا أستاذًا لهندسة البرمجيات في جامعة مانشستر . ويمكن ملاحظة تأثيرات عديدة في تصميمه، مثل نظام Multics ونظام التشغيل George 3 السابق من شركة ICL ؛ إلا أنه صُمم أساسًا من الصفر.

كان يُنظر إلى VME/B على أنه ينافس بشكل أساسي نظام التشغيل الرئيسي System/370 IBM كنظام تشغيل تجاري، وقد اعتمد ترميز الأحرف EBCDIC . [ 3 ]

تاريخ

عندما تم إطلاق جهاز نيو رينج لأول مرة في أكتوبر 1974، كان نظام تشغيله يُشار إليه باسم "النظام ب". وبحلول وقت تسليمه لأول مرة، أصبح يُعرف باسم "VME/B". [ 4 ]

تم تطوير VME/K (المعروف داخليًا باسم "System T" اختصارًا لـ "Tiny") بشكل مستقل (وفقًا لكامبل كيلي، "بدافع من إد ماك")، وتم تسليمه لاحقًا مع أجهزة الكمبيوتر المركزية الأصغر حجمًا مثل 2960. في ذلك الوقت، كان VME/B لا يزال يعاني من مشاكل في الأداء والموثوقية، وكان لدى فريق الإدارة الأمريكي في الغالب مخاوف بشأنه.

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

باعت شركة ICL نظامًا كبيرًا لوكالة الفضاء الأوروبية لمعالجة البيانات من القمر الصناعي ميتيوسات في مركز عملياتها في دارمشتات . وقد تم تطوير نسخة مخصصة من نظام VME/K، تُعرف باسم VME/ESA، في الموقع لتلبية متطلبات العميل.

عقب الأزمة المالية عام ١٩٨٠، تولت إدارة جديدة شركة ICL، حيث عُيّن كريستوفر لايدلو رئيسًا لمجلس الإدارة، وروب ويلموت مديرًا عامًا. وكان من أوائل قرارات الإدارة الجديدة التخلي عن VME/K. [ ٥ ] وهكذا، في يوليو ١٩٨١، أُطلق VME 2900. [ ٤ ] : ٣٤٠. ورغم تقديمه للعملاء على أنه دمج بين VME/B وVME/K، إلا أنه في الواقع كان VME/B الأساسي مع إضافة بعض الميزات المختارة من VME/K. وقد أتاح ذلك فرصةً للتخلص من بعض الميزات القديمة، التي ظلت متاحة للعملاء الذين يحتاجون إليها في شكل خيار "BONVME".

تم حذف اللاحقة "2900" في الإصدار 213 من النظام (SV213) عندما أطلقت شركة ICL السلسلة 39 في عام 1985 كخليفة للسلسلة 2900 الأصلية، وأُضيفت البادئة "Open" بعد الإصدار SV294. أصبح VME قادرًا على استضافة التطبيقات المكتوبة أصلاً لنظام Unix من خلال نظام فرعي قائم على نظام UNIX System V الإصدار 3 ، يُسمى VME/X، تم تكييفه للعمل ضمن VME وباستخدام ترميز الأحرف ASCII . [ 6 ] [ 7 ] [ 8 ]

في عام 2007، أعلنت شركة فوجيتسو عن إصدار VME يعمل كنظام فرعي مُستضاف، يُسمى superNova ، ضمن أنظمة تشغيل مايكروسوفت ويندوز ، أو SUSE أو Red Hat Enterprise Linux على أجهزة x86-64 . [ 2 ]

في عام 2012، أعلنت مجموعة مستخدمي VME، AXiS، أنها ستحل نفسها بعد ما يقرب من 40 عامًا بسبب انخفاض قاعدة المستخدمين. [ 9 ]

كانت شركة فوجيتسو تعتزم دعم VME على أجهزة الكمبيوتر الخاصة بالعملاء حتى عام 2020. [ 10 ]

في عام 2020، نقلت شركة فوجيتسو 13 تطبيقًا من تطبيقات مصلحة الضرائب والجمارك البريطانية من أجهزة الكمبيوتر الخاصة بها إلى منصة الاستضافة الافتراضية المُدارة VME التابعة لها. [ 11 ] [ 12 ]

اعتبارًا من عام 2021، استبدلت وزارة العمل والمعاشات أنظمتها القائمة على VME بالكامل، وذلك بعد الانتهاء من برنامج استبدال VME-R الحائز على جوائز. [ 13 ]

بنيان

تُبنى VME على شكل طبقات، لكل طبقة منها إمكانية الوصول إلى موارد بمستويات تجريد مختلفة. تُنشأ الموارد الافتراضية التي توفرها طبقة ما من الموارد الافتراضية التي توفرها الطبقة التي تليها. يُتحكم في الوصول إلى موارد كل طبقة من خلال مجموعة من مستويات الوصول: لكي يتمكن أي برنامج من استخدام مورد ما عند مستوى وصول معين، يجب أن يمتلك مفتاح وصول يتيح له الوصول إلى ذلك المستوى. يشبه هذا المفهوم "حلقات الحماية" في Multics . تسمح البنية بـ 16 مستوى وصول، منها المستويات الستة الخارجية مخصصة لرمز المستخدم.

بصرف النظر عن مستويات الوصول، يُتيح نظام التشغيل الموارد للتطبيقات على شكل آلة افتراضية (VM). يمكن للآلة الافتراضية تشغيل عمليات متعددة. عمليًا، تُشبه الآلة الافتراضية في بيئة VME مفهوم العملية في أنظمة التشغيل الأخرى، بينما تُشبه عملية VME (أو العملية الفرعية التي يُنشئها التطبيق) خيطًا في الأنظمة الأخرى. مع ذلك، لا يمكن للعمليات التي تعمل داخل الآلة الافتراضية أن تعمل بالتزامن، وبالتالي تُشبه خيوط المستخدم الموجودة في الأنظمة الأخرى. [ 14 ] : 32 تتضمن عملية نقل التحكم بين العمليات التي تتشارك نفس الآلة الافتراضية تعليمة مُخصصة. [ 8 ] : 483

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

يتم التواصل بين الأجهزة الافتراضية عبر الأحداث (قنوات اتصال مُسماة) ومناطق الذاكرة المشتركة. كما يوفر تصميم الأجهزة تعليمات الإشارات INCT (الزيادة والاختبار) وTDEC (الاختبار والإنقاص).

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

يتم التعامل مع المقاطعات عن طريق إنشاء إطار مكدس جديد على المكدس للعملية ذات الصلة، والتعامل مع المقاطعة باستخدام هذه البيئة الجديدة، ثم إزالة المكدس للعودة إلى العملية التي تمت مقاطعتها.

يتم التقاط استثناءات وقت التشغيل، والتي يشار إليها باسم حالات الطوارئ ، بواسطة معالج أخطاء برنامج الكائن (OPEH)، والذي يمكنه إنتاج تقرير (مكافئ لتتبع المكدس )، إما بشكل تفاعلي أو كتابته في سجل.

OMF

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

SCL

لغة الأوامر الخاصة بـ VME تُعرف باسم SCL (لغة التحكم في النظام).

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

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

تستخدم مفردات الأوامر المدمجة اصطلاح تسمية متسقًا، حيث يتبع الفعل الأمري اسمًا: على سبيل المثال DELETE_FILE أو DISPLAY_LIBRARY_DETAILS. يمكن كتابة الأمر كاملًا، أو بصيغة مختصرة تجمع بين الاختصارات القياسية للفعل والاسم: على سبيل المثال XF (X لـ DELETE، وF لـ FILE) أو DLBD (D لـ DISPLAY، وLB لـ LIBRARY، وD لـ DETAILS).

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

من الممكن "تفكيك" برنامج SCL من OMF إلى شفرة مصدر SCL باستخدام الأمر READ_SCL (أو RSCL). مع ذلك، لا يكون الناتج دائمًا مثاليًا، وغالبًا ما يتضمن أخطاءً تمنع إعادة التجميع دون تدخل المستخدم.

يمكن الاطلاع على مثال بسيط للبرمجة على موقع 99 زجاجة بيرة . [ 15 ]

يُعرض أدناه مثال أكثر واقعية، حيث تُستخدم لغة SCL لتجميع برنامج مكتوب بلغة S3 . هذا المثال مأخوذ من أرشيف جامعة كولومبيا لتطبيقات Kermit . [ 16 ]

يبدأ حينما النتيجة GT 0 +_ ثم +_ إرسال رسالة النتيجة (RES = النتيجة، ACT = "QUIT()") FI INT KMT_SRC, KMT_OMF, KMT_REL ASSIGN_LIBRARY (NAM = KERMIT.SOURCE, LNA = KMT_SRC) ASSIGN_LIBRARY (NAM = KERMIT.OMF، LNA = KMT_OMF) ASSIGN_LIBRARY (NAM = KERMIT.REL, LNA = KMT_REL) يبدأ DELETE_FILE (NAM = *KMT_OMF.KMT_DATA_MODULE(101)) DELETE_FILE (NAM = *KMT_OMF.KMT_DH_MODULE(101)) DELETE_FILE (NAM = *KMT_OMF.KMT_EH_MODULE(101)) DELETE_FILE (NAM = *KMT_OMF.KMT_FH_MODULE(101)) DELETE_FILE (NAM = *KMT_OMF.KMT_HELP_MTM(101)) DELETE_FILE (NAM = *KMT_OMF.KMT_MAIN_MODULE(101)) DELETE_FILE (NAM = *KMT_OMF.KMT_PH_MODULE(101)) DELETE_FILE (NAM = *KMT_OMF.KMT_PP_MODULE(101)) DELETE_FILE (NAM = *KMT_OMF.KMT_SP_MODULE(101)) DELETE_FILE (NAM = *KMT_OMF.KMT_SP_MTM(101)) DELETE_FILE (NAM = *KMT_OMF.KMT_UI_MODULE(101)) حذف_الملف (NAM = *KMT_REL.KERMIT(101)) حذف_الملف (NAM = *KMT_REL.KERMIT_MODULE(101)) نهاية S3_COMPILE_DEFAULTS (LIS = OBJECT & XREF, DIS = ERRORLINES) S3_COMPILE (INP = *KMT_SRC.KMT_DATA_MODULE(101), OMF = *KMT_OMF.KMT_DATA_MODULE(101)) S3_COMPILE (INP = *KMT_SRC.KMT_DH_MODULE(101), OMF = *KMT_OMF.KMT_DH_MODULE(101)) S3_COMPILE (INP = *KMT_SRC.KMT_EH_MODULE(101)، OMF = *KMT_OMF.KMT_EH_MODULE(101)) S3_COMPILE (INP = *KMT_SRC.KMT_FH_MODULE(101), OMF = *KMT_OMF.KMT_FH_MODULE(101)) NEW_MESSAGE_TEXT_MODULE (CON = *KMT_SRC.KMT_HELP_MTM(101), OMF = *KMT_OMF.KMT_HELP_MTM(101)) S3_COMPILE (INP = *KMT_SRC.KMT_MAIN_MODULE(101), OMF = *KMT_OMF.KMT_MAIN_MODULE(101)) S3_COMPILE (INP = *KMT_SRC.KMT_PH_MODULE(101), OMF = *KMT_OMF.KMT_PH_MODULE(101)) S3_COMPILE (INP = *KMT_SRC.KMT_PP_MODULE(101), OMF = *KMT_OMF.KMT_PP_MODULE(101)) S3_COMPILE (INP = *KMT_SRC.KMT_SP_MODULE(101), OMF = *KMT_OMF.KMT_SP_MODULE(101)) NEW_MESSAGE_TEXT_MODULE (CON = *KMT_SRC.KMT_SP_MTM(101), OMF = *KMT_OMF.KMT_SP_MTM(101)) S3_COMPILE (INP = *KMT_SRC.KMT_UI_MODULE(101), OMF = *KMT_OMF.KMT_UI_MODULE(101)) يجمع () ---- الإدخال(*KMT_OMF.KMT_DATA_MODULE(101) & *KMT_OMF.KMT_DH_MODULE(101) & *KMT_OMF.KMT_EH_MODULE(101) & *KMT_OMF.KMT_FH_MODULE(101) & *KMT_OMF.KMT_HELP_MTM(101) & *KMT_OMF.KMT_MAIN_MODULE(101) & *KMT_OMF.KMT_PH_MODULE(101) & *KMT_OMF.KMT_PP_MODULE(101) & *KMT_OMF.KMT_SP_MODULE(101) & *KMT_OMF.KMT_SP_MTM(101) & *KMT_OMF.KMT_UI_MODULE(101)) NEWMODULE(*KMT_REL.KERMIT_MODULE(101)) قمع احتفظ بـ(كيرميت_الضفدع) وحدة القائمة يؤدي ++++ COMPILE_SCL (INP = *KMT_SRC.KERMIT(101), OUT = *KMT_REL.KERMIT(101), COD = NOTIFWARNINGS, OPT = FIL) نهاية 

تتضمن الأوامر الموضحة في هذا الجزء WHENEVER (يعلن سياسة معالجة الأخطاء)، وASSIGN_LIBRARY (يربط اسمًا محليًا لدليل ملف)، وDELETE_FILE (يجعل ملفًا دائمًا مؤقتًا، ثم يتم حذفه في نهاية الكتلة)، وS3_COMPILE (يقوم بتجميع برنامج مكتوب بلغة S3: يكسر هذا الأمر اصطلاح الفعل والاسم المعتاد)، وNEW_MESSAGE_TEXT_MODULE (ينشئ وحدة نمطية تحتوي على رسائل خطأ ذات معلمات مناسبة للترجمة) وCOMPILE_SCL، الذي يقوم بتجميع برنامج SCL إلى رمز كائن.

يجمع الأمر COLLECT وحدات برمجية مختلفة في وحدة واحدة، ويتم تشغيله بواسطة ملف أوامر محلي خاص به مُدمج في لغة التحكم بالبرمجيات (SCL) بين الفاصلين "----" و "++++". يُحدد الأمران الفرعيان INPUT و NEWMODULE اسمي وحدتي الإدخال والإخراج؛ بينما يُحدد الأمران SUPPRESS و RETAIN إمكانية الوصول الخارجي للإجراءات المُسماة داخل الوحدة المُجمعة؛ ويطلب الأمر LISTMODULE تقريرًا يصف وحدة الإخراج.

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

إصدارات ذات أمان مُحسّن

نتيجة لمشاركة شركة ICL الكبيرة في تقديم خدمات الكمبيوتر للقطاع العام في المملكة المتحدة، وخاصة تلك التي لها متطلبات أمنية خاصة مثل OPCON CCIS ، فقد كانت من أوائل الشركات التي دخلت سوق الأنظمة الآمنة .

شكلت VME جوهر أنشطة ICL في مجال الأنظمة الآمنة. وقد تميزت بكونها آخر نظام تشغيل واسع النطاق تم تصميمه على الإطلاق، ونظام تم بناؤه من الصفر، حيث شملت بنيتها الأساسية العديد من العناصر الأساسية اللازمة لتطوير نظام آمن، ولا سيما سجلات التحكم في الوصول المدعومة بالأجهزة (ACR) للحد من الامتيازات التي يمكن لأي عملية (بما في ذلك المستخدمين) الحصول عليها.

أدى ذلك إلى قيام وكالة الحوسبة والاتصالات المركزية التابعة للحكومة البريطانية ( CCTA ) بتمويل مشروع Spaceman في منتصف الثمانينيات لمركز تكنولوجيا الدفاع التابع لشركة ICL (DTC) لتطوير نسخة محسّنة من VME من حيث الأمان. [ 17 ] أطلقت ICL هذا المشروع كمنتجين متكاملين، حيث أطلق على الإصدار التجاري اسم High Security Option (HSO)، بينما أطلق على إصدار القطاع العام، بما في ذلك تقنيات التشفير المقدمة من الحكومة (GFE)، اسم Government Security Option (GSO).

تم اختبار نظامي التشغيل HSO و GSO رسميًا بموجب مخطط التقييم CESG UK (الأمني)، وهو أحد الأنظمة السابقة لـ ITSEC والمعايير المشتركة ، وبذلك أصبحا أول نظام تشغيل رئيسي يحصل على شهادة رسمية.

قابلية التشغيل البيني بين أنظمة يونكس والأنظمة المفتوحة

أعلنت شركة ICL في الأصل عن خدمة استضافة يونكس لشركة VME عام 1985، مع توفير الدعم والتوافر للتطبيقات الاستراتيجية في غضون ثمانية عشر شهرًا. [ 18 ] وكانت هذه الخدمة، التي تدعم SVR1 ، قيد "التجارب الميدانية" وكان من المقرر ترقيتها إلى SVR2 قبل إطلاقها رسميًا في صيف عام 1987. [ 19 ] ثم أُعلن عن توفرها بشكل محدود لعملاء VME الحاليين، بينما وُجّه الآخرون نحو مجموعة أنظمة Clan من ICL، وهي أنظمة يونكس مخصصة للإدارات. [ 20 ]

في أكتوبر 1987، أتاحت شركة ICL إصدار SV221 من VME مع دعم تشغيل SVR2 كنظام ضيف في VME Unix. [ 21 ] وقد ساهم هذا الإصدار، الذي وُصف بأنه منتج "غير مُسوّق" يُعرف أيضًا باسم VNS، في تصميم VME/X، وهو إصدار جديد إلى حد كبير، تم إصداره في عام 1991 واعتُرف به كمتوافق مع معيار XPG3، ثم مع معيار XPG4 الأساسي 1 في عام 1992. [ 8 ] : 489-490. أشارت المواد الترويجية لـ OpenVME من ICL إلى أن VME كان أول نظام تشغيل غير Unix يحصل على توافق XPG3، وأول نظام تشغيل من أي نوع يحصل على توافق XPG4 الأساسي. [ 22 ]

في عام 1995، أضافت شركة ICL دعمًا لمجموعة بروتوكولات الإنترنت من خلال خيار التوافق مع أنظمة يونكس (UNIX Interworking Option for OpenVME)، والذي تضمن تطبيقات لبروتوكولات TCP/IP وUDP/IP، بالإضافة إلى دعم بروتوكول نقل الملفات ( FTP) وبروتوكول Telnet وبروتوكول نظام ملفات الشبكة (NFS). وشملت وظائف NFS خادمًا يُتيح الوصول إلى أجزاء من مخزن ملفات OpenVME لعملاء NFS، بينما سمحت وظائف Telnet لمستخدمي نظام OpenVME بالوصول إلى مضيفي يونكس، كما دعمت توفير خاصية تسجيل الدخول على OpenVME للمستخدمين عن بُعد باستخدام هذا البروتوكول. وإلى جانب واجهة برمجة تطبيقات Berkeley sockets ، المستخدمة على نطاق واسع في تطبيقات يونكس، قدم المنتج أيضًا واجهة X/Open Transport Interface لضمان استقلالية البروتوكول ودعم بروتوكولات OSI المستخدمة عادةً في برامج VME. [ 23 ]

السلسلة 39

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

عملية التطوير

كُتبت لغة VME في الأصل بالكامل تقريبًا بلغة S3 ، وهي لغة برمجة أنظمة مصممة خصيصًا ومبنية على لغة Algol 68R (مع ذلك، كُتبت VME/K بشكل أساسي بلغة التجميع SFL). على الرغم من استخدام لغة عالية المستوى ، فإن نظام التشغيل غير مصمم ليكون مستقلاً عن بنية الأجهزة الأساسية؛ بل على العكس، فإن بنية البرمجيات والأجهزة متكاملة بشكل وثيق.

ابتداءً من أوائل التسعينيات، تمت كتابة بعض الأنظمة الفرعية الجديدة كليًا لـ VME جزئيًا أو كليًا بلغة البرمجة C.

منذ بداياتها، طُوِّرت VME بمساعدة نظام مستودع هندسة البرمجيات المعروف باسم CADES ، والذي صممه وأداره في الأصل ديفيد بيرسون (عالم حاسوب)، وبُني لهذا الغرض باستخدام قاعدة بيانات IDMS . لا يقتصر دور CADES على كونه نظامًا للتحكم في إصدارات وحدات البرمجيات، بل يُدير جميع جوانب دورة حياة البرمجيات، بدءًا من تحديد المتطلبات ومنهجية التصميم والمواصفات، وصولًا إلى الصيانة الميدانية. استُخدم CADES في تطوير وحدات VME لحفظ تعريفات منفصلة لهياكل البيانات (Modes)، والثوابت (Literals)، والواجهات الإجرائية، والخوارزميات الأساسية. ويمكن أن توجد إصدارات متعددة (Lives) من كل مكون من هذه المكونات. كُتبت الخوارزميات بلغة تطوير الأنظمة (SDL)، والتي حُوِّلت لاحقًا إلى مصدر S3 [ 24 ] بواسطة معالج مسبق. ويمكن إنشاء إصدارات متعددة من الوحدات نفسها.

أدوات تطوير التطبيقات

تنقسم أدوات تطوير التطبيقات التي يوفرها VME إلى فئتين:

تتميز مجموعة الأدوات في VME بتجانسها الاستثنائي، حيث يستخدم معظم العملاء نفس المجموعة الأساسية من اللغات والأدوات. ونتيجة لذلك، تتميز الأدوات بتكاملها الممتاز. أما أدوات الطرف الثالث، فلم تترك أثراً يُذكر.

لسنوات عديدة، كتب غالبية مستخدمي VME تطبيقاتهم بلغة كوبول ، مستخدمين في الغالب قاعدة بيانات IDMS وجهاز مراقبة معالجة المعاملات TPMS . وشملت لغات البرمجة الأخرى فورتران ، وباسكال ، وألغول 68RS ، وكورال 66 ، و RPG2 ، لكنها لم تكن شائعة الاستخدام. لاحقًا، في منتصف ثمانينيات القرن الماضي، أصبحت مترجمات لغة C متاحة، داخل نظام يونكس وخارجه، وذلك بشكل أساسي لتسهيل نقل البرامج، مثل أنظمة قواعد البيانات العلائقية . ومن المثير للاهتمام أن اللجنة الاقتصادية الأوروبية (EEC) كتبت مترجمًا فرعيًا للغة PL/I للمساعدة في نقل البرامج من أجهزة IBM إلى أجهزة ICL.

تتشارك المترجمات المطورة ضمن بيئة ICL بنيةً مشتركة، وفي بعض الحالات تتشارك مكونات مثل مولدات الشفرة. وقد استخدمت العديد من هذه المترجمات وحدةً تُسمى ALICE (بيئة اللغة التجميعية الداخلية المشتركة)، وأنتجت شكلاً مبكراً من الشفرة المُترجمة مسبقاً (P-Code) يُسمى ROSE، مما جعل مكتبات تنسيق وحدة الكائن (OMF) المُترجمة قابلةً للتحميل على أي جهاز ضمن النطاق.

لغات برمجة الأنظمة: S3 و SFL

اللغة الأساسية المستخدمة لتطوير نظام التشغيل VME نفسه وبرامج النظام الأخرى مثل المترجمات ومراقبي معالجة المعاملات هي S3 . وهي لغة عالية المستوى تعتمد في كثير من النواحي على لغة Algol 68 ، ولكن مع أنواع بيانات ووظائف ومعاملات منخفضة المستوى تتوافق بشكل وثيق مع بنية سلسلة 2900.

تتوفر أيضًا لغة تجميع SFL ( لغة وظائف النظام ). استُخدمت هذه اللغة في تطوير VME/K، حيث لم يكن مصمموها واثقين من قدرة لغة عالية المستوى على توفير الأداء المطلوب، وكذلك في نواة نظام قاعدة بيانات IDMS نظرًا لكونها منتجًا من طرف ثالث . كان اسم SFL في الأصل لغة برمجة التجميع الكلي ( MAPLE )، ولكن مع تسويق بنية 2900 على أنها تتكون من آلات لغات عالية المستوى، تم تغيير الاسم بناءً على طلب قسم التسويق في ICL. وقد طُوّرت كجزء من مجموعة أدوات System D، التي أُلغيت لاحقًا. كما طُوّرت عائلات أخرى من المجمعات لبنى أخرى ( CALM -xx التي تعمل تحت VME، وPALM-xx المطورة بلغة باسكال والتي تعمل على مضيفات مختلفة) للاستخدام الداخلي.

لم يتم الترويج لأي من S3 أو SFL كأداة تطوير تجارية لتطبيقات المستخدم النهائي، إذ لم يتم تضمين أي منهما كجزء أساسي من نظام التشغيل، ولم يتم تسويقهما بشكل صريح كمنتجات مستقلة. مع ذلك، كان كل من SFL وS3 متاحين كخيارات للمؤسسات المستخدمة والجهات الخارجية التي لديها حاجة محددة إليهما.

البناء السريع

حققت بيئة تطوير التطبيقات QuickBuild على منصة VME نجاحًا باهرًا، على الرغم من أن التطبيقات محصورة إلى حد كبير ضمن بيئة VME. ترتكز هذه البيئة على نظام قاموس البيانات (DDS، المعروف أيضًا باسم OpenDDS)، وهو محاولة مبكرة وناجحة للغاية لبناء مستودع شامل يدعم جميع الأدوات الأخرى، مع دعم كامل لدورة حياة التطوير. بالإضافة إلى مخططات قواعد البيانات وأوصاف الملفات والسجلات، يتتبع القاموس كائنات مثل التقارير والاستعلامات، وتصميمات الشاشات، وشفرة الجيل الرابع (4GL)؛ كما يدعم مجموعة متنوعة من النماذج على مستوى تحديد المتطلبات، مثل نماذج علاقات الكيانات ونماذج العمليات.

يتم تغليف QuickBuild 4GL في شكلين:

  • ApplicationMaster لإنشاء تطبيقات TP عبر الإنترنت
  • برنامج ReportMaster لإعداد التقارير المجمعة.

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

مراجع

  1. "اليوم، غدًا، VME" (ملف PDF) . فوجيتسو . مؤرشف من الأصل (ملف PDF) بتاريخ 22 فبراير 2012.
  2. ١ ٢ مقدمة عن بنية superNOVA (ملف PDF) (تقرير). فوجيتسو. يناير ٢٠٠٧. مؤرشف من الأصل (ملف PDF) في ٢٨ سبتمبر ٢٠٠٧.
  3. باري ج. غراهام (2002). "مقارنة تكاليف نظام فوجيتسو أوبن في إم إي بتكاليف نظام آي بي إم مين فريم" (ملف PDF) . خدمات فوجيتسو. مؤرشف من النسخة الأصلية (ملف PDF) بتاريخ 1 فبراير 2014. تم الاطلاع عليه بتاريخ 28 يناير 2014 .
  4. 1 2 كامبل-كيلي، مارتن (1989). شركة ICL: تاريخ تجاري وتقني . مطبعة جامعة أكسفورد. ISBN 0-19-853918-5تم الاطلاع عليه بتاريخ 30 مايو 2024 .
  5. Knight, Michael (Summer 2008). "Beacon 1963-7: A System Design Ahead of its Time?". Computer Resurrection (43). For numerous and varied reasons, beyond the author's knowledge or competence to evaluate, VME/K became not a success, but a trauma. VME/K was finally terminated in 1981 by newly-installed Managing Director, Robb Wilmot.
  6. Dave Bailey (powerpoint) (30 November 2000). "The Continuing Development of OpenVME". ICL. Archived from the original on 2 February 2014. Retrieved 28 January 2014.
  7. "ICL's Open VME turns out to be subset of Unix under VME; Applications are coming". Computer Business Review. 10 February 1992. Retrieved 28 January 2014.{{cite news}}: CS1 maint: deprecated archival service (link)
  8. 123Coates, P. (1993). "VME-X: Making VME Open"(PDF). ICL Technical Journal. ICL: 473. ISSN 0142-1557. Archived from the original(PDF) on 5 March 2016. Retrieved 7 November 2015.
  9. Cloutt, Harold (2012). "ICL User Group to be disbanded after almost 40 years loyal service to the VME community". AXiS. Archived from the original on 24 March 2012. Retrieved 11 July 2018.
  10. Clark, Lindsay (21 January 2022). "You might want to consider the cost of not upgrading legacy tech, UK's Department for Work and Pensions told". The Register. Retrieved 24 January 2022.
  11. Evenstad, Lis (13 October 2020). "HMRC signs five-year £169m contract with Fujitsu for VME platform". Computer Weekly. Retrieved 24 January 2022.
  12. "United Kingdom-Salford: Application service providers". Tenders Electronic Daily. European Union. 12 October 2020. 2020/S 198-481324. Retrieved 24 January 2022.
  13. Evenstad, Lis (26 March 2021). "DWP completes in-house VME replacement project". Computer Weekly. Retrieved 27 May 2024.
  14. هولت، نيك (1995). بنية OpenVME (ملف PDF) . شركة الحواسيب الدولية المحدودة. مؤرشف من الأصل في 8 نوفمبر 2016. تم الاطلاع عليه في 21 يونيو 2024 .{{cite book}}: CS1 maint: bot: حالة عنوان URL الأصلي غير معروفة ( رابط )
  15. مثال على كود SCL على موقع 99 زجاجة بيرة
  16. "أرشيف شفرة المصدر لبرنامج كيرميت" . مشروع كيرميت بجامعة كولومبيا. 22 أغسطس 2011. تم الاطلاع عليه في 1 مارس 2013 .
  17. ألدريتش، ريتشارد جيه؛ وورك، جيه دي (2022). "مشروع رائد الفضاء: الأمن الحاسوبي البريطاني المبكر ومعالجة البيانات الآلية" . الاستخبارات والأمن القومي . 38 (4): 525-537 . doi : 10.1080/02684527.2022.2139342 . تاريخ الاسترجاع: 25 يونيو 2024 .
  18. "شركة ICL تعتمد على استراتيجية الأنظمة المفتوحة" . مجلة Computerworld . 14 أكتوبر 1985. الصفحات 30-31 . تم الاطلاع عليه في 3 يونيو 2024 . 
  19. "نظام يونكس تحت VME متاح الآن للتجارب الميدانية" . Unigram/X . 27 سبتمبر 1986. ص 4. تم الاطلاع عليه بتاريخ 22 يوليو 2024 . 
  20. "ICL تُهيئ نظام يونكس تحت VME لشهر سبتمبر" . Unigram/X . 27 يونيو 1987. ص 1. تم الاطلاع عليه بتاريخ 22 يوليو 2024 . 
  21. "ICL تستضيف أنظمة يونكس في إصدار VME الجديد، وتضيف نماذج مصغرة من الحواسيب المركزية 39/80" . Unigram/X . 3 أكتوبر 1987. ص 2. تم الاطلاع عليه بتاريخ 22 يوليو 2024 . 
  22. OpenVME الطريق إلى الأمام (ملف PDF) . شركة International Computers Limited. 1994. ص 2. تم الاطلاع عليه بتاريخ 6 ديسمبر 2024 . 
  23. خيار التوافق بين OpenVME و UNIX (ملف PDF) . شركة International Computers Limited. 1995. الصفحات 2-3 . تم الاطلاع عليه بتاريخ 7 ديسمبر 2024 . 
  24. خوان ف. راميل. "تقدير الجهد المستمر للتطور: دراسة حالة" (ملف PDF) . مؤرشف من الأصل (ملف PDF) بتاريخ 22 مايو 2005. تم الاطلاع عليه بتاريخ 27 أكتوبر 2011 .

مصادر

  • بنية OpenVME . نيك هولت. منشورات ICL رقم 55480001. بدون تاريخ (ربما حوالي عام 1995).