بنية نظام التشغيل لأجهزة الكمبيوتر المتوافقة مع ZX Spectrum

NedoOS هو نظام تشغيل متعدد المهام لـ "Russian ZX Spectrum" مع بيئات برمجة لغة التجميع ، Basic ، Pascal ، C ، NedoLang. يعمل على TR-DOS و FAT16 و FAT32 بأسماء طويلة ، ويدعم tar و gz و zip و rar2 وتقريبًا جميع تنسيقات ملفات Spectrum المستخدمة فعليًا ، وتشمل أدوات الشبكة متصفح الويب وخادم الويب وعميل Telnet وخادم Telnet و IRC -العميل ، إلخ. الألعاب مكتوبة لنظام التشغيل ، بما في ذلك ألعاب الشبكة. الآن هناك 6 أعضاء في المستودع. الكود المصدري للنظام بأكمله (58 برنامجًا) هو 230 ألف سطر في لغة التجميع و 70 ألف سطر في C.



المقدمة



هندسة الحاسوب



ZX Spectrum هو كمبيوتر 8 بت يعتمد على معالج Z80. وهي تختلف عن أجهزة الكمبيوتر الأخرى المماثلة من حيث أنها بدلاً من وحدة التحكم بالفيديو المتخصصة تحتوي فقط على مجموعة من العدادات ومضاعفات الإرسال (تم تجميعها في الأصل في BMK ، ولكن تمت ترجمتها بسهولة إلى دوائر مصغرة منطقية صغيرة "مفكوكة"). ونتيجة لذلك ، فاز الكمبيوتر في البداية بسباق الأسعار وأصبح الجهاز الافتراضي لـ "برمجة غرف النوم" ، ثم هرب بسهولة من المصنع الأصلي وفاز بمكانة مهمة في حوسبة العديد من دول العالم. بما في ذلك - البلدان التي كانت جزءًا من اتحاد الجمهوريات الاشتراكية السوفياتية ، حيث تم إنتاج سيارات متوافقة مع Spectrum في حوالي مليون نسخة (على أي حال ، أكثر من BC و DVK و UKNTs مجتمعة).



قائمة مذهلة من الحيوانات المستنسخة الشهيرة - هنا... أدى "انفتاح" الهيكل (من وجهة نظر مكواة اللحام - وبدون مكواة لحام ، كانت النسخ المستنسخة لدينا مشكلة في الاتصال بالتلفزيون) إلى تحويل ZX Spectrum إلى نظام أساسي متطور للغاية ، مع أنظمة أساسية غير نمطية أخرى ذات 8 بت (والتي كانت بالفعل ميتة أو قائمة على الكحول) ميغا بايت ، ميغا هرتز ، محركات الأقراص الصلبة وبطاقات الشبكة.



ZX الطيف لا يزال يعمل كمنصة للألعاب إيندي (انظر الجارية ياندكس ريترو لعبة معركة و لديك لعبة 6 مسابقات ، و تم تمديد الموعد النهائي لوالتي حتى 1 ديسمبر )، ولكن نادرا ما يحدث تطوير في الشكل الأصلي، ل ه. على الطيف نفسه. ويرجع ذلك ، من بين أمور أخرى ، إلى حقيقة أن بيئات التطوير الأصلية مكتوبة بموجب TR-DOS في التسعينيات والألفينيات ، تخلفوا عن الحياة ، ولم يأت شيء جديد ليحل محلهم.



الحاجة إلى نظام تشغيل



تمت كتابة أنظمة التشغيل الخاصة بالطيف الترددي لفترة طويلة. يتيح لك نظام التشغيل ، الموجود في ذاكرة القراءة فقط ، الكتابة باللغة الأساسية والتلاعب بشريط مغناطيسي. أنظمة تشغيل الأقراص TR-DOS و GDOS و + 3DOS ، إلخ. أضافت أوامر للعمل مع قرص مرن إلى BASIC ، ومع ذلك ، فإن TR-DOS فقط هي التي حصلت على أدوات مساعدة جادة ، وليس بسبب واجهة BASIC غير ملائمة إلى حد ما ، ولكن بسبب نقاط الدخول الموثقة (وليس كذلك) إلى ROM TR-DOS.



