تاريخ عاطفي للمعالجات: IBM / 370

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



يركز هذا الجزء على مقارنة لغة الآلة في الحواسيب المركزية بالأنظمة الأخرى التي كانت شائعة بين السبعينيات والتسعينيات. هذه هي في المقام الأول x86 و 68k و VAX و ARM. تعتبر الأنظمة 390 وخاصة Z مجزأة للغاية - ينصب التركيز الرئيسي على النظام 370.



بدأ شحن أول 360 نظامًا للعملاء في عام 1965 ، وأكثر من 370 نظامًا تقدمًا منذ عام 1970. تحافظ شركة IBM على توافق البرامج مع هذه الأنظمة حتى يومنا هذا! المثير للدهشة ، أنه قبل شحن 390 نظامًا ، كما قد تتخيل منذ عام 1990 ، كانت الحواسيب المركزية تعمل بعناوين 24 بت ، أي أنها لا تستطيع معالجة أكثر من 16 ميغا بايت من الذاكرة ، كما هو الحال ، على سبيل المثال ، 68000 ، صدر في عام 1979 ، 65816أو 32016 تم إصداره في عام 1982. دعم VAX أصلاً عنونة 32 بت. كما أن المعالجات الشهيرة 68020 أو 80386 ، والتي ظهرت في منتصف الثمانينيات ، تدعم أيضًا عناوين 32 بت. في الواقع ، لم تكن سعة الذاكرة البالغة 16 ميجا بايت لأفضل الأنظمة في النصف الثاني من الثمانينيات كافية بالفعل. ومع ذلك ، منذ عام 1983 ، تنتج IBM جهاز كمبيوتر متوافقًا مع 370 جهازًا يمكن ، كملحق ، استخدام 31 رقم عنوان ، مما أدى إلى التخلص من مشكلة الذاكرة لأجهزة الكمبيوتر الأفضل. بشكل غير عادي وفريد ​​، استخدمت هذه الامتدادات و 390 نظامًا عنوانًا مكونًا من 31 بت بدلاً من عنوان 32 بت كامل. في عام 2000 ، أعلنت شركة IBM عن أول نظام Z يستخدم بيانات وعناوين 64 بت. تستخدم أنظمة Z شرائح المعالجات منذ عام 2008. لقد كانوا يحاولون دمج بنية Z منذ عام 2007 في شريحة واحدة مع هندسة POWER، ولكن دون جدوى حتى الآن. حتى الآن ، تمكنت Intel فقط من الجمع بين CISC و RISC في شريحة واحدة - أصبح Pentium Pro في عام 1995 أول شريحة من نوعها.





IBM System / 370-145 مع محرك شريط 2401 وطابعة بدلاً من شاشة ، 1971. قد يكون من المفاجئ عدم وجود عرض في هذا النظام المكلف للغاية على الرغم من حقيقة أن أجهزة التلفزيون تم إنتاجها بكميات كبيرة لأكثر من 20 عامًا.



بالمناسبة ، تعتقد بعض السلطات أن أول جهاز كمبيوتر شخصي تسلسلي كان IBM 5100 ، في الإنتاج منذ عام 1975 ، والذي يمكنه تنفيذ تعليمات النظام 360 من خلال محاكي الأجهزة. تم إنتاج إصدارات محسنة منه حتى منتصف الثمانينيات. كان وانج 2200 هو الأول بالأحرى . بالأسعار (حوالي 10000 دولار) ، من الواضح أن هذه الحواسيب الشخصية الأولى لم تكن للاستخدام المنزلي.





IBM 5100 ، متغير APL



مع ظهور بنية الكمبيوتر الشخصي من IBM ، والتي ، كما اتضح فيما بعد ، حددت الاتجاه الرئيسي لتطوير تكنولوجيا الحوسبة لعقود من الزمن ، حاولت شركة IBM في عام 1983 الجمع بين جميع أفضل تقنيات الكمبيوتر في ذلك الوقت تقريبًا في منتج PC XT / 370 واحد: أنظمة 370 ، IBM PC XT ، Motorola 68000 و Intel 8087. يمكن استخدام XT / 370 هذا كمحطة طرفية ذكية للعمل مع حاسب مركزي ، مثل IBM XT العادي ، أو لتشغيل برنامج حاسب مركزي مباشرة. ومن المثير للاهتمام ، أن XT / 370 أضاف دعمًا لاستخدام الذاكرة الظاهرية ، والتي تطلبت 68000 ثانية. وفي عام 1984 ، مع ظهور PC AT ، تم إصدار نسخة محسّنة من AT / 370 "حاسوب مركزي شخصي" ، والذي كان أسرع بنحو ضعف سرعة XT في وضع حاسب مركزي. / 370. لم ينته تاريخ هذه الأنظمة عند هذا الحد ، حيث تم إنتاج منتجات مماثلة في التسعينيات ، والتي تتوافق مع 390 نظامًا.على حد علمي ، لم يتم القيام بذلك لأنظمة Z.



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



فوجئت بإيجاد نظام IBM 4361 مباشر في LCM! ولكن هناك سبب للاعتقاد بأن هذا قد لا يكون حقيقيا. لسبب ما ، لا يستطيع زوار المتحف الوصول إلى هذا الكمبيوتر. كما أنه ليس من الواضح النموذج الذي يُفترض تقديمه هناك ، وذلك على الرغم من حقيقة أن أجهزة الكمبيوتر الأخرى في المتحف محددة بدقة شديدة. من بين 4361 نظامًا ، هناك ثلاثة نماذج 3 و 4 و 5 معروفة ، وظهر النموذج 3 بعد الطرازين 4 و 5. لكن النظام في المتحف يعرف نفسه على أنه النموذج 1. ومن الممكن أن يكون هذا نموذجًا أوليًا. ومع ذلك ، لم يرد موظفو المتحف على سؤال مباشر حول المساعدة في تحديد الهوية ، وهذا على الرغم من حقيقة أنهم يجيبون بسرعة على أسئلة أخرى وغالبًا ما تكون صعبة. تعطي بعض ميزات توقيت تنفيذ الرموز أسبابًا ، وإن لم تكن قوية تمامًا ، لافتراض أن المحاكي متصل على الأرجح بالشبكة. في الصيف في المتحف ، فيما يتعلق بالفيروس ،من الواضح أنه تحول إلى محاكي ... لا تزال هناك فرصة للوصول إلى الإطارات الرئيسية الحديدية عبر الشبكةHNET ، لكني لم أنجح بعد.



