فيويكس
Fiwix هو نواة نظام تشغيل مكتوب من الصفر، يعتمد على بنية UNIX ويركز بشكل كامل على التوافق مع POSIX. لقد تم تصميمه وتطويره بشكل أساسي كنظام تشغيل للهوايات، وبما أنه يخدم أيضًا الأغراض التعليمية، فإن كود kernel يظل بسيطًا قدر الإمكان لصالح الطلاب وعشاق نظام التشغيل. إنه صغير الحجم (أقل من 50 ألف سطر من التعليمات البرمجية)، ويعمل على منصة الأجهزة i386 ومتوافق مع قاعدة جيدة لتطبيقات GNU الحالية.
سمات
- مكتوب بلغة ANSI C (يتم استخدام التجميع فقط في الأجزاء المطلوبة).
- متوافق مع مواصفات التشغيل المتعدد GRUB v1.
- وضع محمي كامل 32 بت، نواة غير وقائية.
- لمعالجات i386 وما فوق.
- تعدد المهام الوقائي.
- متوافق مع POSIX (في الغالب).
- مجموعات العمليات والجلسات والتحكم في الوظيفة.
- التواصل بين العمليات مع الأنابيب والإشارات ومآخذ مجال UNIX.
- UNIX System V IPC (الإشارات وقوائم انتظار الرسائل والذاكرة المشتركة).
- آلية قفل ملفات BSD (يقتصر POSIX على الملفات والاستشارات فقط).
- تقسيمات الذاكرة الافتراضية (المستخدم/النواة): 3 جيجابايت/1 جيجابايت و2 جيجابايت/2 جيجابايت.
- طلب الترحيل مع ميزة النسخ عند الكتابة.
- يستدعي نظام Linux 2.0 ABI التوافق (في الغالب).
- دعم التنسيق القابل للتنفيذ ELF-i386 (مرتبط بشكل ثابت وديناميكي).
- خوارزمية جدولة تعتمد على Round Robin (لا توجد أولويات بعد).
- طبقة تجريد VFS.
- دعم Kexec مع مواصفات التشغيل المتعدد v1 وبروتوكولات التمهيد Linux.
- دعم نظام الملفات EXT2 بأحجام كتل تبلغ 1 كيلو بايت و2 كيلو بايت و4 كيلو بايت.
- دعم نظام الملفات Minix v1 وv2.
- دعم نظام ملفات PROC المشابه لنظام التشغيل Linux (للقراءة فقط).
- دعم نظام الملفات الزائفة PIPE.
- دعم نظام الملفات ISO9660 مع امتدادات Rock Ridge.
- دعم جهاز RAMdisk.
- دعم صورة قرص RAMdisk الأولي (initrd).
- دعم التطبيقات المعتمدة على SVGAlib.
- دعم الناقل المحلي PCI.
- دعم الجهاز التسلسلي QEMU PCI.
- دعم محول الرسومات QEMU/Bochs.
- وحدة تحكم Intel PIIX3 PCI ISA IDE.
- برنامج تشغيل لوحة المفاتيح مع دعم خرائط مفاتيح Linux.
- دعم الماوس PS/2.
- دعم جهاز Framebuffer لبطاقات الرسومات المتوافقة مع VESA VBE 2.0+.
- دعم وحدة تحكم Framebuffer (fbcon).
- دعم برنامج تشغيل المنفذ التسلسلي (RS-232).
- دعم وحدة التحكم التسلسلية عن بعد.
- دعم وحدة التحكم لتصحيح الأخطاء على طراز QEMU Bochs.
- دعم برنامج تشغيل الطابعة ذات المنفذ المتوازي.
- التنفيذ الأساسي لمولد الأرقام العشوائية الزائفة.
- برنامج تشغيل جهاز القرص المرن وإدارة DMA.
- برنامج تشغيل الجهاز المضغوط IDE/ATAPI ATAPI.
- برنامج تشغيل جهاز القرص الصلب IDE/ATA.
تجميع
الأمر المطلوب لإنشاء نواة Fiwix هو make clean ; make
. سيؤدي هذا إلى إنشاء ملفات fiwix (النواة نفسها) و System.map.gz (جدول الرموز) في الدليل الجذر لشجرة التعليمات البرمجية المصدر.
قبل الترجمة، قد ترغب في تعديل تكوين النواة عن طريق تغيير القيم الافتراضية في include/fiwix/config.h
و include/fiwix/limits.h
.
ضع في اعتبارك أن النواة لا تفعل أي شيء من تلقاء نفسها، فأنت بحاجة إلى إنشاء بيئة مساحة مستخدم للاستفادة منها. عند التشغيل، تقوم النواة بتثبيت نظام الملفات الجذر وتحاول تشغيل /sbin/init
عليه، لذلك ستحتاج إلى توفير هذا البرنامج بنفسك. لحسن الحظ، يوفر FiwixOS بيئة مستخدم كاملة تشبه UNIX لاختبار نواة Fiwix.
التثبيت
يمكنك المتابعة لتثبيت FiwixOS على القرص الصلب إما عن طريق التشغيل من القرص المضغوط أو من القرص المرن. إذا اخترت الخيار الأخير، فستحتاج أيضًا إلى إدخال القرص المضغوط الخاص بالتثبيت لتثبيت الحزم التي تشكل بيئة النظام بأكملها.
اسمح للنظام بالتمهيد وعندما تكون جاهزًا، فقط اكتب install.sh
.
الحد الأدنى من متطلبات الأجهزة هي كما يلي:
- بنية IBM PC-AT القياسية.
- معالج i386 (مع معالج الفاصلة العائمة).
- ذاكرة وصول عشوائي (RAM) سعة 4 ميجابايت (يوصى بـ 128 ميجابايت).
- قرص مضغوط IDE/ATAPI أو قرص مرن (3.5 بوصة، 1.44 ميجابايت).
- قرص صلب 1 جيجا بايت ATA.
برجاء الأخذ في الاعتبار أن هذه النواة في مراحلها المبكرة جدًا وقد تحتوي على أخطاء خطيرة وميزات معطلة لم يتم تحديدها أو حلها بعد.
اسمحوا لي أن أكرر ذلك.
برجاء الأخذ في الاعتبار أن هذه النواة في مراحلها المبكرة جدًا وقد تحتوي على أخطاء خطيرة وميزات معطلة لم يتم تحديدها أو حلها بعد.
*****************************
*** USE AT YOUR OWN RISK! ***
*****************************
مراجع
- موقع إلكتروني
- آي آر سي
- القائمة البريدية
رخصة
Fiwix هو برنامج مجاني مرخص بموجب شروط ترخيص MIT، راجع ملف الترخيص لمزيد من التفاصيل.
حقوق الطبع والنشر (C) 2018-2024، جوردي سانفيليو.
الاعتمادات
تم إنشاء Fiwix بواسطة جوردي سانفيليو.
يمكنك الاتصال بي على [email protected]. انظر أيضًا ملف CREDITS.