بصرف النظر عن العديد من إصدارات CP / M (التي لم يتم كتابتها في الأصل للطيف ولا تستخدم إمكاناتها بالقيمة الحقيقية) ، كان أول نظام تشغيل طيفي جاد هو iS-DOS بمهمة واحدة ( واحد ، اثنان ، ثلاثة ، أرشيف)) ، تم تطويره في سانت بطرسبرغ في بداية التسعينيات. لقد زودت "خارج الصندوق" بقائد ونظام ملفات بأدلة فرعية (غير متوافقة مع أي شيء) ، ومحرر نصوص بحجم عشوائي ، والعديد من أقراص المرافق والقدرة على التوسع مع سكانها. لسوء الحظ - الامتدادات موجودة فقط في نافذة 48K RAM. كانت الإصدارات الأولى من iS-DOS تحتوي على 41 كيلو بايت للنظام بأكمله والمقيمين وبرنامج المستخدم ، أما باقي مساحة ذاكرة الوصول العشوائي فقد احتلتها شاشة 6912 بايت.





iS-DOS في الموائل الطبيعية



أحدث الإصدارات ، التي لا تزال تصدر تحت اسم TASiS ( واحد ، اثنان ) وتم شحذها تحت استنساخ ATM-Turbo 2+ ، تسمح لك بالتوسع إلى مساحة العنوان 64 كيلو بايت بالكامل ، وإزالة الشاشة من الذاكرة وتبديل صفحات ذاكرة الوصول العشوائي ، ولكن لا يزال جوهر النظام في مساحة العنوان. (الأمر نفسه ينطبق على CP / M - في جميع الإصدارات المعروفة ، يحتل النظام العناوين العليا وهو غير قابل للتدمير.)



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



انتشر نظام iS-DOS المذكور بالفعل في سانت بطرسبرغ وموسكو. نظير وظيفي تقريبي لـ iS-DOS على قرص TR-DOS - X-DOS - بقي داخل كيروف.





X-DOS وسطر الأوامر الخاص به



نظام النوافذ المتعددة DOMEN OS / Pink Floyd ، أيضًا من سانت بطرسبرغ ، لم يرق إلى حالة قابلة للاستخدام. على وجه الخصوص ، لم يكن يدعم محركات الأقراص الثابتة ، ولم يكن به أدوات تطوير.





OS DOMAIN ووثائقه في نظام HTML



Kharkiv DNA OS ، الذي تم شحذه بشكل أساسي لنسخ الملفات ، جلب بعض الفوائد لمالكي "البراغي" ، لكن "برنامج المسامير" لم يظهر فيه.









لم يعش DNA OS ومدير الملفات الخاص به Moscow NK-DOS و NeOS الأخوي و Grodno DOORS \ AQUA و Saransk ZX-OS / ZXRTK لرؤية إصدارات قابلة للتطبيق . من بين أنظمة التشغيل متعددة المهام ، كان الأقرب إلى المستخدم هو MythOS متعدد النوافذ (Dnepropetrovsk) و ChaOS (Taganrog) ، لكنهم أيضًا أنهوا حياتهم في المصدر - أيضًا بدون دعم محركات الأقراص الثابتة وبدون أدوات التطوير.





MythOS ووحدة التحكم الخاصة به





الفوضى وفوضىها



لماذا كان هناك الكثير من الإخفاقات؟



متطلبات الأجهزة لنظام تشغيل متعدد المهام



كانت المشكلة مع جميع أنظمة التشغيل المبكرة لـ Spectrum هي أن المطورين حاولوا ضمان توافق إنشائهم إلى أقصى حد. على سبيل المثال ، على iS-DOS - مع الأجهزة التي تبدأ من ZX Spectrum 48K (مع محرك الأقراص المرنة أو HDD) ، وفي معظم الأنظمة اللاحقة - مع ZX Spectrum 128K. ترك هذا علامة لا تمحى على تخصيص الذاكرة.



