هذا هو مدة الدرجة الخامسة الخاصة بي حول موضوع "أنظمة التشغيل" في قسم علوم الكمبيوتر والتقنيات ، جامعة باومان موسكو التقنية التقنية.
الهدف الرئيسي هو التعرف على مبدأ تشغيل Kernel OS في مستوى منخفض. كتسلسل ، قم بتطوير الحد الأدنى من مكتبات C لمهام الإدخال/الإخراج (على سبيل المثال ، وظائف مثل Putchat و PrintF و Gets و ScanF) وإدارة الذاكرة (Malloc ، مجانًا ، وما إلى ذلك). أخيرًا ، اكتب تطبيقًا يوضح كفاءته. تم تقييم الدورات الدراسية في علامة 5/5.
بناء المشروع مع أداة صنع. Makefile يحتوي على كل المنطق. فيما يلي الخطوات الرئيسية:
احصل على ملف الصورة (disk.img) من أحدث إصدار ، ثم اكتبه إلى USB أو تشغيله مع محاكي x86. بالنسبة إلى QEMU ، هو الأمر التالي:
spam@eggs: ~ $ sudo qemu-system-i386 -hda disk.imgLinux . تطوير واختبار حاليا على Ubuntu 18.04 LTS الحد الأدنى.
تأكد أولاً من أن لديك جميع الأدوات المدرجة في كتلة التبعيات المثبتة. ثم افعل ما يلي:
spam@eggs: ~ $ git clone https://github.com/nexterot/develop-os-free
spam@eggs: ~ $ cd develop-os-free
spam@eggs: ~ $ makeفي حالة وجود أخطاء ، أو فقط لتنظيف الدليل:
spam@eggs: ~ $ make clean أيضا ، فإن الأمر التالي هو مستعار make clean && make :
spam@eggs: ~ $ make rebuildلاختباره مع محاكي QEMU ، قم بتشغيل:
spam@eggs: ~ $ make run losetup: bin/disk.img: failed to set up loop device: Device or resource busy
ابحث عن أجهزة حلقة مشغولة:
spam@eggs: ~ $ losetup -aثم قم بتحرير الأسطر التالية في Makefile ، وتغيير '/dev/loop2' أو و '/dev/loop3' إلى أي جهاز حلقة مجاني:
loop_first = /dev/loop2
loop_second = /dev/loop3
أخيرا افعل:
spam@eggs: ~ $ make rebuild