ولكن مهما كان الأمر ، يمكن للجميع الاتصال ومحاولة العمل بنفس الطريقة التي يعمل بها المتخصصون ذوو الأجور المرتفعة منذ منتصف السبعينيات. كانت الأسعار من الصعب تصديقها اليوم. على سبيل المثال ، تكلف ساعة الكمبيوتر أكثر من 20 دولارًا في منتصف الثمانينيات ، ولا يزال يتعين عليك دفع المزيد مقابل مساحة القرص! صحيح ، نحن نتحدث عن وقت تشغيل الجهاز المركزي ، وليس المحطة التي كان العمل يسير من خلالها. لذلك ، على سبيل المثال ، عند تحرير نص من ساعة من العمل الفعلي ، نادرًا ما يستغرق الدفع 5 دقائق. كانت أسعار أجهزة الكمبيوتر المركزية نفسها رائعة أيضًا. على سبيل المثال ، يتذكر موظفو إنتل أنه في أوائل الثمانينيات تم إعطاؤهم جهازًا مركزيًا واحدًا فقط للعمل معه. كان أداؤها 10 MIPS ، وكان السعر حوالي 20 مليون دولار في ذلك الوقت ، وهو ثلاثة أضعاف ما هو عليه اليوم! مثير للإعجاب،أن إنتل تفضل هذه الحواسيب على أنظمة VAX الأرخص ثمناً. الآن حتىإن Raspberry Pi هو حجم حبة دواء وبسعر بضعة دولارات ، ويمكنه بسهولة تقديم أكثر من 1000 MIPS. بالمناسبة ، على Raspberry Pi أو أي كمبيوتر حديث تقريبًا ، يمكنك تشغيل محاكي IBM / 370 ، والذي سيعمل بشكل أسرع من أي نظام IBM من الثمانينيات أو حتى التسعينيات. ومع ذلك ، يجب تكوين المحاكي ولا تتوفر جميع البرامج المفيدة لـ IBM / 370 مجانًا ، لذا فإن الوصول المجاني إلى نظام مضبوط جيدًا غالبًا ما يكون أفضل طريقة للتغلب على الكمبيوتر الرئيسي. والمثير للدهشة أن برامج الوصول هذه ، برامج محاكاة المحطة الطرفية 3270 ، متوفرة حتى على الهواتف المحمولة! بالمناسبة ، تمكنت من إعداد نظام VM / CMS الخاص بي على محاكي Hercules واكتشاف نقل الملفات ، لكن الأمر استغرق أسبوعًا على الأقل.



يمكن لمحاكي Hercules محاكاة أنظمة IBM / 390 و IBM / Z لاحقًا ، ولكن بسبب مشكلات ترخيص البرامج ، يكون القيام بذلك أكثر صعوبة. كتوضيح لمثل هذه المشاكل ، سأستشهد بالحالة الشهيرة عندما أصرت شركة IBM على إزالة قسم المحاكاة من كتاب تم نشره بالفعل! في النسخ الإلكترونية الحديثة من هذا الكتاب ، لا يوجد هذا القسم ؛ يمكن العثور عليه فقط في النسخة المطبوعة أو كملف منفصل على مواقع مخصصة للبرمجيات الحرة. الحقيقة هي أن المحاكاة على أجهزة الكمبيوتر العادية منذ أوائل العقد الأول من القرن الحادي والعشرين يمكن أن تكون أسرع بشكل ملحوظ من التنفيذ على حواسيب كبيرة باهظة الثمن. لذلك اضطرت شركة IBM إلى تغيير تراخيص البرامج الخاصة بها بحيث لا يمكن استخدامها بشكل قانوني إلا على الأجهزة المشتراة من شركة IBM. بالطبع نحن لا نتحدث عن أن المحاكيات أسرع من أفضل الحواسيب الكبيرة ،تظهر فقط نسبة أداء أفضل إلى التكلفة بشكل ملحوظ.



إحدى طرق العمل مع أنظمة Z أو 390 هي تثبيت Linux على محاكي لتلك الأنظمة. بالنسبة لـ 390 و Z ، تتوفر على الأقل توزيعات Ubuntu و Debian. من الجدير بالذكر هنا أن التطور السريع لنظام Linux يرجع إلى حد كبير إلى الدعم الكبير من شركة IBM. على وجه الخصوص ، استثمرت شركة IBM في عام 2001 مليار دولار في تطوير Linux.



دعونا ننظر الآن في ميزات لغة الآلة للأنظمة المتوافقة مع 360. ويطلق على المجمع الأساسي لهذه الأنظمة BAL - لغة التجميع الأساسية. المثير للدهشة ، وفقًا للشائعات حول IBM ، أن لغة التجميع لا تزال واحدة من لغات البرمجة الرئيسية العاملة هناك.