الحقيقة هي أنه في أجهزة 48K ، تم تقسيم إجمالي مساحة عناوين Z80 البالغة 65536 بايت إلى جزأين: 48 كيلو بايت من ذاكرة الوصول العشوائي (منها 6912 بايت استهلكتها الشاشة ، والتي تركت 41 كيلو بايت لكل شيء آخر) و 16 كيلو بايت من BASIC ROM ، والتي تعد ذات فائدة حقيقية لنظام التشغيل لا. سارت الأمور بشكل أفضل عند 128 ألفًا ، لكن ليس كثيرًا. يمكن إزالة الشاشة من مساحة عنوان Z80 هناك (عن طريق تحديد المخزن المؤقت الثاني للفيديو) ، ولكن يمكنك تبديل صفحات ذاكرة الوصول العشوائي فقط في الربع العلوي (من العنوان 0xc000) من مساحة العنوان. 32 كيلو بايت المتبقية من ذاكرة الوصول العشوائي غير قابلة للتبديل. والأقل 16 كيلو بايت واستمرار احتوائه على ROM غير ضروري لنظام التشغيل. بالطبع يسمح 128K المملوك للأجهزة الخارجية (مثل تمديد ذاكرة LEC ، DISCiPLE / + D ، MB-02) استبدل 16K السفلي ، وأحفاده ، بدءًا من +3 ، عادةً ما يكون لديهم منفذ مدمج واحد أو آخر لهذا (غالبًا تتوفر صفحة واحدة فقط من ذاكرة الوصول العشوائي هناك) ، ولكن لا يزال نصف الذاكرة القابلة للعنونة لا يمكن تغييرها مع تبديل المهام.



تخيل أنك تكتب محرر نص أو رسومات لنظام تشغيل ZX Spectrum 128K. من الواضح أن حجم 16K العلوي صغير جدًا بالنسبة للنصوص أو الرسوم التوضيحية (نحن لا نتحدث عن "الشاشات" القياسية التي تبلغ 6912 بايت) ، وعليك إما تحميل الملف باستمرار من القرص (وهو بطيء وغير مريح) ، أو نشر المستند على الصفحات. أين ، في هذه الحالة ، سيتم تحديد موقع رمز المحرر نفسه ومتغيراته ومكدسه؟ ليس في أعلى 16 كيلو بايت من ذاكرة الوصول العشوائي ، لأن هذا هو مكان المستند. ليس في أقل من 16 كيلو بايت ، لأنه على الأرجح هناك ROM. اتضح أن جميع المهام يجب أن تشترك في كتلة واحدة مشتركة من 32K RAM. السكان الذين تم نقلهم ، على سبيل المثال ، انقسموا 256 بايت لكل منهم ، إجراءات استدعاء من ذاكرة الوصول العشوائي العليا ، مقيمون منفصلون - مخازن مؤقتة للعمل مع البيانات ، المكدس يقتصر أيضًا على 256 بايت ...هذا غير مريح للغاية للمطورين. النتيجة: المؤلفون أنفسهم فقط هم الذين كتبوا لمثل هذه الأنظمة ، وكان لديهم ما يكفي من الصمامات لمدة عام أو عامين ، وهو ما لا يكفي حتى لخلق بيئة تطوير.



وبالتالي ، للحصول على نظام مناسب متعدد المهام على Spectrum ، من الضروري أن يكون لديك صفحات قابلة للتحويل من ذاكرة الوصول العشوائي في كل ربع (اختيار 16K ربعًا تقليديًا لـ Speccy) لمساحة عنوان Z80. هناك عدد قليل من دوائر الطيف التي يمكنها القيام بذلك: هذه هي "ZX-MMU" غير المعروفة من fk0 (2000) و ATM-Turbo 2 الأكثر شيوعًا (+) (1992 ، 1993):





من الوثائق. يتيح البت 6 التحكم من خلال المنفذ # 7ffd (يستبدل ROM TR-DOS تلقائيًا ROM 48 BASIC عند تنفيذ الكود في # 3dxx) ، وإلا فإن البت 7 يمكّن صفحة ROM المحددة. "ROM2" هو بت 4 من المنفذ # 7ffd ، وهو يعمل دائمًا.



يعتقد العديد من مؤلفي أنظمة التشغيل أن هذا المطلب الخاص بنظام ذاكرة فرعي ليكون قادرًا على تبديل كل شيء سيحد بشدة من عدد المستخدمين ، ولم يقبلوه. نتيجة لذلك ، حصلوا على حوالي 0 مستخدم - بسبب نقص البرامج.



تطوير



خلفية؛ ما هو NedoPC



