من فضلك تسجيل الدخول أو تسجيل لتفعل ذلك.

في عالم أنظمة التشغيل، تبرز بعض الأسماء كقواعد أساسية ساهمت في تشكيل المشهد التقني. يعد نظام CP/M أحد هذه الأسماء، ومع التطور المستمر، نرى اليوم مبادرات لإعادة إحياء هذه الأنظمة الكلاسيكية بتقنيات حديثة. هنا يأتي CP/M-386 ليمثل جسرًا بين الماضي والحاضر، حيث يقدم تجربة CP/M مصممة خصيصًا لوضع الحماية الخاص بمعالجات 386 وما بعدها.

نظرة عامة على CP/M-386

إن CP/M-386 هو نظام تشغيل مشتق من CP/M-68K، ومصمم للعمل في وضع الحماية الكامل 386. المشروع لا يزال في مراحله الأولى جدًا من التطوير، ولكنه يظهر وعدًا كبيرًا بقدراته الفريدة:

  • تطبيق كامل لوضع الحماية ذي 32 بت، مع منطقة TPA في الحلقة 3 (Ring-3).
  • قابل للإقلاع عبر قرص مرن بحجم 3.5 بوصة و1.44 ميجابايت (MBR) أو كنواة GRUB متعددة الإقلاع (Multiboot).
  • يدعم لوحات تحكم VGA النصية (0xB8000) و/أو المنافذ التسلسلية COM1 (9600/N/8/1, 0x3F8).
  • لا يتضمن حاليًا أي تعريفات للأقراص المرنة أو الصلبة أو الأقراص المدمجة أو USB أو الشبكة أو الصوت أو غيرها من التعريفات.

دعم الأجهزة

صُمم CP/M-386 ليعمل بسلاسة على مجموعة واسعة من الأنظمة الحديثة والقديمة، مع التركيز على مرونة الأجهزة. تتضمن متطلبات ودعم الأجهزة ما يلي:

  • متوافق مع أنظمة 386 (وما بعدها) التي تحتوي على 2 ميجابايت (أو أكثر) من الذاكرة.
  • يدعم الأنظمة التي تستخدم إما PC BIOS أو UEFI (مع CSM).
  • يدعم VGA، 8042 PS/2، 8250/16450/16550 UART، CMOS RTC، و 8253/8254 PIT.

التوافق مع أنظمة CP/M

يهدف CP/M-386 إلى تحقيق توافق كبير على مستوى الكود المصدري مع تطبيقات CP/M الأخرى. يُبلغ النظام حاليًا عن BDOS 2.2 للتطبيقات، ويظهر التوافق بالنسب التالية:

  • CP/M-68K 1.3: توافق بنسبة 100% مع تغطية BDOS.
  • CP/M 2.2: توافق بنسبة 100% مع تغطية BDOS.
  • CP/M-Plus (CP/M 3): دعم لأكثر من 71% من BDOS.
  • DOS-Plus: تم تنفيذ أكثر من 62% من الإضافات.
  • MP/M 2.1: اكتمل ما يقرب من 50% من الامتدادات (الوظائف المفقودة تتعلق بشكل أساسي بدعم المستخدمين المتعددين والمهام المتعددة).
  • تمت إضافة امتدادات BDOS فريدة خاصة بـ CP/M-386 لاستيعاب ميزات جديدة مثل الوصول المباشر للفيديو، والتوقيت عالي الدقة، وتوليد الأرقام العشوائية، وغيرها.

متطلبات البناء

لتجميع CP/M-386 بنجاح، تحتاج إلى توفير التبعيات التالية:

  • AWK
  • Cpmtools (الإصدار 2.23 أو أحدث).
  • GNU Binutils
  • GNU Coreutils
  • GNU GCC أو LLVM Clang
  • GNU Make
  • NASM
  • QEMU (مطلوب للاختبار فقط).

التحميلات

  • يمكن تحميل البناء الحالي لـ CP/M-386.
  • يمكن عرض سجلات GitLab CI/CD.

عملية التجميع

يتم دعم بناء CP/M-386 على الإصدارات الحالية من أنظمة NetBSD و FreeBSD، ومعظم توزيعات Linux الحديثة مثل CentOS Stream 9، Fedora 36، Debian 12، Ubuntu 18.04/22.04، Alpine 3.24، و OpenSUSE Leap 15.4.

  • بناء GCC (موصى به): استخدم الأوامر التالية:
  • make -Orecurse -j $(nproc 2> /dev/null || printf ‘%s’ 1)
  • make test
  • بناء Clang: استخدم الأمر التالي:
  • make -Orecurse -j $(nproc 2> /dev/null || printf ‘%s’ 1) CC=clang
  • يوصى باستخدام GCC حيث يكون الكود المجمع بواسطة Clang لمعالجات i386 أكبر حجمًا.
  • تأكد من استخدام make clean عند التبديل بين المترجمات أو تعديل علامات التجميع.
  • مكتبات دعم 32 بت مطلوبة لتشغيل مجموعة الاختبارات (make test).
  • ملاحظة خاصة بـ FreeBSD: قد تتطلب إعادة بناء cpmtools لضمان وظائف mkfs.cpm بشكل صحيح ودون ربط بـ libdsk لتجنب أخطاء مثل ‘Disc rejected by driver’.