يحتوي مُجمّع الإطارات المركزية قيد الدراسة على عدد من الميزات القديمة التي كانت غائبة بالفعل في الأبنية الأخرى المعروفة التي ظهرت لاحقًا. على سبيل المثال ، تقول أن فن الإستذكار BAL يحدد نوع الحجج. النظر إلى x86 تعليمات المجمع كمثال MOV EAX,EBXو MOV EAX,address- على حد سواء استخدام ذاكري MOV. بالنسبة إلى BAL ، في مثل هذه الحالات ، يتم استخدام فن الإستذكار LR و L في الأوامر ، على التوالي ، LR 0,1وL 0,address... ومع ذلك ، فإن فن الإستذكار المختلف المتشابه يسمح باستخدام الأرقام لتسمية السجلات ، على الرغم من أن وحدات الماكرو R0 ، R1 ، ... بدلاً من الأرقام 0 ، 1 ، ... هي أول شيء يتم تحديده في حزم الماكرو لتسهيل البرمجة. عفاقة أخرى هي استخدام قفزات التسمية في تركيبات الترجمة الشرطية ، على الرغم من أن هذا في رأيي المتواضع يكون في بعض الأحيان أكثر ملاءمة من هياكل الكتلة. لكن أشهر العصور القديمة هو استخدام ترميز EBCDIC للعمل مع المعلومات الرمزية. في هذا الترميز ، الغريب حتى يوم أمس ، لم يتم ترميز أحرف الأبجدية الإنجليزية على التوالي ، على سبيل المثال ، الحرف I به رمز 201 ، والحرف J التالي هو 209! يأتي هذا الترميز من تقنيات للعمل مع البطاقات المثقوبة التي نشأت في عصر ما قبل الكمبيوتر. يدعم System 360 أيضًا ASCII في الأجهزة ، ولكن في نسخته القديمة والتي نسيتها منذ زمن طويل ،حيث يكون رمز الرقم 0 80 ، وليس 48 كما هو الآن. بقدر ما أعرف ، كان من الأفضل عدم محاولة استخدام ASCII مع حواسيب IBM المركزية. تمت إزالة دعم ASCII بالفعل في 370 نظامًا ، ولكن تم تقديمه إلى مستوى جديد في 390 نظامًا. بعض فن الإستذكار BAL مدهش في قصرها الفائق وحتى عدم نيمونيتها ، على سبيل المثال ، تعني N AND ، O - OR ، X - XOR ، A - ADD ، S - SUBTRACT ، M - تتضاعف، ...



يتيح لك مُجمع BAL العمل مع ثلاثة أنواع أساسية من البيانات: الأرقام الثنائية والعشرية والحقيقية. 390 نظامًا يستخدم نوعًا خاصًا آخر للعمل مع الأرقام الحقيقية. يمكن لبعض أنظمة Z أيضًا استخدام بيانات فريدة تمامًا مثل الأرقام الحقيقية العشرية. تشكل تعليمات العمل مع كل نوع فئة تعليمات خاصة ومعزولة نوعًا ما. بشكل عام ، مع استثناءات قليلة جدًا ، تدعم جميع الأنظمة المتوافقة مع 360 التعليمات الحسابية العشرية والحقيقية. كما تعلم ، بالنسبة إلى معماريات x86 أو 68k ، لم يظهر دعم العمل بأرقام حقيقية على الفور ولفترة طويلة كان خيارًا اختياريًا ، ولم يكن العمل بالأرقام العشرية شيئًا منفصلاً تمامًا عن الحساب الثنائي - بل كان امتدادًا.



للعمل مع الأرقام الحقيقية والثنائية ، يتم استخدام مجموعات مختلفة من السجلات ، وللعمل مع الأرقام العشرية ، لا يتم استخدام السجلات على الإطلاق. يوفر النظام 370 16 تسجيلًا للأغراض العامة 32 بت للأعداد الصحيحة الثنائية ، مع كون عداد البرنامج جزءًا من كلمة حالة المعالج. لا يوجد مكدس منفصل ، يمكن تنظيمه باستخدام أي سجل - هذه هي الطريقة التي تم بها تنفيذ العمل مع المكدس لاحقًا في ARM. يتم إجراء مكالمة الروتين الفرعي أيضًا كما هو الحال في ARM ، من خلال سجل الارتباط. تكون جميع السجلات قابلة للتبديل دائمًا تقريبًا ، والاستثناءات نادرة جدًا. إذا قارنت نظام التسجيل الثنائي BAL بهندسة VAX التنافسي ، فستلاحظ أن VAX لديه سجل واحد أقل. هذا صحيح بالنسبة لـ ARM أيضًا.



سيبدو هيكل المعاملات في التعليمات مألوفًا إلى حد ما لأولئك الذين يعرفون مجمّع x86. بالنسبة للأرقام الثنائية ، فإن المعاملات لها بنية تسجيل أو ذاكرة تسجيل ، وفي الحالة الأخيرة ، يمكن تحميل قيم 32 بت و 16 بت القابلة للتوسيع من الذاكرة. على سبيل المثال، التماثلية للالتعليمات x86 ADD EAX,EBXسيكون AR 0,1، ADD EAX,address- A 0,address، ADD EAX,address[EBX]- A 0,address(1)، ADD EAX,address[EBX][EDX]- A 0,address(1,3). ومع ذلك ، لا تعرف أنظمة 360 وحتى تطويرها اللاحق كيفية العمل مع القياس ، على سبيل المثال ، ADD EAX,address[8*EBX]لا يمكنك الكتابة إلى BAL بأمر واحد. من ناحية أخرى ، لا يعرف x86 كيفية العمل مع امتدادات موقعة 16 بت ، على سبيل المثال ، أمر BALAH 0,address، وهو ما يعني أخذ رقم موقع 16 بت من الذاكرة وإضافته إلى محتويات السجل 0 ، على x86 يتطلب تعليمتين للتنفيذ.



من الميزات النادرة لـ BAL وجود تعليمات منفصلة للجمع والطرح للأرقام الموقعة وغير الموقعة ، وتسمى العمليات غير الموقعة في BAL منطقية. سبب هذه الغرابة هو عدم وجود أعلام في بنية 360 مألوفة لمعظم البنى الأخرى. بدلاً من ذلك ، يتم استخدام بتين فقط ، يتم تعيينهما بشكل مختلف بواسطة تعليمات مختلفة! الاختلاف الوحيد بين العمليات الموقعة وغير الموقعة هو أنها تعيّن بتات السمة المذكورة بشكل مختلف. بالنسبة للعمليات الموقعة عليها ، يمكنك معرفة ما إذا كانت النتيجة صفرًا ، وما إذا كانت موجبة أم سلبية ، وما إذا كان قد حدث تجاوز التدفق ، وللعمليات غير الموقعة ، وما إذا كانت النتيجة صفرًا وما إذا كان قد حدث تحويل أو اقتراض. تسمح تعليمات الفرع الشرطي لجميع المجموعات الفرعية الـ 16 من الحالات الممكنة مع 2 بت.بسبب هذا العمل غير المعتاد مع علامات التشغيل اليوم ، يصعب فهم تعليمات القفز الشرطي بسرعة. على الرغم من أن ملحقات BAL عادةً ما تضيف وحدات ماكرو سهلة القراءة للقفزات الشرطية ، حيث لا تحتاج إلى تحليل كل من البتات الأربعة. هنا ، من أجل الإنصاف ، يمكنك أن ترى أن هناك أوامر منفصلة للإضافة والطرح الموقعة وغير الموقعة ، على سبيل المثال ، في هندسة MIPS ، حيث لا توجد علامات على الإطلاق!على سبيل المثال ، في هندسة MIPS ، حيث لا توجد أعلام على الإطلاق!على سبيل المثال ، في هندسة MIPS ، حيث لا توجد أعلام على الإطلاق!