في 2002-2003 ، ولدت حركة NedoPC على مساحة شاسعة من ثلاث قارات ، والتي يمكن وصفها بإيجاز بأنها ... أم ... تطوير أجهزة الكمبيوتر من الوسائل المرتجلة. وقد بدأ NedoPC بما أنهيه الآخرون في ذلك الوقت - لإنتاج الطيف والأجهزة لهم. وباعتبارها Spectrum ، أخذوا نفس Turbo 2+ (1993) - سليل ATM-Turbo 2 (1992) ، وهو سليل ATM-Turbo (1991) ، وهو سليل البنتاغون 128 (1990) ، والمعروف في الدوائر الضيقة باسم ATM 128 (تاريخ النضال) يمكن العثور على الشركات في التسعينيات المبهرة في وصف Honey Commanderذ). في وقت من الأوقات ، كان Turbo 2+ (الذي تم بالفعل تعليق تسمية ATM عليه تلقائيًا ، كما في الإصدارات السابقة) يهدف تقريبًا إلى استبدال جهاز الكمبيوتر الشخصي من IBM للتكوينات المبكرة - مع محرك الأقراص الثابتة (لاحقًا قرص مضغوط) ، وهو نظير لـ EGA ولوحة مفاتيح XT (لاحقًا AT) ، منفذ COM ، DAC ، ADC (الذي لعب أيضًا دور المودم) والألعاب "Prince of Persia" و " Gobliiins " ، والتي كانت صحيحة تمامًا من إصدار الكمبيوتر الشخصي (لا أذكر جميع البرامج ، فهناك الكثير منها). لكن جزءًا من المخطط العبقري كان مخفيًا في PLM ، ولهذا السبب يمكن لعدد قليل جدًا من الناس نسخه. في اتساع أوكرانيا ، سرت شائعات حول استبدال PLM بـ ROM وحول نسخ وحدة تحكم منفصلة في HDD ، ولكن بشكل عام ، كان الكمبيوتر في التسعينيات أقل شيوعًا من البنتاغون. لحسن الحظ ، تبرع مطورو Turbo 2+ - شركة MicroART - بجميع الوثائق للاستخدام المجاني.



على الفور تقريبًا ، تم جذب العديد من مطوري البرامج إلى مدار NedoPC ، وتحدثوا عن أنظمة التشغيل. وإلا فإن الإجابة على السؤال "أين يجب أن نبحر" لم تنجح. كانت أولى ثمار التفكير الجاد في عام 2005 هي نظام TASiS المذكور بالفعل ، والذي من أجله تم الحصول على مصادر iS-DOS.



في موازاة ذلك ، في عام 2007 ، أنشأ أحد مؤلفي هذا المقال شخصية افتراضية SMAN ، التي كانت تطور نظام تشغيل متعدد المهام. ونعم ، لقد مرت أيضًا بمرحلة المقيم في ذاكرة الوصول العشوائي السفلى. استمرت هذه المرحلة لسنوات ؛ في 2016-2017 ، تمت كتابة مترجم لغة NedoLang شبيه بـ C ، والذي يتناسب مع 48 كيلو ( يتم تجميعه أيضًا لـ ARM Thumb). تم قطع العقدة Gordian فقط مع ظهور محرر الرسوم Scratch (2018).





Scratch وقائمته



كان الاختيار في عام 2018 سهلاً بالفعل: كان التوافق ATM-Turbo 2+ متاحًا لجميع المستخدمين - إن لم يكن على قطعة الأجهزة الأصلية وليس على NedoPC's ZX Evo و Pentagon 2.666LE ، ثم على ATM3 من Zorel أو على الأقل في محاكي (Unreal Speccy و Xpeccy و ZXMAK2 و Es.pectrum وما إلى ذلك).





Turbo 2+ (1993 ، لكن من الواضح أن اللوحة أحدث)





البنتاغون 2.666 جنيه (2009) سيارة نادرة جدا





ZX Evolution (2009) ، يمكن شراؤه من أي مخبز





ATM3 (2017) ، يمكنك الحصول عليه فقط عن طريق التعارف أو جعله بنفسك.من



تلك اللحظة فصاعدًا ، تم تسمية النظام NedoOS وبدأ في التطور بشكل متفجر.



