بناء نواة لينكس بشكل أصلي على نظام التشغيل macOS: رحلة عبر جحيم التجميع

2025-07-03
بناء نواة لينكس بشكل أصلي على نظام التشغيل macOS: رحلة عبر جحيم التجميع

تتناول هذه المشاركة تجربة الكاتب في بناء نواة لينكس (بنية RISC-V) بشكل أصلي على نظام تشغيل macOS. كانت الرحلة مليئة بالتحديات: نسخة قديمة من برنامج make، وعدم توافق برنامج ld الخاص بنظام macOS مع توقعات لينكس، وغياب ملفات رأس elf.h و byteswap.h، بالإضافة إلى تعارضات في الإصدارات مع uuid_t و sed. تغلب الكاتب على هذه المشاكل باستخدام Homebrew لتثبيت مجموعات أدوات محدثة (make، llvm، lld، libelf، gnu-sed)، بالإضافة إلى إنشاء تصحيحات لمعالجة التناقضات في ملفات الرأس وتعارضات تعريف الأنواع. تم بناء النواة بنجاح، حيث كان نظام macOS أسرع من Docker في عمليات البناء الكاملة، ولكنه كان أبطأ في عمليات البناء المتزايدة. يستنتج الكاتب أن إصلاح مشاكل البناء عملية مستمرة ومتكررة، تشبه تكامل المستمر.

اقرأ المزيد
التطوير

ستارينا: نظام تشغيل ذو نواة دقيقة مع نهج مُراقب آلة افتراضية ك مكتبة

2025-05-20
ستارينا: نظام تشغيل ذو نواة دقيقة مع نهج مُراقب آلة افتراضية ك مكتبة

تُقدم هذه المقالة نهجًا مبتكرًا للتوافق مع لينكس في نظام تشغيل ستارينا: دمج مراقب آلة افتراضية (VMM) كمكتبة داخل التطبيقات. وعلى عكس أنظمة VMM التقليدية المستقلة، تتيح واجهة برمجة التطبيقات `starina_linux::Command` في ستارينا للمطورين تشغيل برامج لينكس بشكل مشابه لـ `std::process::Command`، والتفاعل مع VM عبر نظام ملفات افتراضي (virtio_fs). هذا التصميم يبسط عملية التطوير، ولديه القدرة على تحقيق أوقات بدء تشغيل أسرع من بيئة لينكس الأصلية. حاليًا، يتم دعم إدخال/إخراج الملفات الأساسي، بينما تشمل الأعمال المستقبلية إضافة الشبكات، والتخزين الدائم، وتحسين الحاويات.

اقرأ المزيد
التطوير نواة دقيقة

إنشاء مُراقِب افتراضي RISC-V في نظام التشغيل Starina: من Hello World إلى تشغيل Linux

2025-05-17
إنشاء مُراقِب افتراضي RISC-V في نظام التشغيل Starina: من Hello World إلى تشغيل Linux

تُوثّق هذه المشاركة رحلة الكاتب في بناء مُراقِب افتراضي خفيف الوزن قائم على امتداد RISC-V H داخل نظام التشغيل Starina. باستخدام محاكاة امتداد RISC-V H من QEMU، قام الكاتب بتنفيذ دخول وضع الضيف، ومعالجة دعوات النظام، وبرنامج Hello World بسيط، وأخيراً، تشغيل نواة Linux بشكل تدريجي. تم التغلب على التحديات مثل إدارة جداول الصفحات، وإعداد شجرة الأجهزة، ودعم المؤقت، وMMIO، مع توفير خطوات وحلول مفصلة. وتختتم المشاركة بتشغيل Linux بنجاح داخل المُراقِب الافتراضي Starina.

اقرأ المزيد
التطوير