توجد ميزة أخرى نادرة في أوامر منفصلة للمقارنات الموقعة وغير الموقعة. قابلت أشخاصًا مشابهين ليس فقط في MIPS ، ولكن أيضًا في MicroBlaze. في الأخير ، بالمناسبة ، النقل هو العلم الوحيد المدعوم لأعلام العملية.



في الأنظمة المتوافقة مع IBM 360 ، لا توجد عمليات حسابية بعلامة الحمل ، لذلك إذا احتجنا إلى العمل بأرقام ثنائية ، على سبيل المثال ، بأرقام 128 بت ، فيجب علينا التحقق من علامة الحمل بعد إجراء عمليات 32 بت الأولى لتنظيم الجمع أو الطرح. وإجراء الانتقال إذا لزم الأمر. هذا ، بالطبع ، مرهق للغاية مقارنةً بـ x86 أو ARM أو 68k أو حتى 6502 ، ولكن في MIPS الأحدث كثيرًا يكون الأمر أكثر تعقيدًا. تم العمل العادي مع النقل فقط في نظام Z.



لا توجد تحولات دورية في BAL ، لكن التحولات غير الدورية ، كما في x86 ، يمكن أن تكون مفردة أو مزدوجة. ومع ذلك ، يحتوي BAL على تعليمات تحويل منفصلة للأرقام غير الموقعة والموقعة ، فقط الأعلام التي تم تعيينها مؤخرًا. من الواضح أن نتائج التحولات لليسار لكلتا الحالتين تختلف فقط في الأعلام. تمت إضافة الدورات إلى 390 نظامًا فقط.



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



يمكن لجميع العمليات الحسابية الموقعة ، بما في ذلك التحولات ، طرح استثناء تجاوز السعة. يتم تحديد ما إذا كان قد تم طرح استثناء أم لا بواسطة علامة قناع خاصة في سجل الحالة. من المثير للاهتمام ، أن القسمة الثنائية والضرب في BAL لا يؤثران على الأعلام على الإطلاق - هنا يمكنك تذكر x86 ، حيث تفسد القسمة الأعلام فقط.



يتم تمثيل العمليات المنطقية على مستوى البت في BAL بالمجموعة المعتادة من AND ، OR ، حصري OR ، أي أنه لا توجد عملية نفي منفصلة. لا يمكن للعمليات المنطقية أن تحتوي فقط على بنية تسجيل - تسجيل أو ذاكرة تسجيل ، ولكن أيضًا "ذاكرة ثابتة" أو "ذاكرة - ذاكرة" - طريقة العنونة الأخيرة مشابهة لتلك المستخدمة للأرقام العشرية. لا يمكن تحديد نوع "ذاكرة ثابتة" إلا للعمل بالبايت. من الواضح ، بالنسبة للعمليات المنطقية ، على عكس العمليات الحسابية ، أن استخدام أرقام 16 بت أمر مستحيل. لعنونة الذاكرة إلى الذاكرة ، يمكنك العمل مع بيانات تصل إلى 256 بايت! اتضح أن لدينا ثلاثة أنواع من البيانات للعمل مع العمليات المنطقية: بايت ، كلمات 32 بت ، متواليات من البايت - وإرشادات خاصة لكل نوع من هذا النوع ، وهو نوعًا ما غير عالمي.



العمليات المنطقية في BAL مجاورة لعمليات نقل البايت. بالإضافة إلى النقل المعتاد لما يصل إلى 256 بايت بأمر واحد ، هناك أيضًا تعليمات فريدة لنقل رباعي البايت. يمكنك فقط إرسال النصفين العلوي أو السفلي من البايت ، بينما يحتفظ النصف الآخر بقيمته أثناء النسخ! هناك حاجة لمثل هذه العمليات الغريبة لدعم ميزات BAL عند العمل مع المعلومات الشخصية والعشرية. توجد أيضًا تعليمات إعادة توجيه ومقارنة لـ 370 نظامًا لما يزيد عن 16 مليون بايت في المرة الواحدة ، والتي يمكن مقاطعتها. من المثير للدهشة أنه لا يمكن مقاطعة الأوامر البطيئة للعمل مع كتل تصل إلى 256 بايت ، مما قد يؤدي إلى تأخير غير سار في الاستجابة لطلب المقاطعة. يمكن أيضًا استخدام أوامر النقل لملء الذاكرة ببايت محدد.بالإضافة إلى النقل من الذاكرة إلى الذاكرة ، يمكنك أيضًا تعيين وحدات البايت الفردية على قيمة معينة. من الواضح أن إرشادات نقل البايت ، بصرف النظر عن الإرشادات الجديدة لـ 390 و Z ، هي أكثر تقدمًا بالنسبة إلى x86.