تجدر الإشارة إلى أنه من أجل كبح الأوهام في المرحلة الأولى من هذا الانفجار ، تم بناء النظام بشكل أساسي على أوامر متوافقة مع CP / M و MSX-DOS. حتى الآن ، يتم تقسيم قائمة الأوامر إلى ثلاثة أقسام: متوافقة مع CP / M (يوجد الآن 13 منها ، لا يوصى باستخدامها بسبب نظام FCB غير المريح) ، متوافقة مع MSX-DOS (هناك 11 ، يوجد اسم الملف موجود بالفعل في النص ، وبدلاً من ذلك تستخدم هياكل FCB أرقامًا - مقابض) وغير متوافقة (معظمها غير ملف ، يوجد 48 منها الآن ، ولكن تم التخطيط لإسقاط بعضها).



نظام التطوير في الوقت الحالي



لا تزال شفرة مصدر NedoOS غير مهيأة للمترجمين المتوفرين على النظام (NedoLang ومجمعها NedoAsm و Turbo Pascal و BDS C). حتى الآن تم تجميع 5 مرافق فقط داخليًا. والجزء الرئيسي من الحزمة مبني على جهاز كمبيوتر يستخدم SjASMPlus (الكود الرئيسي) و Z80 IAR C (نظام ملفات FatFs وبعض الأدوات المساعدة).



تتم استضافة الملفات على خادم SVN مخصص وتتكون من مصادر وإصدار ثنائي ومجموعة من الأدوات للبناء على جهاز كمبيوتر.



يتم تجميع النظام باستخدام زر واحد (ملف دفعي أو Makefile - نظامان للبناء). يمكنك أيضًا جمع أحد الأهداف بشكل منفصل (لمحرك الأقراص الصلبة ، وبطاقة SD ، وما إلى ذلك) بزر واحد وبدء المحاكي على الفور. يمكنك جمع كل أداة بشكل منفصل مع قميص الجسم المنخفض المستوى. حدث نظاما البناء لأن بعض مطوري NedoOS يعملون على Windows والبعض الآخر على Linux.



بالإضافة إلى المجمّعين ، هناك أيضًا معالج أوامر cmd.com (يمكنه تنفيذ * .bat) ومترجم NedoBasic مكتوب من البداية بقدرات رسومية.





تجمع NedoLang نفسها



بنية النظام



جهاز Kernel



الجزء المرئي لبرنامج المستخدم من NedoOS عبارة عن سلسلة من المكالمات في منطقة الذاكرة 0x0000..0x0038 ، أو ما يسمى النواة. آخر هذه المكالمات هو معالج مقاطعة 50 هرتز ، متبوعًا بسطر أوامر مع معلمات للبرنامج مع 0x0080. لا يزال جهاز kernel متوافقًا مع CP / M (الاتصال عبر 0x0005) ، لكننا نتحرك ببطء بعيدًا عن هذا (تُستخدم مكالمات CP / M فقط في 4 برامج من أصل 58). يتم تنظيم جميع مكالمات النظام كوحدات ماكرو (تستخدم البرامج الوحدة النمطية /src/_sdk/sys_h.asm مع وحدات الماكرو والثوابت هذه) ويمكن تعديلها بشكل كبير مع تطور نظام التشغيل. والنتيجة هي الحاجة إلى إعادة بناء النظام وبرنامج التطبيق بالكامل في حالة حدوث أي تغييرات في وحدات الماكرو هذه - ولكن ، كما رأينا ، يتم ذلك باستخدام زر واحد.



يتم إخفاء الجزء الداخلي من NedoOS في صفحات ذاكرة الوصول العشوائي ويحتوي على:





يتم تجميع جميع برامج التشغيل في النواة ، لذلك هناك عدة "أهداف" مختلفة لبناء النظام ( ATM2 ، ATM2 + HDD ، ATM3 ، ZX Evo ، Pentagon 2.666LE ).



يبدو معالج المقاطعة ، الموجود في مساحة المستخدم ، كما يلي:



        push af
        push bc
        push de
user_fdvalue6=$+1
        ld a,fd_system ;    
        out (0xfd),a ;    (      ),        
;---------
;    :
;bc=memport0000
;d=pgmain
        out (c),d ;may switch this code page
curpg16k=$+1
        ld a,0
        ld b,memport4000/256
        out (c),a
