Dengan memodifikasi file sistem Linux 0.11, tambahkan panggilan sistem sederhana
Di ubuntu20.04.1 mesin virtual, menggunakan bochs untuk menjalankan file gambar linux0.11 yang dikompilasi untuk mengkompilasi linux0.11 memerlukan lingkungan GCC 32-bit, dan tautan konfigurasi lingkungan yang sederhana dan layak dilampirkan: https://gitee.com/cn-guziyang/oslab
Dengan memodifikasi file sistem Linux 0.11 (dijalankan dengan bochs), implementasinya adalah untuk menambahkan panggilan sistem yang sederhana. Ini output nameout.c panggilan "Halo, saya LWH"
Tulis program nameout.c di tingkat pengguna, buka jendela untuk memanggil fungsi sistem melalui makro syscall, dan hubungi fungsi sistem sys_nameout. Tulis fungsi sys_nameout, yang disimpan dalam kernel sistem Linux0.11 dalam format file name.c; SYS_NAMEOUT Panggilan printk () untuk menyelesaikan cetakan. Ubah file Makefile sehingga kernel/who.c yang kami tambahkan dapat dikompilasi dan ditautkan ke kode Linux lainnya.

Langkah Detail: Tambahkan Definisi Makro IAM dan Nomor Panggilan Sistem WHOAMI (_NR_XXXXXX)
Path File: /linux-0.11/**include/unistd.h ** 
Ubah Jumlah Total Path File Panggilan Sistem: /Linux-0.11/**kernel/system_call.s ** 
Tambahkan Nama Panggilan Sistem ke Panggilan Sistem yang Baru Ditambahkan dan Pertahankan Path File Tabel Panggilan Sistem: /Linux-0.11/ Sertakan/Linux/Sys.h

Tulis Kode Implementasi untuk Panggilan Sistem yang Baru Ditambahkan dan Buat name.c File File.c Path **: /Linux-0.11/Kernel**

Tulis printk ("halo, saya lwh") di name.c
Ubah Makefile
Untuk mengizinkan kernel/who.c yang kami tambahkan dapat dikompilasi dan ditautkan dengan kode Linux lainnya, kami harus memodifikasi file Makefile
Jalur file: /linux-0.11/kernel/makefile

Menulis Program Tes
Sejauh ini, bagian yang perlu dimodifikasi dalam kernel telah selesai. Selanjutnya, Anda perlu menulis program pengujian untuk memverifikasi apakah panggilan sistem yang baru ditambahkan telah dikompilasi ke dalam kernel Linux-0.11 untuk panggilan
Jalur file: /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 *, name, unsigned int, size);
int main (int argc, char *argv [])
{
Char username [64] = {0};
/ Panggilan sistem panggilan nameOut () /
nameout (nama pengguna, 24);
printf ("%s n", nama pengguna);
kembali 0;
}
Menggunakan metode pemasangan untuk mewujudkan berbagi file antara host dan sistem operasi mesin virtual, jalankan perintah berikut di direktori oslab untuk memasang direktori HDC ke sistem operasi mesin virtual

Kompilasi jalur file kernel linux: /oslab /linux
Jalankan Perintah Make di Terminal 
Membuat sukses
Jalankan Jalur File Mesin Virtual Bochs: / Oslab / Terminal untuk mengeksekusi perintah run 
Tambahkan jalur file nomor panggilan baru untuk Linux-0.11: /usr/include/unistd.h di mesin virtual (juga dapat dimodifikasi dalam antarmuka grafis setelah pemasangan) 
(Jika dimodifikasi di mesin virtual)
(Jika dimodifikasi dalam antarmuka grafis host setelah pemasangan)

GCC berjalan berhasil mengeluarkan teks kasus


Penjadwalan disk dilakukan dengan menggunakan FIFO (layanan pertama datang pertama), SSTF (prioritas pencarian terpendek), dan pemindaian (algoritma penjadwalan lift)
Tampilkan pesanan penjadwalan, hitung jumlah rata -rata trek bergerak
Tulis File Tool FileTools Menggunakan Panggilan Sistem File untuk memiliki fungsi berikut:
Buat file baru, tulis file, baca file, ubah izin file, lihat izin file saat ini, dan keluar
Gunakan jaringan pipa untuk mengimplementasikan komunikasi proses antara proses orang tua dan anak
Menghasilkan 320 urutan instruksi
Konversi urutan instruksi menjadi aliran alamat halaman
Hitung algoritma permutasi halaman pertama (FIFO), algoritma permutasi halaman terbaru dan tahan lama, dan laju hit dari algoritma permutasi halaman optimal (optimal) di bawah blok halaman memori yang berbeda
Gunakan jaringan pipa untuk mengimplementasikan komunikasi proses antara proses orang tua dan anak
Gunakan antrian buffer pesan untuk memungkinkan komunikasi antara proses klien dan server
Gunakan penyimpanan bersama untuk mencapai komunikasi proses antara dua proses