مخرجات البناء

تنتج عملية البناء ملفين أساسيين:

  • cpm386.elf: صورة نواة متعددة الإقلاع (Multiboot kernel image).
  • floppy.img: صورة قرص مرن قابل للإقلاع بحجم 3.5 بوصة و1.44 ميجابايت.

يمكنك تحميل الملفات الثنائية المجمعة مسبقًا من قسم التحميلات.

الاختبار باستخدام QEMU

للاختبار باستخدام QEMU، يمكنك استخدام الأوامر التالية:

  • لنواة Multiboot (موصى به): qemu-system-i386 -m 2M -serial stdio -monitor none -kernel cpm386.elf
  • لمُحمل Floppy MBR: qemu-system-i386 -m 2M -serial stdio -monitor none -drive if=floppy,format=raw,file=floppy.img -boot a

ملاحظات حول QEMU

  • استخدم -nographic -display none -vga none لتعطيل فيديو VGA (واستخدام وحدة التحكم التسلسلية فقط).
  • استخدم -serial none لتعطيل UART التسلسلي (واستخدام وحدة تحكم VGA فقط).

الأدوات المضمنة

يأتي CP/M-386 مزودًا بمجموعة غنية من الأدوات المساعدة التي تُظهر قدراته وتفاعله مع نظام التشغيل. تتضمن هذه الأدوات برامج للاختبار والعرض والتحكم في النظام، مثل CLS.386 لمسح الشاشة، و LS.386 لسرد الملفات مع أحجامها، و HD.386 لأداة تفريغ سداسي عشري، و MANDEL.386 لرسم كسورية ماندلبروت، بالإضافة إلى أدوات للوصول المباشر للفيديو وتعديل الخطوط والتحكم في الوقت.

المساهمة في المشروع

المشروع يرحب بالمساهمات، ولكن مع سياسات واضحة تضمن جودة الكود والالتزام بالرؤية الأصلية:

  • لا يُسمح بفتح طلبات سحب تحتوي على كميات كبيرة من الكود المولّد بواسطة نماذج اللغة الكبيرة (LLM). سيتم رفضها على الفور.
  • لا يوجد حاليًا أي كود مولّد بواسطة الذكاء الاصطناعي في نظام التشغيل نفسه (على الرغم من وجود بعض الاختبارات والتعليقات والتحليلات المولّدة بواسطة الذكاء الاصطناعي)، حيث أن المشروع يهدف إلى أن يكون تجربة تعليمية للمطور بقدر ما هو منفذ نظام تشغيل مفيد.
  • يُسمح حاليًا باستخدام أدوات الذكاء الاصطناعي من قبل المساهمين، مع الالتزام بنفس شروط وسياسات استخدام أدوات الذكاء الاصطناعي الخاصة بـ LLVM، ولكن قد يتم سحب هذا الإذن في أي وقت ودون إشعار مسبق.

الخطط المستقبلية

للاطلاع على الخطط المستقبلية لمشروع CP/M-386، يمكن مراجعة ملف FUTURE.md المتوفر في مستودع المشروع.

إحصائيات الكود

تكشف إحصائيات الكود عن حجم المشروع وتنوع اللغات المستخدمة. يبلغ إجمالي الكود المكتوب في المشروع حوالي 24,438 سطرًا، موزعة على 100 ملف. تتصدر لغة C القائمة بحوالي 20,635 سطرًا من الكود، تليها ملفات C Header، ثم Makefile، ولغة التجميع (Assembly). هذه الأرقام تعكس الجهد الهندسي المبذول في بناء هذا النظام.

المرايا والتراخيص

يُوزع CP/M-386 بموجب شروط ترخيص MIT المرن. ويُعد مستودع GitLab هو الموقع الأساسي لهذا البرنامج، مع وجود مرآة على GitHub.

وقد منحت شركة Bryan W. Sparks of DRDOS, Inc. dba DeviceLogics LLC، وهي الوريث الشرعي لأصول CP/M الخاصة بـ Digital Research, Inc.، تفويضًا غير محدود لاستخدام وتوزيع وتعديل وتحسين وإتاحة تقنية CP/M، بما في ذلك أنظمة التشغيل CP/M ومشتقاتها.

يمثل CP/M-386 مشروعًا طموحًا لإحياء نظام تشغيل كلاسيكي وتكييفه مع بنية المعالجات الحديثة. إنه يقدم فرصة للمطورين والمتحمسين لاستكشاف جذور الحوسبة مع الاستفادة من قوة وضع الحماية 386. ندعو المجتمع التقني للمساهمة في هذا المشروع الواعد ومتابعته عن كثب وهو يشق طريقه في مراحل التطوير.

Isopolis: خريطة سان فرانسيسكو البكسلية متساوية الأبعاد – تحفة فنية وتقنية
ssh.place: لوحة فنية تعاونية فريدة عبر بروتوكول SSH

Reactions

0
0
0
0
0
0
بالفعل كان رد فعل لهذا المنصب.

ردود الفعل