โดยการแก้ไขไฟล์ระบบ Linux 0.11 ให้เพิ่มการโทรระบบอย่างง่าย
บน Ubuntu20.04.1 เครื่องเสมือนจริงโดยใช้ Bochs เพื่อเรียกใช้ไฟล์ภาพ Linux0.11 เพื่อรวบรวม Linux0.11 ต้องใช้สภาพแวดล้อม GCC ขนาด 32 บิตและลิงก์การกำหนดค่าสภาพแวดล้อมที่เรียบง่ายและเป็นไปได้
โดยการแก้ไขไฟล์ระบบ Linux 0.11 (เรียกใช้กับ BOCHS) การใช้งานคือการเพิ่มการโทรระบบอย่างง่าย นี่คือการโทร nameout.c เอาต์พุต "สวัสดีฉันคือ lwh"
เขียนโปรแกรม nameout.c ที่ระดับผู้ใช้เปิดหน้าต่างเพื่อเรียกใช้ฟังก์ชันระบบผ่านมาโคร Syscall และเรียกใช้ฟังก์ชันระบบ SYS_NAMEOUT เขียนฟังก์ชั่น sys_nameout ซึ่งบันทึกไว้ในเคอร์เนลระบบ Linux0.11 ในรูปแบบไฟล์ของ name.c; sys_nameout เรียก printk () เพื่อให้เสร็จสิ้นการพิมพ์ แก้ไขไฟล์ MakeFile เพื่อให้เคอร์เนล/WHO.C เราเพิ่มสามารถรวบรวมและเชื่อมโยงกับรหัส Linux อื่น ๆ

ขั้นตอนโดยละเอียด: เพิ่มคำจำกัดความแมโครของหมายเลขโทรของ IAM และ WHOAMI (_NR_XXXXXX)
เส้นทางไฟล์: /linux-0.11/**include/unistd.h ** 
แก้ไขจำนวนทั้งหมดของการโทรของระบบพา ธ ไฟล์: /linux-0.11/**kernel/system_call.s ** 
เพิ่มชื่อการโทรระบบลงในการเรียกระบบที่เพิ่มขึ้นใหม่และบำรุงรักษาเส้นทางไฟล์ตารางโทรระบบ: /linux-0.11/ include/linux/sys.h

การใช้งานรหัสเขียนสำหรับการเรียกระบบที่เพิ่มขึ้นใหม่และสร้าง name.c ไฟล์ ไฟล์พาพา ธ **: /loninux-0.11/kernel**

เขียน printk ("สวัสดีฉันคือ lwh") ใน name.c
แก้ไข makefile
ในการอนุญาตให้เคอร์เนล/WHO.C เราเพิ่มสามารถรวบรวมและเชื่อมโยงกับรหัส Linux อื่น ๆ เราต้องแก้ไขไฟล์ MakeFile
เส้นทางไฟล์: /linux-0.11/kernel/makefile

การเขียนโปรแกรมทดสอบ
จนถึงตอนนี้ส่วนที่ต้องแก้ไขในเคอร์เนลเสร็จสมบูรณ์แล้ว ถัดไปคุณต้องเขียนโปรแกรมทดสอบเพื่อตรวจสอบว่าการโทรระบบที่เพิ่มขึ้นใหม่ได้รับการรวบรวมลงในเคอร์เนล Linux-0.11 สำหรับการโทร
เส้นทางไฟล์: /oslab/namein.c /oslab/nameout.c

/ * nameout.c */
#define Library
#include <Unistd.h>
#include <errno.h>
#include <asm/segment.h>
#include <Linux/Kernel.h>
#include <stdio.h>
_syscall2 (int, nameout, char *, ชื่อ, int ที่ไม่ได้ลงชื่อ, ขนาด);
int main (int argc, char *argv [])
-
ชื่อผู้ใช้ถ่าน [64] = {0};
/ การโทรระบบโทร nameout () /
Nameout (ชื่อผู้ใช้, 24);
printf ("%s n", ชื่อผู้ใช้);
กลับ 0;
-
การใช้วิธีการเมานต์เพื่อรับรู้การแชร์ไฟล์ระหว่างโฮสต์และระบบปฏิบัติการเสมือนจริงให้ดำเนินการคำสั่งต่อไปนี้ในไดเรกทอรี oslab เพื่อเมานต์ไดเรกทอรี HDC ไปยังระบบปฏิบัติการเสมือนจริง

รวบรวมเส้นทางไฟล์เคอร์เนล Linux: /OSLAB /Linux
ดำเนินการคำสั่ง make ในเทอร์มินัล 
สร้างความสำเร็จ
เรียกใช้เส้นทางไฟล์เครื่องเสมือน BOCHS: / OSLAB / เทอร์มินัลเพื่อเรียกใช้คำสั่ง RUN 
เพิ่มเส้นทางไฟล์หมายเลขโทรใหม่สำหรับ Linux-0.11: /usr/include/unistd.h ในเครื่องเสมือน (สามารถแก้ไขได้ในอินเตอร์เฟสกราฟิกหลังจากการติดตั้ง) 
(ถ้าแก้ไขในเครื่องเสมือน)
(ถ้าแก้ไขในส่วนต่อประสานกราฟิกของโฮสต์หลังจากการติดตั้ง)

GCC รันข้อความเคสได้สำเร็จ


การกำหนดเวลาดิสก์จะดำเนินการโดยใช้ FIFO (บริการแรกมาแรก), SSTF (ลำดับความสำคัญค้นหาที่สั้นที่สุด) และสแกน (อัลกอริทึมการกำหนดตารางเวลาลิฟต์)
แสดงลำดับการกำหนดเวลาคำนวณจำนวนเฉลี่ยของแทร็กที่เคลื่อนที่
เขียน FileTools เครื่องมือไฟล์โดยใช้การเรียกใช้ระบบไฟล์เพื่อให้มีฟังก์ชั่นต่อไปนี้:
สร้างไฟล์ใหม่เขียนไฟล์อ่านไฟล์แก้ไขสิทธิ์ไฟล์ดูสิทธิ์ไฟล์ปัจจุบันและออก
ใช้ท่อเพื่อใช้การสื่อสารกระบวนการระหว่างกระบวนการผู้ปกครองและเด็ก
สร้างลำดับคำสั่ง 320 ลำดับ
แปลงลำดับคำสั่งเป็นสตรีมที่อยู่หน้าเว็บ
คำนวณอัลกอริทึมการเปลี่ยนรูปหน้าแรก (FIFO) ครั้งแรก (FIFO) อัลกอริทึมการเปลี่ยนแปลงของหน้าล่าสุดและยาวนานที่สุดและอัตราการเข้าชมของอัลกอริทึมการเปลี่ยนแปลงหน้าเว็บที่เหมาะสมที่สุดภายใต้บล็อกหน้าหน่วยความจำที่แตกต่างกันที่แตกต่างกัน
ใช้ท่อเพื่อใช้การสื่อสารกระบวนการระหว่างกระบวนการผู้ปกครองและเด็ก
ใช้คิวบัฟเฟอร์ข้อความเพื่อเปิดใช้งานการสื่อสารระหว่างกระบวนการไคลเอนต์และเซิร์ฟเวอร์
ใช้ที่เก็บข้อมูลที่ใช้ร่วมกันเพื่อให้บรรลุการสื่อสารกระบวนการระหว่างสองกระบวนการ