في السجل ، لا يمكنك تحميل القيمة على العنوان المحدد فحسب ، بل يمكنك أيضًا تحميل العنوان نفسه ، كما هو الحال في أوامر LEA لـ x86 أو 68k. تتيح لك هذه الميزة أيضًا تحميل الثابت المطلوب مباشرةً في السجل ، على الرغم من أن الحد الأقصى لقيمته لا يمكن أن يكون أكبر من 4095. كما تسمح لك بزيادة السجل بما لا يزيد عن 4095. ولكن لا يمكن إجراء تناقص السجل إلا بمقدار 1. كل من الزيادة والنقصان - هذه أوامر عنوان ، لذا فهي لا تغير العلامات. يمكنك تحميل وحدات البايت الفردية وحتى مجموعات البايت من كلمة في الذاكرة في السجل ، على سبيل المثال ، البايت الأول والثالث فقط - وهذا ممكن لجميع الأبنية 32 بت الأخرى المعروفة لي فقط من خلال سلسلة من 4 أوامر. وبالمثل ، يسمح BAL فقط بإلقاء أجزاء من السجل في الذاكرة.



سلسلة تعليمات BAL متخصصة جدًا - في البنى الأخرى ، يتم تنفيذها من خلال سلسلة من التعليمات الأبسط. على سبيل المثال ، تسمح لك تعليمات TR بتحويل سلسلة أحرف - تحدد إحدى الوسيطة السلسلة المراد تحويلها ، والأخرى عنوان جدول التحويل. يمكن استخدام نوع خاص من هذه التعليمات ، TRT ، لمسح سلسلة معينة وتخطي الأحرف الفارغة - هذه هي وظيفة استدعاء ستربوس القياسي C. تعليمات ED و EDMK فريدة تمامًا - فهي تتمتع بوظيفة العدو البدائي! ومع ذلك ، فإن جميع عمليات السلسلة تقريبًا لها قيود على الحد الأقصى لطول السلسلة ، لا يزيد عن 255 بايت ، مما يقلل بشكل كبير من قوتها.



في BAL ، من الصعب العمل بقيم غير موقعة ذات 16 بت بسبب نقص أوامر الاستدارة أو نوع SWAP. مع 390 نظامًا ، تم تحسين هذه المشكلة. تم إهمال بعض تعليمات BAL ، على سبيل المثال تم استبدال تعليمات MVO nibble shift بـ SRP الأكثر ملاءمة. بالنسبة لعمليات نقل ومقارنات الكتل ، من الأفضل استخدام التعليمات الجديدة ، على الرغم من حقيقة أنها تستخدم طريقة مختلفة في المعالجة ، فقد يكون هذا في بعض الحالات النادرة دون المستوى الأمثل.



كانت هناك بالفعل أمثلة على أوضاع العنونة الأساسية الأربعة BAL. يوجد أيضًا خامس لأوامر من ثلاثة عناوين. لا تتوفر أوضاع مثل VAX أو 68k أو PDP-11 أو حتى 6809 أو أوضاع الزيادة التلقائية أو الإنقاص في BAL. لا توجد أيضًا أوضاع DID مثل VAX أو 68020 أو PDP-11. وبالطبع ، فإن BAL ، على عكس مجمعات VAX أو PDP-11 ، غير متعامدة تمامًا. BAL هو الأقرب إلى مجمعي x86 و ARM ، أكثر البنى الحديثة نجاحًا. ترتيب المعاملات في BAL من اليمين إلى اليسار هو نفسه كما هو الحال في مجمع Intel لـ x86 أو في مجمع ARM ، وبالتالي ، ليس مثل VAX أو PDP-11 أو 68k. على الرغم من أن ترتيب البايت في البيانات في BAL يتراوح من كبير إلى ثانوي (MSB) ، والذي يختلف عن x86 أو ARM أو VAX ، إلا أنه يتوافق مع المستوى المقبول لـ 68 كيلو أو MIPS.



يتم تنفيذ العمليات ذات الأرقام العشرية في BAL فقط من خلال معالجة ذاكرة إلى ذاكرة. يمكن تحديد الأرقام العشرية في مجموعات ذاكرة تصل إلى 16 بايت ، مما يسمح باستخدام أرقام تصل إلى 31 منزلاً عشريًا. هذا يتوافق مع دقة رقم ثنائي 107 بت. وبالتالي ، فإن أحدث أنظمة البرمجة التي تستخدم الأعداد الصحيحة الثنائية فقط هي التي يمكنها التعامل مع قيم أكبر من 360 نظامًا منذ 60 عامًا تقريبًا! بالطبع ، من الممكن تطبيق أعداد كبيرة بشكل تعسفي من خلال الحساب الثنائي ، ولكن لسبب ما حتى وقت قريب لم تكن هناك لغات برمجة شائعة تدعم أرقامًا أكبر من النظام القديم 360. حتى الآن ، عادةً ما يكون دعم الأعداد الصحيحة 128 بت لـ x86 مجرد امتدادات غير رسمية ، مثل GCC.



يتم تمثيل الأرقام العشرية على BAL بشكل فريد ، ويجب تخزين العلامة - لا يوجد شيء من هذا القبيل لـ VAX ، x86 ، 68k ، ... علاوة على ذلك ، يتم تخزين العلامة في البايت الأخير من تمثيل الرقم! بالنسبة للأرقام العشرية ، يتمتع BAL بدعم مباشر لجميع العمليات الأساسية: الجمع والطرح والضرب وحتى القسمة - وهذا أيضًا غير موجود في أي بنية أخرى أعرفها. بالإضافة إلى ذلك ، يوفر BAL أيضًا إرشادات لنسخ ومقارنة وتحويل الأرقام العشرية. تم تصميم تعليمات MVO و SRP المذكورة أعلاه لمثل هذه التحولات فقط. لا يمكن إجراء العمليات إلا على الأرقام العشرية المعبأة ، ولكن لطباعتها ، يجب تفريغها ، ولتمثيل الأرقام غير المعبأة في BAL ، يلزم أيضًا وجود علامة ، والتي في هذه الحالة لا تشغل مساحة ، حيث يتم وضعها في المربع العلوي ، مما يتطلب عملاً خاصًا مع هذا دفتر قبل الطباعة.من الغريب أن عمليات الملاكمة وإلغاء العبوة يمكن أن تعمل فقط مع عدم ضغط أكثر من 16 بايت من الرقم العشري ، مما يسمح باستخدام أرقام 15 بت فقط معهم. يمكن حل هذه المشكلة غير السارة باستخدام ED أو EDMK لإرشادات التفريغ ، ولكن يجب أن يتم تعبئة عدد كبير غير معبأ من خلال تسلسل غير بسيط من التعليمات. تمت إضافة تعليمات جديدة إلى 390 نظامًا لمعالجة هذه المشكلة. من الغريب أن تعليمات التعبئة والتفريغ تعمل مع أي بيانات ثنائية ، وليس فقط عشري.يمكن حل هذه المشكلة غير السارة باستخدام ED أو EDMK لتعليمات التفريغ ، ولكن يجب أن يتم تعبئة عدد كبير غير معبأ من خلال تسلسل غير بسيط من التعليمات. تمت إضافة تعليمات جديدة إلى 390 نظامًا لمعالجة هذه المشكلة. من الغريب أن تعليمات التعبئة والتفريغ تعمل مع أي بيانات ثنائية ، وليس فقط البيانات العشرية.يمكن حل هذه المشكلة غير السارة باستخدام ED أو EDMK لإرشادات التفريغ ، ولكن يجب أن يتم تعبئة عدد كبير غير معبأ من خلال تسلسل غير بسيط من التعليمات. تمت إضافة تعليمات جديدة إلى 390 نظامًا لمعالجة هذه المشكلة. من الغريب أن تعليمات التعبئة والتفريغ تعمل مع أي بيانات ثنائية ، وليس فقط عشري.



