بطة
نظام التشغيل الذي يشبه Hobby Unix مع مدير نافذة رسومية وتطبيقات لجهاز X86 PCS ، مع منفذ العمل في AARCH64.

العرض التوضيحي | ميزات | التطبيقات | الموانئ | كيفية البناء
في الانتظار
تطوير Duckos معلق حاليا. لا تتردد في مفترقه والفساد معها!
جرب Duckos
الافتراضية محليا
يمكن تنزيل إصدار حديث من صفحة الإصدارات. بدلاً من ذلك ، يمكن تنزيل صورة القرص لآخر Duckos من القطع الأثرية لسير عمل Duckos Github. يمكن بعد ذلك توضيح هذا الظاهري أو المحاكاة باستخدام QEMU أو برنامجك المفضل.
محاكاة في المتصفح
بدلاً من ذلك ، بفضل مشروع V86 بواسطة COPY ، يمكنك تجربة إصدار من Duckos في متصفحك. هذا أبطأ كثيرًا تشغيله محليًا ، وليس لديه نسخ من البرامج المنقولة مثل Doom . يمكنك تجربتها هنا!
سمات
- مدير / مركبة نافذة بالإضافة إلى مجموعة أدوات واجهة المستخدم القابلة للتشغيل من أجل إنشاء التطبيقات
- مجموعة أساسية لـ TCP/UDP على مكدس شبكة IP مع مآخذ UNIX وسائق E1000 Ethernet
- دعم الصوت لبطاقات الصوت AC97
- العديد من منافذ البرامج مثل Doom و Attilities مثل GCC والمكتبات مثل SDL
- الربط الديناميكي وتحميل الثنائيات
- إمكانيات تصحيح الأخطاء على متن الطائرة مثل PTRACE و PROFILER لأخذ عينات
- مكتبة عرض ثلاثية الأبعاد
- يعمل على بعض الأجهزة الحقيقية
- منفذ WIP AARCH64 الذي يحضر المرحلة الماضية على Raspberry PI 3B :)
خطط مستقبلية
- الانتهاء من ميناء AARCH64
- نظام kernel kernel IPC ليكون أكثر كفاءة
- عرض أفضل للخطوط (خطوط ناقلات ، أحجام مختلفة ، إلخ)
- مضيف ذاتي
- المزيد من الاستقرار والسرعة
- تنفيذ ذاكرة التخزين المؤقت لأصحاب ملفات أفضل يمكن أن يحرر الذاكرة عند الحاجة ويدفق بشكل دوري يكتب
- المزيد من اختبارات وحدة kernel و userpace
- توثيق أفضل للنواة والمكتبات والتطبيقات
- بعض أدوات تصحيح الأخطاء في kernel و userpace ، لذا لا يتعين علي قضاء ساعات في عمق الركبة في QEMU تصحيح الأخطاء كلما حدث Segfault بسبب وجود خطأ بسيط يمكن تجنبه مع بعض القهوة الإضافية في نظامي
- الدعم متعدد المعالجات (متعددة)
- انقل ببطء الوحدات المختلفة من kernel إلى مساحة المستخدمين (A la microkernel)
- أضف الصدأ إلى المزيج (؟)
خدمات
يمكن العثور على رمز هذه في الخدمات.
- init (/bin/init): نظام init للبط.
- Pond (/bin/pond): مدير/مركبة النافذة لـ Duckos.
- Quack (/bin/quack): خادم الصوت لـ Duckos.
- عميل DHCP (/bin/dhcpclient): عميل DHCP لتعيين عنوان IP.
التطبيقات
يمكن العثور على رمز هذه في البرامج/التطبيقات.
- حاسبة (/apps/calculator.app): حاسبة أساسية.
- Terminal (/apps/terminal.app): تطبيق طرفي قائم على Libui.
- مراقبة النظام (/apps/monitor.app): مراقبة النظام الأساسية التي تُظهر الذاكرة واستخدام وحدة المعالجة المركزية.
- 4 على التوالي (/apps/4inarow.app): لعبة أساسية أربعة في صف. العب مع لاعبين أو ضد الكمبيوتر.
- Sandbar (/bin/sandbar): "شريط المهام" الأساسي الذي يعرض صفًا من الأزرار في أسفل الشاشة لبدء التطبيق.
- الملفات (/apps/files.app): تطبيق مستكشف ملف بدائي.
- عارض (تطبيقات/عارض
- LIB3D DEMO (التطبيقات/3DEMO.APP): عرض تجريبي لمكتبة LIB3D. يعرض مكعب افتراضيًا ؛ يمكن استخدامها لعرض ملفات OBJ.
- محرر (/apps/editor.app): تطبيق أساسي لتحرير الملفات النصية.
- حول (/apps/about.app): يعرض بعض معلومات النظام.
- Ducksweeper (/apps/ducksweeper.app): لعبة تجنب البط القائمة على الشبكة ؛)
برامج CLI
يمكن العثور على رمز هذه في البرامج/CoreUtils. جنبا إلى جنب مع المشتبه بهم المعتادين ، Duckos لديها:
- DSH (/bin/dsh): قذيفة أساسية مع دعم للأنابيب ، إعادة الاتجاه ، واستعادة القيادة.
- افتح (/bin/open): أداة لفتح الملفات والتطبيقات من سطر الأوامر باستخدام البرنامج المناسب.
- تشغيل (/bin/play): يلعب ملفات الصوت.
- التاريخ (/bin/التاريخ): يعرض التاريخ والوقت.
- الملف الشخصي (/bin/profile): ملفات تعريف تطبيق التشغيل وإخراج ملف متوافق مع FlameGraph/SpeedScope.
- يمكنك تشغيل
scripts/debugd.py على المضيف (مع تثبيت SpeedScope) وتمرير المعلمة -r إلى ملف تعريف لإرسال الإخراج مباشرة إلى المضيف عبر الشبكات وفتحه في SpeedScope.
ستوفر لك البرامج التي تأخذ الحجج الاستخدام الصحيح عند تشغيلها بدون حجج.
المكتبات
- LIBC: مكتبة C القياسية.
- LIBM: الجزء الرياضيات من مكتبة C القياسية.
- Libpond: المكتبة المستخدمة للتفاعل مع مدير / مركبة نافذة البركة.
- libgraphics: مكتبة توفر بعض الأدوات المساعدة للعمل مع رسومات مثل تحميل تنسيق الصور.
- Libui: إطار واجهة المستخدم للتطبيقات.
- LIBTUI: إطار للتطبيقات الطرفية.
- libterm: إطار للتعامل مع المحطات.
- Libduck: مكتبة تحتوي على فئات ومرافق شائعة الاستخدام ، مثل تحليل الوسيطة وملفات التكوين.
- المكتبة: مكتبة IPC لا تختلف عن D-BUS ، والتي توفر إطار عمل لمكالمات الوظائف عن بُعد ومرور البيانات.
- LIBAPP: مكتبة توفر طرقًا لاسترداد المعلومات حول التطبيقات المثبتة وتشغيلها.
- Libsys: يوفر تجريدات C ++ ذات المستوى الأعلى لاسترداد معلومات النظام ، وهي من Procfs.
- Libsound: يوفر إطار عمل للتطبيقات الصوتية والتواصل مع خادم الصوت ، Quack.
- LIB3D: يوفر وظائف تقديم البرامج الأساسية ثلاثية الأبعاد.
- libmatrix: يوفر مرافق الرياضيات المصفوفة.
- Libexec: يوفر دعم قزم.
- libdebug: يوفر وظائف تصحيح الأخطاء.
الموانئ
يمكن تثبيت المنافذ عن طريق تشغيل المنافذ. سيتم أيضًا بناء التبعيات المطلوبة وتثبيتها.
بعض المنافذ الأكثر إثارة هي:
- الموت
- ستحتاج إلى توفير Wadfile الخاص بك وضعه في دليل/apps/doom.app/. (انظر تعليمات الإنشاء لمزيد من التفاصيل.)
- binuTils
- مجلس التعاون الخليجي
- SDL2
- أيضا ، SDL2_GFX ، SDL2_IMAGE ، و SDL2_TTF
بناء / تشغيل
- انظر التعليمات. md للحصول على التعليمات.
المساهمة
- انظر المساهمة. md للحصول على معلومات حول كيفية المساهمة في Duckos.
الاعتمادات
- مرآة Blanham's of Liballoc 1.1 لتنفيذ تخصيص كومة kernel (إنه مجال مفتوح ، لذلك إذا كنت ترغب في استخدامه ، فإنني أوصي به بشدة)
- Serenityos للحصول على الكثير من الإلهام
- Gohufont للخط (مرخصة بموجب WTFPL)
رخصة