XDU-OS-Course-Design
En raison de l'impact de Covid-19, la classe du système d'exploitation doit être effectuée à la maison. Selon la convention, il doit être effectué dans la salle informatique, car la salle informatique a été tempérée par les étudiants et devrait être relativement stable, et la salle informatique est généralement plus cohérente avec le logiciel fourni par l'enseignant.
Cependant, quelqu'un a terminé ce paramètre à domicile, en utilisant VMware15 et Ubuntu18.04 qu'il avait déjà installé, ce qui était sérieusement incompatible avec la version vidéo du cours. Il a marché sur d'innombrables pièges et l'a réinstallé plus de dix fois. Maintenant, j'utilise mon expérience douloureuse pour remplir le trou pour tout le monde.
Dans le moment de l'erreur de fonctionnement, commencez un autre jour . Avant de faire l'expérience $ k $, veuillez mettre l'expérience $ i $ ( $ forall i, i leqslant k $ ) Lisez tous les guides.
Pré-expérience et précautions!
Il y a quelques petites expériences avant l'expérience formelle. Voici quelques précautions. Si vous ne le rencontrez pas, cela ne signifie pas que vous ne le rencontrerez pas dans les expériences suivantes:
- Mémoire 2-4G (si l'ordinateur est souvent allumé, le noyau est recommandé d'avoir un écran noir, le noyau démarre l'écran noir), 4-6 cœurs, au moins 35 g pour le disque dur (les experts ne peuvent pas avoir 35g), mode de pont réseau;
- VMware utilise les versions 14 et 15, et les versions Ubuntu 18+ peuvent toutes avancer régulièrement. Le fichier ci-dessus fournit un miroir Ubuntu et VMware peut le télécharger seul;
- L'installation de VMware Tools est susceptible de ne pas fonctionner, veuillez cliquer sur l'article précédent pour le gérer;
- Les fichiers de glisser-ganglion VMware peuvent être bloqués . Veuillez redémarrer le processus de mise à mort. Répétez n fois et vous réussirez toujours une fois. N'oubliez pas d'écrire la capture d'écran dans le rapport.
- Comment transférer des fichiers lorsque les outils VMware sont souvent bloqués? Oncle Wen y ira;
- VMware est lent dans "Inside the Wall" et s'il vous plaît sauver.
Un endroit au-delà de la loi La vitesse de téléchargement est touchante et la machine peut entrer Un endroit au-delà de la loi Reportez-vous à l'article précédent; - Récupération de la machine virtuelle par erreur: barre de menu -> fichier -> scanner la machine virtuelle (scanner dans le chemin d'installation de votre machine virtuelle d'origine);
- Si le disque dur n'est pas assez grand, veuillez consulter la machine virtuelle VMware élargir l'espace disque du système Ubuntu.
Pourquoi ne pas utiliser la version scolaire ?
- Votre environnement informatique! = L'environnement informatique de l'école;
- Les versions logicielles et noyaux fournies par l'école sont extrêmement anciennes et il n'y a aucune garantie de problèmes;
- Si vous utilisez des versions en partie scolaire, les versions en partie non scolaires vous rendront généralement furieux et difficile à supprimer vos émotions.
Compilation du noyau LAB1
Conseils:
Ne compilez pas le noyau fourni par l'école. Téléchargez le dernier sur le site officiel ou utilisez-le fourni par moi dans le dossier «Compilation du noyau Lab1» (sinon il y aura des incohérences dans la version GCC, des erreurs de compilation, etc.). Il est fortement recommandé de choisir la version 4 (il n'y aura pas trop d'erreurs par rapport à la version inférieure, et les avantages par rapport à la version 5 se reflètent dans la deuxième expérience);
Il est recommandé de regarder d'abord la vidéo de l'école, de comprendre les étapes, puis de se référer au noyau de la version Tutorial 4 CSDN et au noyau de la version Tutorial 5 CSDN pour compléter la compilation du noyau;
Pour compiler 5 versions sous Ubuntu dans l'environnement 18.04:
sudo apt-get install gcc make libncurses5-dev openssl libssl-dev
sudo apt-get install build-essential
sudo apt-get install pkg-config
sudo apt-get install libc6-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install libelf-dev
- Outil d'amélioration de l'efficacité : compilation multi-thread (à condition que vous ayez plusieurs cœurs lors de la configuration), veuillez le faire lorsque vous faites (si 4 cœurs sont écrits -j4, si x les noyaux sont écrits -jy, où y≤x):
- Pourquoi ne voyez-vous pas l'option lorsque vous démarrez l'ordinateur: Suivez le ". Lab1 Kernel Compilation" Operation, Find "/ etc / Default", Entrez Grub et comptez la 7e ligne de haut en bas Grub_timeout_style = Hidden avec # Annotation.
- Pourquoi compiler différents grains?
- Il est difficile de terminer le travail complet de l'école. Différentes versions du noyau ont des points bonus et la nouvelle version du noyau est simple.
Appel système Lab2
Conseils:
- Il est fortement recommandé d'utiliser le noyau de la 4ème version pour la compilation, car les modifications du code d'appel système de la version supérieure sont différentes, alors qu'il existe peu de tutoriels pour la 5e version;
- Après avoir regardé la vidéo de l'école, regardez l'appel du système ajouté sur Ubuntu 18.04.
Module du noyau Lab3
Il y a deux parties de cette expérience. Le premier est comme suit ce que l'enseignant a dit, et le principal est le deuxième.
Le plus grand avantage de cette expérience est qu'il n'est pas nécessaire de compiler le noyau;
Reportez-vous aux deux méthodes d'ajout d'appels système sous Linux / Ubuntu18.04 (méthode de compilation du noyau | Ajout du module) et [en utilisant la méthode du module de noyau pour ajouter des appels système simples;
Remarque: Tout d'abord, suivez les invites de blog pour trouver le numéro d'appel du système disponible, consultez l'adresse du tableau d'appel système via la commande donnée par le blog (s'il existe plusieurs adresses de table, consultez le nom le plus normal) et assurez-vous de modifier directement le code du blog en fonction du code du blog en cours d'exécution.
Pilote de périphérique LAB4
- Il est important de comprendre ce que l'enseignant a dit avant de commencer;
- Erreur déverrouillée_ioctl (erreur d'avertissement est l'erreur), int-> long, reportez-vous aux fonctions IOCTL et Unlock_ioctl pour discuter;
- Si le tableau des paramètres de fonction est vide, n'oubliez pas d'écrire void, il rapportera parfois une erreur;
- J'ai fourni le code source pertinent pour référence uniquement. Il s'agit d'informations telles que le nom et le numéro d'élève, et les noms de variables sont assez spéciaux, je dois donc l'écrire avec l'enseignant;
- Lab4 est le code de test, et il est également à titre de référence uniquement.