يحتوي BAL على تعليمات فريدة خاصة تسمح لك بتحويل رقم ثنائي إلى رقم عشري معبأ والعكس صحيح دفعة واحدة. بالنسبة للرقم العشري في هذه التعليمات ، يتم دائمًا تخصيص 8 بايت ، أي 15 رقمًا وعلامة. ومع ذلك ، فإن سجل 32 بت يكفي فقط لتمثيل رقم موقّع مطابق لرقم عشري مكون من 9 أرقام ، لذلك لا يمكن تحويل كل رقم عشري بتنسيق BAL الصحيح إلى ثنائي في أمر واحد. بالنسبة لأنظمة Z ، هناك تعليمات موسعة لمثل هذه التحويلات.



تختلف تعليمات الانتقال في BAL من حيث أنها ، كقاعدة عامة ، مقترنة - يمكن تعيين عنوان الانتقال بشكل صريح ومحتويات السجل - في العديد من البنى الأخرى ، تكون القفزات على طول محتويات السجل للقفزات غير المشروطة فقط. بالمناسبة ، لا توجد قفزات غير مشروطة في BAL ، يتم تنفيذها عن طريق تعيين حالة حقيقية دائمًا ، والتي تشبه بنية ARM. يحتوي التفرع الشرطي في BAL ، كما هو مذكور ، على بناء جملة فريد. ضع في اعتبارك ، على سبيل المثال ، التعليماتBT 9,address، مما يعني إجراء قفزة إذا تم استيفاء الشرطين 0 و 3 ، ولكن الشروط بعد أوامر مختلفة تعني أشياء مختلفة. على سبيل المثال ، بعد الإضافة الموقعة ، تعني هذه الشروط "النتيجة هي 0 أو حدث تجاوز" ، وبعد إضافة غير موقعة ، "تكون النتيجة 0 ولم يكن هناك حمل ، أو النتيجة ليست 0 وكان هناك حمل". على الرغم من الإرهاق وبعض التكرار ، يجب الاعتراف بأن مثل هذا النظام للعمل مع ظروف التحولات ربما يكون الأكثر مرونة من بين كل الأنظمة المعروفة. يتم استخدام التسعة في الأمر من المثال في التمثيل الثنائي 1001 ، أي أنه يحدد أرقام البت - يستخدم النظام نفسه أيضًا جميع مجموعات الشروط ذات 4 بتات في ARM. بالإضافة إلى القفزات الشرطية ، يحتوي BAL أيضًا على قفزات عكسية مع تناقص ، تقريبًا كما هو الحال في المجمعات Z80 ، x86 ، 68k ، PDP-11 ، ... لكن BAL لديه أيضًا تعليمتان فريدتان تمامًا للقفزات ،والتي ، اعتمادًا على رقم واحد من معامِلات السجلات ، يمكن أن تكون ثلاثة أو أربعة عناوين! في هذه الأوامر الفريدة ، يتم إضافة سجلين معًا ومقارنة المجموع الناتج بمحتويات سجل آخر ، ونتيجة هذه المقارنة هي تحديد ما إذا كان يجب القفز أم لا. يعتقد أن مثل هذه التعليمات غير العادية مفيدة للعمل مع طاولات القفز.



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



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



في البداية ، لم يكن لدى BAL انتقالات نسبية قابلة للنقل مثل Z80 أو x86. تمت إضافتهم فقط إلى 390 نظامًا.



الأوامر SPM و TM و TS و STCK و STPT هي أيضًا غير عادية إلى حد ما. أولهما يسمح لأمر واحد بتعيين جميع إشارات العملية وقناع الاستثناء الاختياري. يسمح لك الأمر TM بفحص مجموعة من البتات وتحديد ثلاث حالات: جميع الأصفار ، وكل الآحاد ، ومزيج من الأصفار والآحاد. لا يمكن إجراء هذا الفحص بأمر واحد في أبنية أخرى. ومع ذلك ، فإن ذاكرة الترجمة تعمل فقط مع وحدات البايت الفردية في الذاكرة. يتم استخدام TS عند العمل مع معالجات متعددة - هناك أمر مشابه لـ 68k. تقرأ تعليمات STCK قيمة المؤقت الخارجي (!) ، وتقرأ تعليمات STPT قيمة المؤقت الداخلي المدمج في دائرة المعالج. غريب ، لكن STPT لها امتياز ، لكن STCK ليست كذلك.



وتجدر الإشارة أيضًا إلى تعليمات CS و CDS ، والتي تهدف إلى دعم أعمال المعالجة المتعددة. لقد تم تنفيذها على 370 نظامًا ، أي أنها كانت متوفرة منذ أوائل السبعينيات. في x86 ، تم تنفيذ التناظرية لـ CS ، التعليمات CMPXCHG ، في موعد لا يتجاوز عام 1987 ، وتم تنفيذ نظير CDS ، التعليمات CMPXCHG8B ، فقط في عام 1994!



