Al modificar los archivos del sistema Linux 0.11, agregue una llamada de sistema simple
En la máquina virtual Ubuntu20.04.1, utilizando BOCHS para ejecutar archivos de imagen compilados Linux0.11 para compilar Linux0.11 requiere un entorno GCC de 32 bits, y se adjunta un enlace de configuración de entorno simple y factible: https://gitee.com/cn-guoziyang/oslab
Al modificar el archivo del sistema Linux 0.11 (ejecutar con BOCHS), la implementación es agregar una llamada de sistema simple. Aquí está el nombre de llamada.
Escriba el programa NameOut.c a nivel de usuario, abra la ventana para llamar a la función del sistema a través de la macro SYSCall y llamar a la función del sistema SYS_NAMEOUT. Escriba la función SYS_NAMEOT, que se guarda en el núcleo del sistema Linux0.11 en el formato de archivo de Name.c; SYS_NAMEOUT llama printk () para completar la impresión. Modifique el archivo MakeFile para que el kernel/quién.c agregamos se pueda compilar y vincular a otros códigos de Linux.

Pasos detallados: agregue la definición macro de los números de llamadas del sistema IAM y WHOAMI (_nr_xxxxxx)
Ruta del archivo: /linux-0.11/**include/unistd.h ** 
Modifique el número total de llamadas del sistema ruta del archivo: /linux-0.11/**kernel/system_call.s ** 
Agregue el nombre de llamada del sistema a la llamada del sistema recientemente agregada y mantenga la ruta del archivo de la tabla de llamadas del sistema: /linux-0.11/ include/linux/sys.h

Escriba la implementación del código para la llamada del sistema recientemente agregada y cree una ruta de archivo name.c archivo.

Escribe printk ("Hola, soy LWH") en nombre.c
Modificar makfile
Para permitir que el kernel/quién.c agregamos se puede compilar y vincular con otro código de Linux, debemos modificar el archivo MakeFile
Ruta del archivo: /linux-0.11/kernel/makefile

Escribir un programa de prueba
Hasta ahora, se ha completado la parte que debe modificarse en el núcleo. A continuación, debe escribir un programa de prueba para verificar si la llamada del sistema recién agregada se ha compilado en el kernel de Linux-0.11 para la llamada
Ruta del archivo: /oslab/namein.c /oslab/nameout.c

/ * nameOut.c */
#Biblioteca define
#Include <Unistd.h>
#include <errno.h>
#include <asm/segment.h>
#Include <linux/kernel.h>
#Include <stdio.h>
_syscall2 (int, nameOut, char *, nombre, unsigned int, size);
int main (int argc, char *argv [])
{
Char UserName [64] = {0};
/ Llamando al nombre del nombre del sistema () /
nameOut (nombre de usuario, 24);
printf ("%s n", nombre de usuario);
regresar 0;
}
Usando el método de montaje para realizar el intercambio de archivos entre el host y el sistema operativo de la máquina virtual, ejecute el siguiente comando en oslab para montar el directorio HDC al sistema operativo de la máquina virtual

Compilar la ruta del archivo del kernel de Linux: /Oslab /Linux
Ejecutar el comando make en la terminal 
Tener éxito
Ejecute la ruta del archivo de la máquina virtual de BOCHS: / OSLAB / Terminal para ejecutar el comando Ejecutar 
Agregue una nueva ruta del archivo de número de llamada para Linux-0.11: /usr/include/unistd.h en la máquina virtual (también se puede modificar en la interfaz gráfica después del montaje) 
(Si se modifica en la máquina virtual)
(Si se modifica en la interfaz gráfica del host después del montaje)

GCC Ejecutar con éxito genera texto de casos


La programación de disco se realiza utilizando FIFO (First Coming First Service), SSTF (Prioridad de búsqueda más corta) y Escaneo (Algoritmo de programación de ascensores)
Mostrar orden de programación, calcule el número promedio de pistas móviles
Escriba una herramienta de archivo FileTools utilizando las llamadas del sistema de archivos para tener las siguientes funciones:
Cree un nuevo archivo, escriba un archivo, lea un archivo, modifique los permisos de archivo, vea los permisos de archivo actuales y salga
Use tuberías para implementar la comunicación de procesos entre los procesos de los padres y los niños
Generar 320 secuencias de instrucciones
Convertir la secuencia de instrucciones en la secuencia de direcciones de la página
Calcule el algoritmo de permutación de la página primero en primera salida (FIFO), el algoritmo de permiso de permiso de página más reciente y más largo y la más larga y la tasa de éxito del algoritmo de permutación de página óptimo (óptimo) bajo diferentes bloques de página de memoria
Use tuberías para implementar la comunicación de procesos entre los procesos de los padres y los niños
Use colas de búfer de mensajes para habilitar la comunicación entre los procesos del cliente y el servidor
Use el almacenamiento compartido para lograr la comunicación de procesos entre dos procesos