curpg32klow=$+1
        ld a,0
        ld b,memport8000/256
        out (c),a
curpg32khigh=$+1
        ld a,0
        ld b,memportc000/256
        out (c),a
        pop de
        pop bc
        pop af
        ei
        ret


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



يمكن للمهمة تغيير معالج المقاطعة ، فمن الممكن بالعودة إليها والتعليمات البرمجية التعسفية بعدها. هناك بعض التوصيات والأمثلة على ذلك.



نظام المحطة



تنقسم المهام إلى ثلاثة أنواع:



  1. أولئك الذين لا يحتاجون إلى شاشة على الإطلاق ،
  2. تلك التي تكون محطة نصية كافية لها ،
  3. رسم بياني - مع شاشته الخاصة بالدقة المطلوبة ولوحة الألوان الخاصة به.


في NedoOS ، بالإضافة إلى مفهوم المهمة الحالية ، هناك مفهوم "التركيز" (الوصول إلى لوحة المفاتيح والماوس والشاشة). يتم تبديل التركيز بين المهام يدويًا (عن طريق توليفة من Symbol Shift + Enter) أو تلقائيًا (عند تشغيل الرسومات أو إيقاف تشغيل الرسومات أو إغلاق مهمة).



مهام مثل (1) لا تركز أبدًا. علاوة على ذلك ، المهام من النوع (2) أيضًا لا تتلقى التركيز ؛ بدلاً من ذلك ، يكون التركيز على محطة النص التي يتم إرفاقها بها. وهي مقيدة من خلال تيارات stdin و stdout ، والتي تسير على طول الحروف والأرقام والتمايل والرموز الخاصة بمحطة VT-100 مع بعض الإضافات. يتم تنفيذ Stdin و stdout من خلال مكتبة stdio.asm كقوائم انتظار (أنابيب). في kernel ، تحتوي قائمة الانتظار على مخزن مؤقت سعة 255 بايت. ترجع وظائف الكتابة والقراءة من قائمة الانتظار مقدار ما تمت قراءته بالفعل أو كتابته (بالنسبة للملفات) وما إذا كانت قائمة الانتظار مغلقة في الطرف الآخر. هذه التيارات موروثة من الأب إلى الابن. ولكن في النهاية ، يتم عرض كل شيء بواسطة محطة term.com ، والتي يمكن تمريرها وحتى نسخها ولصقها. يوجد أيضًا خادم شبكة Telnet netterm.com. لا يلزم بدء تشغيل موقع netterm.com هذا ، ولكن يبدأ term.com تلقائيًا عند بدء تشغيل النظام.





Nedovigator في الجهاز ، ويتم تمرير الجهاز باستخدام عجلة الماوس



لمهام مثل (3) ، بالطبع ، ليس هناك شك في رسم وحدات البكسل من خلال النظام - لا يوجد ما يكفي من Z80 ميغا هرتز لهذا (معظم المستخدمين لديهم 14 فقط منهم). لذلك ، من الضروري الرسم من خلال الذاكرة. ونظرًا لوجود منطقتين فقط للشاشة على أجهزة الصراف الآلي (كما في 128 ك) ، يمكن أن يكون لمهمة واحدة فقط صفحات الشاشة الخاصة بها. يتم اعتراض صفحات الشاشة عند تغيير التركيز ، وبدلاً من ذلك يتم إعطاء المهمة الخاسرة رقم صفحة مزيفًا - صفحة يمكن ببساطة إفسادها. عندما تتلقى مهمة التركيز ، فإنها تتلقى رسالة منفصلة عنها ، كما لو كانت من لوحة المفاتيح ، ولكنها لا تتوافق مع أي زر حقيقي. هذا يسمح للمهمة باستعادة الشاشة في الوقت المناسب. يمكن لمهمة أخرى تشغيل الوضع عندما يقوم النظام نفسه بتخزين الشاشة له واستعادتها.



سطر الأوامر