من بين 370 نظامًا ، تم تقديم أمر التعريف الذاتي لنظام STIDP ، وهو مميز وغير مفيد للغاية. بالنسبة إلى الإصدار x86 ، أصبح هذا الأمر أكثر قوة. يمكنك أيضًا ملاحظة أن IBM 4361 في LCM يسمح لأي مستخدم بتنفيذ STIDP. من الواضح أن هذا هو محاكاة الاستثناء.



تحدد أوضاع BAL الأربعة القابلة للتوجيه عاملين للتعليمات ، بينما يحدد الوضع الخامس أوامر ثلاثية العناوين. ومع ذلك ، فإن تجاهل بعض المعلومات يسمح لك بالحصول على أوامر أحادية الإرسال ، واستخدام المعلومات الضمنية يسمح لك بالحصول على أربعة أوامر عناوين. عند استخدامه في العنونة ، يلعب السجل 0 دورًا خاصًا: يتم تجاهله ببساطة هناك - وهذا يسمح لك بتجاهل القاعدة والفهرس عند حساب العنوان. جميع تعليمات BAL بدقة 2 أو 4 أو 6 بايت. يبدو أنه 68000 أو PDP-11 ، لكن ليس x86 أو VAX أو ARM.



تمت إضافة العديد من أوضاع العنونة إلى نظام 390 ، ليصل عددها إلى 18. كما زاد عدد التعليمات بشكل كبير ، ومن بين الإرشادات الجديدة ، هناك حتى تلك التي تدعم Unicode - لا يوجد شيء من هذا القبيل لـ x86! من بين التعليمات الجديدة لـ 390 نظامًا ، هناك أنظمة أخرى فريدة. تمت إضافة العديد من أوضاع العنونة إلى نظام Z ، والعدد الإجمالي لأوامر Z الحديثة كبير جدًا وربما أكثر من عدد أوامر x86-64 الحديث!



في الأنظمة 360 و 370 و 390 ، تكون الإزاحات عند الوصول إلى البيانات الموجودة في الذاكرة ، كما هو الحال في ARM ، 12 بت ، أي ليس أكثر من 4095 ، وهي ليست مريحة للغاية - في الرموز الكبيرة ، قد يكون هناك نقص في السجلات للقاعدة. في x86 ، يكون هذا الإزاحة 16 بت ، وهو بالطبع أكثر ملاءمة. لكن نظام Z أضاف دعمًا لعنونة الإزاحة 20 بت ، وهو بالطبع أفضل. على الرغم من أنه من الجدير بالذكر أنه في x86-64 أو حتى 68020 يمكن أن يكون الإزاحة 32 بت. كما لوحظ ، لم يكن لدى أنظمة ما قبل 390 ، مثل ARM ، القدرة على استخدام ثوابت كبيرة عند العمل مع السجلات. هندسة x86 أكثر مرونة هنا. لذلك ، عند استخدام المجمّع بنظام 360 أو 370 ، كان من الضروري في كثير من الأحيان استخدام ثوابت حرفية ، وثوابت زائفة ، وهي أبطأ إلى حد ما.



من حيث الأداء ، كانت الأنظمة المتوافقة مع IBM / 360 تتمتع دائمًا بمؤشرات جيدة. تجربتي مع 4361-1 ، ولا سيما في المشروعأظهرت حسابات الرقم π بواسطة خوارزمية الغالق توقيتًا جيدًا جدًا. تعمل التعليمات 4361-1 بدون تأخير تقريبًا مثل ARM أو المعالجات الحديثة الأخرى. ومع ذلك ، نظرًا لنظام التعليمات المحرج إلى حد ما الموروث من الستينيات ، على وجه الخصوص ، بسبب عدم التقسيم بواسطة مقسم 16 بت ، فقد تبين أن النتيجة من حيث كفاءة إلكترونيات المعالج كانت عند مستوى 80186. وهذا أسوأ بحوالي 80٪ من النتيجة ، تم عرضه بواسطة أفضل حاسب VAX ، طراز 785. ومع ذلك ، من الواضح أن الكمبيوتر الرئيسي في LCM ليس الأفضل بين حواسيب IBM المركزية المتاحة في ذلك الوقت. من المهم أيضًا أن نلاحظ هنا أن الحواسيب المركزية تستخدم القنوات والمعالجات المتخصصة التي جعلت الإدخال / الإخراج سريعًا جدًا وأسرع بكثير من معظم أجهزة الكمبيوتر الحديثة.



كطالب ، صادف أن أعمل مع نسخة محلية من IBM / 370 ، EC-1045 ، في عام 1987 من خلال وضع الدُفعات ، وفي عام 1989 من خلال الحوار. بالنسبة لوضع الدُفعات ، يجب إعداد البطاقات المثقوبة. في ذلك الوقت ، استخدمت بالفعل جهاز كمبيوتر منزلي ، وبالتالي فإن استخدام البطاقات المثقوبة القديمة لم يترك أفضل انطباع. لكن الوضع التفاعلي لم يكن سيئًا ، فقد تعطل غالبًا ، مع وجود عدد كبير من المستخدمين. لذلك ، جاء بعض الطلاب للعمل بحلول الرابعة صباحًا! منذ ذلك الحين ، لم أتمكن من التعامل مع الحواسيب المركزية بعد الآن ، قررت مؤخرًا فقط التعامل مع هذه التقنية البارزة لتاريخ أجهزة الكمبيوتر من خلال المحاكاة.



