Zebra هو نظام تشغيل متعدد المهام لأجهزة الكمبيوتر Z80 ، ويتم تنفيذه في الغالب في C مع بعض التجميع.
هذا البرنامج مرخص بموجب GPLV3. للحصول على شروط الترخيص الكاملة ، انظر هنا.
إذا كنت مهتمًا بإعداد نظام التشغيل لنظامك الخاص ، فيرجى الاتصال به!
يستهدف نظام التشغيل جهاز الكمبيوتر المعياري Z80 المخصص.
يهدف kernel إلى تشغيل 32 كيلو بايت من ذاكرة الوصول العشوائي ويوفر تفاعل المستخدم عبر واجهة تسلسلية. يتم تخصيص برامج المستخدم صفحة 32 كيلو بايت من ذاكرة الوصول العشوائي المصرفية ، مما يتيح تنفيذ البرامج المتعددة بشكل متزامن.
يحتوي هذا المستودع أيضًا على بعض برامج الأداة المساعدة المصممة ، مثل المترجم الأساسي.
محمل تمهيد على مرحلتين يسمح بتحميل صور نظام التشغيل من نظام الملفات
rstdir لعرض الملفات عند بدء التشغيل ، يحتوي الكمبيوتر المعياري على 8K من ROM على 0x0000 ، و 32 كيلو بايت من ذاكرة الوصول العشوائي على 0x8000 . يتواجد محمل التمهيد في ROM وله برامج تشغيل CF-Card أساسية قادرة على قراءة القطاعات الفردية من القرص.
يتواجد محمل التمهيد الثانوي على أول 9 قطاعات من بطاقة CF. يحتوي محمل المرحلة الثانية على نفس إجراءات بطاقات CF ، ولكن يحتوي على برنامج تشغيل FAT-16 بالإضافة إلى ذلك قادر على قراءة الملفات من القرص ، الذي تم تنسيقه بتنسيق FAT16.
يتم تحميل محمل التمهيد الثانوي هذا في ذاكرة الوصول العشوائي على 0x8000 ثم تنفذ. يقوم أولاً بتبديل البنك السفلي ( 0x0000 إلى 0x7fff ) من ROM إلى RAM ويكتب صورة kernel ، الموجودة على نظام ملفات CF-Card باسم kernel.bin ، إلى RAM على 0x0000 . يقوم المحمل الثانوي بإعادة تعيينه إلى 0x0000 للتمهيد في kernel.
يقوم kernel بتهيئة برنامج تشغيل نظام الملفات الكامل ومكونات نظام التشغيل الأخرى ، ثم يقوم بتحميل المعالج ( command.exe ) من القرص ويبدأ في تنفيذه.
في هذه المرحلة ، يتم تسليم عنصر التحكم إلى المستخدم ، الذي يمكنه التفاعل مع النظام عبر سطر الأوامر لتشغيل البرامج.
Low RAM High RAM
0x0000┌────────────────────────┐ 0x8000┌────────────────────────┐
│ Kernel │ │ User Program Area │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ 0xe000├────────────────────────┤
│ │ │ Stack │
│ │ │ │
│ │ │ │
│ │ 0xF800├────────────────────────┤
│ │ │ User Program Args │
└────────────────────────┘ └────────────────────────┘
0xF7FF على بدء تشغيل البرنامج وينمو.argv و argc ).