En modifiant les fichiers système Linux 0.11, ajoutez un appel système simple
Sur Ubuntu20.04.1 Virtual Machine, l'utilisation de Bochs pour exécuter Linux0.11 Fichiers d'image compilés pour compiler Linux0.11 nécessite un environnement GCC 32 bits, et un lien de configuration d'environnement simple et réalisable est joint: https://gitee.com/cn-guoziyang/oslab
En modifiant le fichier système Linux 0.11 (exécutez avec des bochs), l'implémentation consiste à ajouter un appel système simple. Voici l'appel Nomout.c Sortie "Bonjour, je suis lwh"
Écrivez le programme Nameout.c au niveau de l'utilisateur, ouvrez la fenêtre pour appeler la fonction système via la macro syscall et appeler la fonction système SYS_NAMEOut. Écrivez la fonction sys_nameout, qui est enregistrée dans le noyau système Linux0.11 dans le format de fichier de name.c; sys_nameout appelle printk () pour terminer l'impression. Modifiez le fichier MakeFile afin que le noyau / who.c que nous ajoutons puisse être compilé et lié à d'autres codes Linux.

Étapes détaillées: Ajoutez la définition macro des numéros d'appel du système IAM et WHOAMI (_NR_XXXXXX)
Chemin de fichier: /Linux-0.11/**include/unistd.h ** 
Modifier le nombre total de chemins de fichier d'appels système: /Linux-0.11/**kernel/system_call.s ** 
Ajoutez le nom d'appel système à l'appel système nouvellement ajouté et maintenez le chemin du fichier de table d'appel système: /Linux-0.11/ include / linux / sys.h

Écrivez l'implémentation du code pour l'appel système nouvellement ajouté et créez un name.c de fichier .

Écrire printk ("bonjour, je suis lwh") dans Name.c
Modifier makefile
Pour permettre au noyau / who.c que nous ajoutons peut être compilé et lié à un autre code Linux, nous devons modifier le fichier MakeFile
Chemin de fichier: /Linux-0.11/kernel/makefile

Rédaction d'un programme de test
Jusqu'à présent, la pièce qui doit être modifiée dans le noyau est terminée. Ensuite, vous devez rédiger un programme de test pour vérifier si l'appel système nouvellement ajouté a été compilé dans le noyau Linux-0.11 pour l'appel
Chemin de fichier: /oslab/namein.c /oslab/nameout.c

/ * nameout.c * /
#Define Library
#include <unistd.h>
#include <rrno.h>
#include <asm / segment.h>
#include <linux / kernel.h>
#include <stdio.h>
_SysCall2 (int, nameout, char *, nom, unsigned int, size);
int main (int argc, char * argv [])
{
Nom d'utilisateur char [64] = {0};
/ Appel d'appel d'appel système () /
nameout (nom d'utilisateur, 24);
printf ("% s n", nom d'utilisateur);
retour 0;
}
En utilisant la méthode Mount pour réaliser le partage de fichiers entre l'hôte et le système d'exploitation de machine virtuelle, exécutez la commande suivante dans oslab pour monter le répertoire HDC sur le système d'exploitation de la machine virtuelle

Compiler le chemin du fichier du noyau Linux: / OSLAB / Linux
Exécutez la commande de fabrication dans le terminal 
Réussir
Exécutez le chemin du fichier machine virtuel Bochs: / OSLAB / Terminal pour exécuter la commande RUN 
Ajoutez un nouveau chemin de fichier de numéro d'appel pour Linux-0.11: /usr/include/unistd.h dans la machine virtuelle (peut également être modifié dans l'interface graphique après le montage) 
(S'il est modifié dans la machine virtuelle)
(S'il est modifié dans l'interface graphique de l'hôte après le montage)

GCC RUNE STUPTS PROPRIE TEXT


La planification du disque est effectuée à l'aide de FIFO (premier arrivé premier service), SSTF (plus court Seek Priority) et Scan (algorithme de planification de l'ascenseur)
Afficher l'ordre de planification, calculer le nombre moyen de pistes en mouvement
Écrivez un outil de fichier FileTools à l'aide d'appels de système de fichiers pour avoir les fonctions suivantes:
Créer un nouveau fichier, écrire un fichier, lire un fichier, modifier les autorisations de fichier, afficher les autorisations de fichier actuelles et quitter
Utilisez des pipelines pour implémenter la communication des processus entre les processus parent et enfant
Générer 320 séquences d'instructions
Convertir la séquence d'instructions en flux d'adresse de page
Calculez l'algorithme de permutation de la page de la page de la première sortie (FIFO), l'algorithme de permutation de page le plus récent et le plus durable, et la vitesse de vie de l'algorithme de permutation de page optimal (optimal) sous différents blocs de page de mémoire
Utilisez des pipelines pour implémenter la communication des processus entre les processus parent et enfant
Utilisez des files d'attente de tampon de messages pour permettre la communication entre les processus client et serveur
Utilisez un stockage partagé pour réaliser la communication des processus entre deux processus