Il s'agit de mon cours de 5e trimestre sur le sujet des «systèmes d'exploitation» au Département d'informatique et de technologies, Bauman Moscou State Technical University.
L'objectif principal est de se familiariser avec le principe du fonctionnement du noyau OS à bas niveau. En tant que séquence, développez des bibliothèques C minimales pour les tâches d'E / S (par exemple, des fonctions comme Putchat, Printf, Get, ScanF) et la gestion de la mémoire (Malloc, libre, etc.). Enfin, écrivez une application démontrant leur efficacité. Les cours ont été évalués dans Marc 5/5.
Bâtiment de projet avec outil Make. MakeFile contient toute la logique. Voici les étapes principales:
Obtenez un fichier image (disk.img) à partir de la dernière version, puis écrivez-la dans un USB ou exécutez avec x86 émulateur. Pour Qemu, c'est la commande suivante:
spam@eggs: ~ $ sudo qemu-system-i386 -hda disk.imgLinux . Développement et tests actuellement sur Ubuntu 18.04 LTS minimal.
Assurez-vous d'abord que tous les outils répertoriés dans les dépendances du bloc sont installés. Ensuite, faites ce qui suit:
spam@eggs: ~ $ git clone https://github.com/nexterot/develop-os-free
spam@eggs: ~ $ cd develop-os-free
spam@eggs: ~ $ makeEn cas d'erreurs, ou simplement pour nettoyer le répertoire:
spam@eggs: ~ $ make clean De plus, la commande suivante est un alias pour make clean && make :
spam@eggs: ~ $ make rebuildPour le tester avec l'émulateur Qemu, exécutez:
spam@eggs: ~ $ make run losetup: bin/disk.img: failed to set up loop device: Device or resource busy
Trouvez des dispositifs de boucle occupés:
spam@eggs: ~ $ losetup -aEnsuite, modifiez les lignes suivantes dans MakeFile, en modifiant '/ dev / loop2' ou et '/ dev / loop3' sur n'importe quel périphérique de boucle libre:
loop_first = /dev/loop2
loop_second = /dev/loop3
Enfin, faites:
spam@eggs: ~ $ make rebuild