كان استنساخ IBM 360 شائعًا للغاية. تم صنع النسخ في إنجلترا وألمانيا واليابان وشركات أخرى في الولايات المتحدة الأمريكية. في اتحاد الجمهوريات الاشتراكية السوفياتية ، أخذ هذا الاستنساخ دلالة مثيرة للغاية. من أجل هذا الاستنساخ ، تم طي جميع التطورات المحلية تقريبًا في مجال تكنولوجيا المعلومات ، وكان بعضها واعدًا للغاية. على وجه الخصوص ، تم إغلاق موضوع أجهزة الكمبيوتر في الأورال ، والذي تحدث عنه عالم الكمبيوتر الشهير تشارلز سيموني لاحقًا بحرارة . تم إغلاق مشروع BESM-10 أيضًا ، على الرغم من أن آلات فئة BESM-6 السابقة كانت قابلة للمقارنة مع IBM 360 من حيث السرعة. أيضًا ، من أجل هذا الاستنساخ ، تم إحباط عقد شبه مُبرم مع شركة ICL ، ربما مع هذا العقد اكتسبت صناعة تكنولوجيا المعلومات البريطانية ديناميكية جديدة ولم تكن لتتراجع. أجهزة الكمبيوتر العملاقة فقطنجا Elbrus ، ربما بسبب صلاتهم بصناعة الدفاع ، من "Clone Invasion" ، الذي وصفه Dijkstra بأنه أعظم انتصار أمريكي في الحرب الباردة.



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



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



بالإضافة إلى أجهزة الكمبيوتر من بنية IBM / 360 ، كانت هناك حواسيب رئيسية أخرى. في الستينيات ، تلقى مصنعو الحواسيب المركزية الأمريكية بشكل غير رسمي الاسم الرنان سنو وايت والأقزام السبعة. ربما يكون من السهل تخمين أن Snow White كانت IBM. كما تم إنتاج إطارات رئيسية من البنى الأصلية في بلدان أخرى. وتجدر الإشارة بشكل خاص إلى العمارة البريطانية ICL 1900.



كما كتبت بالفعل ، تمكنت من إعداد تكوين عمل لـ VM / CMS 6. ومع ذلك ، اتضح أن محرر XEDIT ليس متاحًا مجانًا ، وأن التحرير البسيط غريب جدًا وغير مريح ، لذلك عليك تحرير النصوص على المضيف. كما تم اكتشاف عدم توفر برنامج قياسي لنقل الملفات من المحاكي الطرفي إلى الكمبيوتر الرئيسي والعكس بالعكس ، مما يتطلب استخدام بطاقات مثقبة افتراضية لمثل هذا النقل. ظهرت مفاجأة أخرى غير سارة فيما يتعلق بتصحيح الأخطاء. الأمر DEBUG لا يدعم الخطو! في حين أن مثل هذا الاحتمال كان حتى بالنسبة لمصحح أخطاء DDT للمعالج 8080. من المدهش أيضًا ، على الرغم من أنه أقل أهمية ، أن DEBUG لا يعرف كيفية القيام بالتفكيك ، والذي تم تضمينه غالبًا حتى في أبسط الشاشات في معالجات السبعينيات.لا يتم دعم التفاف الأسطر الطويلة وأحرف التحكم في نهاية السطر عند المستوى المنخفض ضمن CMS! لذلك ، عند الطباعة من برامج لغة التجميع ، تحتاج إلى تنسيق الأسطر يدويًا بحيث لا تختفي خارج الحافة اليمنى للشاشة ، وتهتم أيضًا بملء السطر الأخير بمسافات التشطيب. ومن غير المعتاد أيضًا عدم وجود التمرير العمودي التلقائي.



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



بشكل عام ، من غير المتوقع إلى حد ما أن بعض أنظمة التشغيل المعروفة التي تم استخدامها على أجهزة كمبيوتر باهظة الثمن لم تدعم العمل مع أدلة الملفات ، والتي كانت تعادلها مع أنظمة التشغيل الأولى والبدائية لأجهزة الكمبيوتر الصغيرة ، على سبيل المثال ، CP / M أو Commodore DOS. ليس من قبيل المصادفة أن يطلق على CMS أحيانًا اسم CP / M للحواسيب المركزية. من المثير للدهشة ، على حد علمي ، أن دعم الكتالوجات في CMS لم يتم تقديمه أبدًا ، على الرغم من أن الإصدار الأخير من النظام يعود إلى عام 2018. لسبب ما ، كان العمل باستخدام كتالوجات لأجهزة الكمبيوتر باهظة الثمن غالبًا ما يكون مدعومًا بشكل سيئ قبل الثمانينيات. على سبيل المثال ، لم يكن هناك مثل هذا الدعم في DEC RT-11 وحتى أحد أفضل أنظمة التشغيل لـ PDP-11 ، RSX-11، فقط الدلائل ذات المستويين المعتمدة. كان نظام التشغيل IBM OS الأكثر شيوعًا حتى عام 2000 هو MVS (1974) وحتى هنا تم إعداد الكتالوجات جزئيًا فقط ، كما هو الحال في Apple MFS (1984). على الرغم من أنه في Unix (1973) ، MS-DOS (منذ 1983) أو حتى 8 بت Apple ProDOS (1983) ، كان هذا جيدًا منذ البداية. تم تقديم معالجة الملفات الأكثر تقدمًا في VAX / VMS (1977) ، حيث يوجد بالإضافة إلى الدلائل دعم مدمج لإصدار الملفات.



ومن المثير للاهتمام ، أن لغة البرمجة النصية الخاصة بـ CMS و MVS وبعض أنظمة تشغيل IBM الأخرى ، REXX ، أصبحت نسخة مختصرة من لغة الملفات الدفعية لـ Commodore Amiga.



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



عرض ديناميكي ، تم إطلاقه على المحاكي IBM 4381 في LCM ، المحطة 3270-3



في الختام ، لا يسعني إلا التعبير عن إعجابي بتقنيات IBM. لطالما تميزوا بأصالتهم الفريدة ومستواهم العالي. أود بشكل خاص أن أشير إلى الجودة العالية جدًا للوثائق ، والمتاحة للجمهور حتى للأنظمة الحديثة. تُظهر شركة IBM ديناميكية هائلة في تطوير التكنولوجيا ، على الرغم من كونها واحدة من أكبر الشركات في العالم. من حيث عدد الموظفين ، يكاد يساوي Microsoft و Google و Intel مجتمعة!



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



هذه المواد متوفرة أيضًا باللغة الإنجليزية .



All Articles