عن
Laylaos هو نظام تشغيل هواية مع نواة مكتوبة في C. بدأ المشروع حوالي عام 2015 واستغرق ما يقرب من 9 سنوات للوصول إلى نقطة مستقرة حيث شعرت أنه يمكن مشاركتها مع العالم. يُقصد به كأداة تعليمية لفهم الأعمال الداخلية ل kernel لنظام التشغيل بشكل أفضل ، وكيفية عمل مكالمات النظام وكيفية تنفيذ بيئة واجهة المستخدم الرسومية (GUI).
إنه بالتأكيد ليس نظامًا مخصصًا للاستخدام اليومي (ليس بعد ، على الأقل).
لقطات الشاشة
المزيد من لقطات الشاشة
سمات
تشمل ميزات المشروع:
- 64 بتات متعددة المهام المتجانسة الكامنة المكتوبة في C (تم تضمين رمز 32 بت هنا ولكنه غير يعمل بكامل طاقته)
- مكدس الشبكة (استنادًا إلى PICOTCP)
- ATA/ATAPI و AHCI دعم
- دعم صوت Intel HDA الأساسي
- لوحة مفاتيح PS2 والماوس
- لوحات المفاتيح الافتراضية
- كائن مشترك ديناميكي افتراضي (VDSO)
- منشآت الاتصالات interprocess (IPC) في شكل ذاكرة مشتركة ، وسائلات الرمزية وقوائم الرسائل
- ذاكرة التخزين المؤقت للصفحات لتحميل الطلب على الصفحات
- دعم ACPI عبر ACPICA
- C Library (حاليًا باستخدام MUSL)
- منافذ برنامج الطرف الثالث (GNU Coreutiles ، inetutils ، bash ، العديد من مكتبات فك التشفير للصوت والفيديو ، إلخ)
- سطح المكتب الرسومي مع العديد من التطبيقات (في الغالب التوضيحية)
- SDL2
- QT5.12
- Openttd
- شوكة من SDL2 DOOM
قائمة TODO
هذا في الغالب هو تتبع ما نحن فيه وما يجب القيام به بعد ذلك:
- المزيد من syscalls بما في ذلك قوائم قوائم رسائل Posix
- المزيد من وظائف واجهة المستخدم الرسومية (محرر النصوص ، مرفق لقطة الشاشة ، برنامج الطلاء ، موضوعات سطح المكتب ، الأرشيف ، متصفح الويب ، إلخ)
- دعم نظام ملفات VFAT ، Ext3 ، Ext4 ، NFS (ربما NTFS في مرحلة ما)
- تسجيل kernel وربما خادم syslogd
- دعم المبادلة
- دعم USB
- المعالجة المتعددة المتماثلة (SMP)
حزم بنيت مسبقا
يمكنك تنزيل صورة قرص قابلة للتمهيد مسبقًا تتضمن كل شيء (بما في ذلك البرنامج المنقذ) من صفحة الإصدارات. ومع ذلك ، يجب أن تكون على دراية بأن صورة القرص غير المصدفة من المحتمل أن تكون كبيرة (3+ في الحجم). يمكنك استخدام هذه الصورة لتشغيل Lylaos تحت Bochs أو QEMU.
إذا كنت ترغب في تجربة Laylaos تحت Oracle VM VirtualBox ، فستحتاج إلى تحويل صورة القرص القابلة للتمهيد إلى صورة VDI. يمكن القيام بذلك عن طريق التشغيل: VBoxManage convertfromraw bootable_disk.img bootable_disk.vdi
يمكنك بعد ذلك إنشاء جهاز افتراضي جديد ضمن VirtualBox باستخدام صورة القرص. من المحتمل أن تواجه مشكلة لأن الصورة تحتوي على ملفين ( /boot/grub/grub.cfg و /etc/fstab ) مع اسم جهاز التمهيد المتشددين (شيء مثل /dev/hda4 ). لتكون قادرًا على استخدام هذا القرص كقرص SATA (أو AHCI) تحت VirtualBox ، تحتاج إلى إما:
- قم بتحرير هذين الملفان في صورة القرص التي قمت بتنزيلها وتغيير اسم الجهاز إلى
/dev/sda4 (على افتراض أنك توصيل القرص في منفذ SATA 0 ؛ تحتوي الصورة على 4 أقسام) - قم ببناء Lylaos من المصدر وإنشاء صورة قرص قابلة للتمهيد باستخدام:
./create_bootable_disk.sh rootdev sda4
انظر أدناه إذا قررت بناء Lylaos من المصدر.
كيفية البناء
لبناء ليليوس من المصدر:
- قم بتنزيل هذا المستودع وفك ضغط ملف الرمز البريدي
- تغيير الدليل إلى دليل المصدر غير المصدفة ، على سبيل المثال
cd ~/downloads/laylaos-master - تغيير الدليل إلى الدليل الفرعي
build-scripts في شجرة المصدر: cd build-scripts - لتشغيل الإنشاء ( يجب أن يتم ذلك من دليل
build-scripts ): ./buildos.sh - اذهب لتناول القهوة أو الأفضل من ذلك ، تناول بعض الغداء. يستغرق الأمر أكثر من 3 ساعات بقليل لبناء المشروع بأكمله!
- أوه ، وتحتاج إلى اتصال بالإنترنت لتنزيل مصادر البرامج المنقولة!
- عند الانتهاء من الإنشاء ، قم بإنشاء صورة قابلة للتمهيد عن طريق التشغيل:
./create_bootable_disk.sh - تتم تسمية صورة القرص القابلة للتمهيد اسم
bootable_disk.img ويتم إنشاؤها افتراضيًا في دليل العمل الحالي (يمكنك تشغيل ./create_bootable_disk.sh help لرؤية قائمة الخيارات) - يتم إنشاء ملف
bochsrc تلقائيًا جنبًا إلى جنب مع bootable_disk.img (قد ترغب في إصلاح اسم الجهاز اللاسلكي الذي تستخدمه في الملف). يمكنك الآن تشغيل bochs: bochs -q - يتم إنشاء برنامج نصي آخر يسمى
qemu.sh للسماح لك باختبار نظام التشغيل تحت QEMU. ومع ذلك ، فأنت بحاجة إلى جهاز شبكة TUN/TAP لتشغيل LYLAOs تحت QEMU باستخدام البرنامج النصي المقدم. تحتاج أولاً إلى تشغيل sudo ./netprep.sh لإنشاء جهاز الشبكة ، ثم يمكنك متابعة تشغيل qemu.sh
التراخيص
- يتم إصدار Lylaos تحت GPL V3.
- يتم إصدار PICOTCP (الذي تم بناء مكدس الشبكة الخاص بنا) ضمن GPL V2 أو V3.
- يتم إصدار ACPICA تحت تراخيص Intel و UNIX متوافقة مع UNIX.
- توجد ملفات الخجل (المطلوبة للصوت في Doom) في المجال العام (انظر ملف
copyright.txt ). - خط Monospace المستخدم في وحدة التحكم في النظام ومحطة واجهة المستخدم الرسومية هو Dina Font ، الذي يتم إصداره بموجب ترخيص مجاني.
- Libaelf32.a و Libaelf64.a جزء من Asmlib ، مكتبة تحسين البرامج من قبل Agner Fog ، والتي يتم إصدارها تحت GPL.
- جميع البرامج المنقولة الأخرى تأتي مع تراخيص كل منها.