عن طريق تعديل ملفات نظام Linux 0.11 ، أضف مكالمة نظام بسيطة
على الجهاز الظاهري Ubuntu20.04.1 ، باستخدام BOCHS لتشغيل ملفات الصور Linux0.11 لمجمع linux0.11 يتطلب بيئة من دولارات الولايات المتحدة 32 بت ، ويتم إرفاق رابط تكوين البيئة البسيط والممكن:
عن طريق تعديل ملف نظام Linux 0.11 (تشغيل مع bochs) ، فإن التنفيذ هو إضافة مكالمة نظام بسيطة. هنا هو nameout.c الإخراج "مرحبا ، أنا lwh"
اكتب nameout.c على مستوى المستخدم ، افتح النافذة لاستدعاء وظيفة النظام من خلال Macro Syscall ، واتصل بوظيفة Sys_Nameout System. اكتب الوظيفة sys_nameout ، والتي يتم حفظها في kernel نظام linux0.11 بتنسيق الملف من name.c ؛ SYS_NAMEOUT يدعو printk () لإكمال النسخة المطبوعة. تعديل ملف MakeFile بحيث يمكن تجميع kernel/who.c نضيف وربطها برموز Linux الأخرى.

خطوات مفصلة: أضف تعريف الماكرو لأرقام استدعاء نظام IAM و WWHAMI (_nr_xxxxxx)
مسار الملف: /linux-0.11/*ً 
قم بتعديل إجمالي عدد مسار ملف مكالمات النظام: /linux-0.11/**kernel/system_call.s ** 
أضف اسم استدعاء النظام إلى مكالمة النظام المضافة حديثًا وصيانة مسار ملف جدول الاتصال: /linux-0.11/ تضمين/linux/sys.h

اكتب تطبيق رمز المكالمة التي تمت إضافتها حديثًا وإنشاء name.c ملف .

اكتب printk ("مرحبًا ، أنا lwh") في name.c
تعديل Makefile
للسماح لـ kernel/who.c يمكن تجميعها وربطها برمز Linux الآخر ، يجب علينا تعديل ملف makefile
مسار الملف: /linux-0.11/kernel/makefile

كتابة برنامج اختبار
حتى الآن ، تم الانتهاء من الجزء الذي يجب تعديله في النواة. بعد ذلك ، تحتاج إلى كتابة برنامج اختبار للتحقق مما إذا كانت مكالمة النظام المضافة حديثًا قد تم تجميعها في kernel Linux-0.11 للاتصال
مسار الملف: /oslab/namein.c /oslab/nameout.c

/ * nameout.c */
#DEDINE LIBRARY
#include <unistd.h>
#include <errno.h>
#include <asm/segment.h>
#include <linux/kernel.h>
#include <stdio.h>
_syscall2 (int ، nameout ، char *، name ، int غير موقعة ، الحجم) ؛
int main (int argc ، char *argv [])
{
char username [64] = {0} ؛
/ استدعاء نظام الاتصال nameout () /
nameout (اسم المستخدم ، 24) ؛
printf ("٪ s n" ، اسم المستخدم) ؛
العودة 0 ؛
}
باستخدام طريقة MOTTL لتحقيق مشاركة الملفات بين المضيف ونظام تشغيل الجهاز الظاهري ، قم بتنفيذ الأمر التالي في دليل oslab لتركيب دليل HDC إلى نظام تشغيل الجهاز الظاهري

تجميع مسار ملف kernel Linux: /Oslab /Linux
قم بتنفيذ أمر جعل في المحطة 
حقق النجاح
قم بتشغيل مسار ملف الجهاز الظاهري BOCHS: / OSLAB / Terminal لتنفيذ الأمر RUN 
أضف مسار ملف رقم مكالمة جديد لـ Linux-0.11: /usr/include/unistd.h في الجهاز الظاهري (يمكن أيضًا تعديله في الواجهة الرسومية بعد التركيب) 
(إذا تم تعديلها في الجهاز الظاهري)
(إذا تم تعديلها في الواجهة الرسومية للمضيف بعد التركيب)

يقوم GCC Run بنجاح بإخراج نص الحالة


يتم تنفيذ جدولة القرص باستخدام FIFO (First Come First Service) و SSTF (أقصر أولوية البحث) والمسح الضوئي (خوارزمية جدولة المصاعد)
عرض جدولة ، احسب متوسط عدد المسارات المتحركة
اكتب FileTools أداة الملفات باستخدام مكالمات نظام الملفات للحصول على الوظائف التالية:
قم بإنشاء ملف جديد ، واكتب ملفًا ، وقراءة ملف ، وتعديل أذونات الملف ، وعرض أذونات الملف الحالية ، والخروج
استخدم خطوط الأنابيب لتنفيذ التواصل العملية بين العمليات الوالد والطفل
توليد 320 تسلسل تعليمي
تحويل تسلسل التعليم إلى دفق عنوان الصفحة
احسب خوارزمية تقليب الصفحة الأولى في الولادة (FIFO) ، وأحدث وأطول خوارزمية تقليب الصفحات ، ومعدل الضربة لخوارزمية تقليب الصفحة الأمثل (الأمثل) ضمن كتل صفحة الذاكرة المختلفة
استخدم خطوط الأنابيب لتنفيذ التواصل العملية بين العمليات الوالد والطفل
استخدم قوائم انتظار الرسائل المخزن المؤقت لتمكين الاتصال بين عمليات العميل والخادم
استخدم سعة التخزين المشتركة لتحقيق اتصال العملية بين عمليتين