نظام التشغيل هواية لمساعدتي في التعرف على أشياء kernel ، للوصول في نهاية المطاف إلى تطوير Kernel Linux. حاليا تدعم:
أهدف إلى جعل الكود قابلاً للقراءة والمنظم جيدًا. تتبع المدونة تطوير هذا المشروع ، هنا https://jmnl.xyz/ ، ويوفر Wiki مزيدًا من المعلومات حول المشروع والمحافظات الداخلية.
تثبيت الحزم التالية:
xorriso لـ Debian/Ubuntu ؛ libisoburn على Archloxgrubmtoolsimagemagickqemu (موصى بها)bochs (اختياري)clang + ، مثل base-devel على Archlinux (اختياري)يجري
make toolchain
لبناء المتقاطع اللازمة لتجميع ندفة الثلج. سيقوم هذا الأمر بتنزيل وتشغيل البرامج النصية للبناء لـ gcc و binutils من خوادم GNU FTP ، وتثبيت المتقاطع في toolchain/compiler .
بدلاً من بناء مخطط الأدوات الخاص بك ، يمكنك تجميع ندفة الثلج مع clang لنظامك: ببساطة تفوق المجموعة التالية من الخطوط في Makefile الرئيسية:
# CC=clang
# LD=ld
# AR=ar
# AS=as
# CFLAGS+=-target i386-pc-none-eabi -m32
# CFLAGS+=-mno-mmx -mno-sse -mno-sse2 إذا توفر لك توزيعاتك مترجمًا متقاطعًا ، فقد ترغب في توفير الوقت واستخدامه. للقيام بذلك ، يجب عليك تحرير المتغيرات التالية في Makefile الرئيسية بحيث تتطابق مع الموظفين التنفيذيين في المترجم المتقاطع الخاص بك:
AR=$(HOST)-ar
AS=$(HOST)-as
LD=$(HOST)-ld
CC=$(HOST)-gcc --sysroot=$(SYSROOT) -isystem=/$(INCLUDEDIR)
يمكنك تحرير HOST أو ترميز الأسماء التنفيذية مباشرة.
تشغيل إما
make qemu # or
make bochs
لاختبار Snowflakeos في VM. راجع دورة التعديل/التصحيح لمزيد من الخيارات حول كيفية تجميع وتشغيل ندفة الثلج.
من الممكن اختبار هذا المشروع على الأجهزة الحقيقية. يمكنك نسخ SnowflakeOS.iso إلى محرك أقراص USB باستخدام dd ، كما تفعل عند صنع USB مباشر لنظام التشغيل الآخر ، وقم بتمهيده مباشرة.
لاحظ أن هذا نادراً ما يتم اختباره على الإطلاق ، من يعرف ما الذي سيفعله :) أحب أن أسمع عنه إذا حاولت ذلك ، على أي أجهزة ، إلخ ...
المساهمات موضع ترحيب كبير ، بأي شكل من الأشكال! استشر CONTRIBUTING.md و wiki لهذا المشروع للتوجيه.