يتم تنفيذ وظائف سطر الأوامر بواسطة الأداة المساعدة cmd ، والتي يتم تشغيلها تلقائيًا عند بدء تشغيل النظام. بتعبير أدق ، يتم تشغيل المهمة الخاملة الأولى مع المعلمات cmd.com autoexec.bat. هذا يعني أن cmd سيقوم بتنفيذ الملف الدفعي المحدد. يتم تنفيذ الأوامر المكتوبة هناك بالترتيب. بشكل افتراضي ، يتم تنفيذ الأوامر في انتظار النهاية ، ولكن إذا كان الأمر هو بداية البرنامج ، فيمكنك وضع start أمامه - سيتم تشغيل البرنامج في الخلفية (فقط هذا غير متوافق مع مفهوم وراثة stdin و stdout - يمكن خلط البيانات الموجودة في قوائم الانتظار).



بعد انتهاء العملية المحددة في المعلمة (إذا كانت المعلمة على الإطلاق) ، يخرج cmd عادةً. تم ترك استثناء لـ autoexec.bat فقط ، بحيث بعد انتهائه ، لن يترك لك قاع مكسور. ومع ذلك ، في هذه الحالة ، ينتظر الخمول ضغط C + M + D في نفس الوقت ويمكن إعادة تشغيل المصطلح باستخدام cmd.



سطر الأوامر مشابه لـ MS-DOS. يمكنك إعادة توجيه إخراج عملية قيد التشغيل إلى ملف (على سبيل المثال ، dir> filename) أو إلى برنامج آخر (على سبيل المثال ، dir | more.com) ، يمكنك إعادة توجيه الإدخال (على سبيل المثال ، more.com <اسم الملف). لكن التسلسل لم يتم دعمه بعد.



لمزيد من العمل المريح مع الملفات ، يتم استخدام Nedovigator Command (nv.com).





كيتي ، لأنك رأيت Nedovigator بالفعل



وضع النظام



يجب توضيح أن كل نظام ملفات لدينا مثبت على حرف معين ، لذلك تبدو المسارات مثل m: /bin/filename.txt. تحتوي قوائم الانتظار على حرف z: mount ، ولكن يتم فتحها حتى الآن بدون اسم - يتم الاتصال بين المهام بتمرير رقم قائمة الانتظار (المقبض).



لتجنب محمل الإقلاع المتخصصة مثل GRUB ، يأمل NedoOS أن يكون ROM للكمبيوتر لديه القدرة على تشغيل ملف trunk (*. $ C) من الجهاز المطلوب - على سبيل المثال ، في ZX Evo باستخدام مستعرض الملفات أو بالضغط على الزر 5 في القائمة الرئيسية ، وفي البنتاغون 2.666 جنيه - عبر ناسخة مدمجة Fatall... خلاف ذلك ، سوف تضطر إلى تمهيد نظام التشغيل من الأقراص المرنة TR-DOS. توجد ملفات النظام في دليل / bin لقرص النظام ، والألعاب في / nedogame. توجد ملفات اللعبة الإضافية عادةً في دليل فرعي للعبة تحمل الاسم نفسه: على سبيل المثال ، تحتوي لعبة NedoOS الملونة /nedogame/br.com ( Black Raven ) أيضًا على دليل / nedogame / br يحتوي على رسومات وموسيقى ومستويات.





الغراب الملون



الفرص الحالية



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



تعدد المهام:الإزاحة (بانقطاع 50 هرتز) والتعاونية ؛ يمكن تشغيل ما يصل إلى 16 مهمة في وقت واحد (واحدة منهم خاملة ، ويمكن إزالتها ، ولكن بعد ذلك YIELD لا تعطي ضمانات) ؛ يمكنك استبدال مشغل الموسيقى الخاص بك بمعالج مقاطعة النظام - سيتم تنفيذه في سياق النواة بثلاث صفحات مستخدم (لا يمكنك تبديلها سريعًا بعد). يمكن تجميد المهام (إذا تم إنشاؤها للتو أو حذفها أو في انتظار طفل). يمكنك عرض قائمة المهام في cmd ، ونشاطها ووجود وضع رسومي ، وإزالة من التنفيذ (هذا يحرر صفحاتهم ، وسجلات ملفات FatFs ومآخذ الشبكة).



