Gloworm هو نظام تشغيل بسيط يشبه Unix مكتوب في C للأجهزة الرجعية ، وتحديداً سلسلة Computie68K من أجهزة الكمبيوتر. يعتمد الأمر إلى حد كبير على تصميم أنظمة التشغيل وتنفيذها 2ed بواسطة Andrew S. Tanenbaum ، على الرغم من أنني ذهبت مع تصميم متجانس ، على الأقل في الوقت الحالي ، من أجل بساطة ذلك. يمكن أن تفعل تعدد المهام الوقائية باستخدام مؤقت 68681. كما أنه يحتوي على تطبيق لنظام ملفات Minix الإصدار 1 ، والذي يستخدم RAM (من خلال برنامج تشغيل الجهاز) لتخزين البيانات ، أو بطاقة فلاش مضغوطة متصلة كجهاز IDE. يمكن تكوين المنفذ التسلسلي الثاني كجهاز انزلاق ، مع تطبيق أساسي لـ UDP و TCP من خلال واجهة برمجة تطبيقات على غرار Sockets BSD ، ويتم توفير أمر NTP لتحديث وقت النظام عند التمهيد (عند التمهيد من القرص).

يظهر الفيديو أعلاه الذي يتواصل عبر المسلسل من جهاز كمبيوتر حديث وإعادة ضبط الأجهزة لتشغيل الشاشة في ROM التي تعرض رسالة الترحيب. تم تحميل kernel بالفعل في ذاكرة الوصول العشوائي ، لذا فإن تشغيل أمر التمهيد سيؤدي إلى تشغيل kernel الذي يبدأ القشرة. من shell ، يتم عرض بعض عمليات الملفات الأساسية وأمر PS.

يظهر الفيديو أعلاه الذي يتصل بالمسلسل من جهاز كمبيوتر حديث بعد تشغيل اللوحة أولاً. يتم تشغيل الشاشة أولاً ، مع إعطاء موجه ">". تم حرق جهاز تحميل التشغيل في Flash على العنوان 0x20000. من الشاشة ، يتم تشغيل محمل التمهيد ، والذي يقوم بعد ذلك بتحميل النواة من بطاقة فلاش مضغوطة متصلة. تمثل كل فترة (.) مطبوعة 1 كيلوغرامًا من البيانات المحملة من القرص). ثم يقفز محمل التمهيد إلى kernel المحملة ، والذي يعرض رسائل التمهيد قبل تشغيل عملية البداية من القرص. تقوم عملية البداية أولاً بتشغيل sh /etc/rc "، الذي يقوم بتشغيل أمر NTPDATE لتحديث وقت النظام. ثم يقوم بتشغيل قذيفة تفاعلية.
يتم عرض بعض الأوامر بعد التمهيد ، ثم يتم تشغيل برنامج HTTPD (الذي تم تعطيله في الوقت الحالي). من جهاز كمبيوتر آخر ، يتم تشغيل أمر Curl لإصدار طلب إلى اللوحة. يستجيب برنامج HTTPD بالبيانات "هذه رسالة سرية"
لتجميع النواة للنقل عبر المسلسل ، قم بتشغيل:
make kernel.load يمكن إرسالها على المسلسل مثل الشاشة. قد ترغب في تعديل تكوين kernel في src/kernel/main.c إذا كنت تستخدم لوحة بدون بطاقة compactflash ، أو لا تريد استخدام الشبكات.
يمكن بناء الصورة باستخدام جهاز الاسترجاع ومتابعة الأوامر:
make create-image
make mount-image
make build-system
make umount-image والتي ستنتج صورة قرص 20 ميغابايت في minix-build.img باستخدام build/ الدليل باعتباره نقطة التثبيت ، ونظام ملفات minix1. لا يتضمن جدول أقسام ، بحيث يجب إنشاؤه على محرك أقراص فلاش بوسائل أخرى. يمكن كتابته إلى ملف جهاز الحظر الخاص بالقسم باستخدام dd على سطح مكتب يشبه UNIX.
من أجل تشغيل جهاز CompactFlash مباشرةً 0x020000 يمكن تحميل برنامج boot.load . يجب أن يكون موقعًا خارج قطاع شريحة الفلاش التي يتم فيها كتابة الشاشة ، وإلا فلن يكون النظام غير قابل للتطبيق. لا تحتوي صورة boot.bin على جدول متجه مثل الشاشة.
بعد إرسال ملف boot.load عبر المسلسل ، دون تشغيله ، في الشاشة ، قم بتشغيل ما يلي:
eraserom 20000
writerom 20000
verifyrom 20000يمكنك بعد ذلك التمهيد من الشاشة في أي وقت عن طريق التشغيل:
boot 20000سيقوم جهاز تحميل التشغيل بطباعة حرفًا لكل 1 كيلو من صورة kernel المحملة من القرص إلى ذاكرة الوصول العشوائي ، ثم سيتم تشغيل kernel بعد. إذا نجحت ، فيجب أن ترى LED Heartbeat يومض للإشارة إلى أن النواة تعمل ويتم تمكين المعالجة المتعددة والتبديل.
إذا تم توصيل المنفذ التسلسلي الثاني بسطح مكتب ، فسيتصرف مثل اتصال الانزلاق ، والذي يمكن سدته إلى شبكة سطح المكتب ، حيث /dev/ttyUSB1 هو الجهاز التسلسلي المتصلة بالمنفذ التسلسلي الثاني للوحة ، و 192.168.1.x .
sudo slattach -s 38400 -p slip /dev/ttyUSB1
sudo ifconfig sl0 192.168.1.2 pointopoint 192.168.1.200 up
# (this is automatically added on my machine, but might be required) sudo route add -host 192.168.1.200 sl0
sudo arp -Ds 192.168.1.200 enp3s0 pub
sudo iptables -A FORWARD -i sl0 -j ACCEPT
sudo iptables -A FORWARD -o sl0 -j ACCEPT
sudo sh -c " echo 1 > /proc/sys/net/ipv4/ip_forward " سيكون للجهاز IP 192.168.1.200 والذي يحتاج أيضًا إلى تكوينه في وظيفة src/kernel/main.c في kernel في الأسفل.