الملفات:يمكن فتح ما يصل إلى 16 ملف FAT و 8 ملفات TR-DOS و 8 قوائم انتظار في وقت واحد. يمكنك قراءة وكتابة ملفات متعددة في نفس الوقت (مهم للمترجم) - حتى على قرص مرن! يمكنك قراءة معلمات الملف ، ومؤشر للوضع الحالي ، وتغيير هذا الموضع ، وإنشاء وإعادة تسمية الدلائل. تفترض قوائم الانتظار مهمتين للمستخدم ، يجب فتحهما مرة واحدة (عند الإنشاء) ، ولكن يتم إغلاقهما مرتين. يتم تنفيذ عمليات الملف في سياق النواة ، في هذا الوقت لا يعمل برنامج جدولة المهام ، ولكن معالج موسيقى النظام قيد التشغيل.



الشبكات:بروتوكولات ICMP و TCP و UDP تصل إلى 8 مآخذ توصيل في وقت واحد. هناك أدوات مساعدة ping و time و telnet و netterm (خادم Telnet) و dmirc (عميل IRC) و dmftp (عميل FTP) 3ws (خادم الويب لنسخ الملفات وتشغيلها عن بُعد) و NedoBrowser (متصفح نصي مع إمكانية عرض الصور بشكل منفصل jpg و gif و png و bmp و svg - آخر تنسيقين مع قيود ؛ يدعم البروتوكولات http و gopher ، https من خلال وكيل) ، يمكن لـ wget (تنزيل ملف الخلفية ، الذي يتم تشغيله من المتصفح ، بدء عرض الرسومات ومشغل الموسيقى تلقائيًا).





يبحث NedoBrowser عن شيء ما على الإنترنت



يعمل مع المحفوظات: يتوفر .tar و .rar للقراءة والكتابة (ZXRar هو تناظرية مجردة لـ Rar 2.x لـ DOS - بدون عدد من الرموز والأرشيفات الصلبة وتنسيق الوسائط المتعددة والتشفير ، يدعم ZXUnRar جميع الرموز و المحفوظات الصلبة ، ولكنها أيضًا لا تدعم الوسائط المتعددة والتشفير) ، فإن gz و. zip للقراءة فقط. حتى الآن ، كل شيء فقط من خلال الأدوات المساعدة لسطر الأوامر.



أنواع المستندات: يتم تسجيل اقترانات الملفات لقائد Nedovigator المضمن في ملف nv.ext. الآن هذا الملف يبدو كالتالي:



bmp:scratch.com
bat:cmd.com
txt,new,ext,ini,nfo,diz:texted.com
gif,jpg,png,htm,svg:browser.com
tfc,pt2,pt3,mt3,m  :player.com (pt3     Pro Tracker  NedoOS)
bas:basic.com
zip,gz :pkunzip.com
trd,scl,fdi,tap:dmm.com ( TR-DOS   —    ZX Evo   ,   ,      Magic;   , ,         )
16c,scr,fnt,img,3  ,888,y  ,+  ,-  ,plc,mc ,mcx,grf,ch$,mg1,mg2,mg4,mg8,rm ,mlt:view.com
mod:modplay.com
tar:tar.com
sna,b  ,z80:nmisvc.com
rar:unrar.com


هناك أيضًا عشرات الألعاب المتاحة ، بما في ذلك محاكي Super Mario (يتطلب تفريغ خرطوشة للعمل) ، ورسمه Eric and the Floaters ، وميناء جزئي لـ Endless Summer ، وثعبان متصل بالشبكة.



الخطط



  • توسيع وظائف الملفات الدفعية (يتم بالفعل نقل المعلمات)
  • IDE والاستضافة الذاتية
  • طبقات في محرر الرسومات
  • ...


خاتمة



في الوقت الحالي ، يتمتع NedoOS بجميع الوظائف الأساسية الضرورية ، لذلك إذا كان لديك الأجهزة اللازمة ، فسيكون النظام أكثر ملاءمة للاستخدام من عدم استخدامه.



ولكن لا يزال هناك الكثير من العمل في المستقبل. كلما اقتربنا من المثل الأعلى ، زاد عدد المطورين المنضمين إلى المشروع.





يعيش معظم مطوري NedoOS في قناة #mhm IRC على irc.forestnet.org (متاح أيضًا من خلال http://chat.forestnet.org/ ). توجد قناة Twitch مسائية (مع مرآة على YouTube). من موقع ويب NedoOS ، يمكنك تنزيل إصدار ثابت ومصادر جديدة .



All Articles