(Format: UTF-8)
Le système d'exploitation écrit en rouille
Le méthylenix est un système d'exploitation composé de rouille.
Tous sont écrits en rouille, à l'exception des zones qui ne sont utilisées que dans l'assemblage, telles que l'initialisation du démarrage et les instructions d'E / S.
L'origine de ce programme a été lorsque j'ai participé en tant qu'étudiant au cours intensif du camp de sécurité nationale 2017 "X: Créez vos propres langues et OS".
Pour plus d'informations sur les camps de sécurité, veuillez consulter le camp de sécurité: Agence de promotion des technologies de l'information, IPA Independent Administrative Agency. Nous avons même mis en œuvre des interruptions au camp de sécurité. (Référence: Notes de participation du camp de sécurité 2017 | Notes diverses de PG_MANA)
Le nom de méthylénix est tiré du groupe de méthylène. Nous voulions combiner des modules pour créer une application, tout comme les composés organiques, en combinant différentes parties, et nous avons ajouté "Nix" au groupe pour créer un groupe de méthylène qui semble être un bon mnémonique.
Copyright 2018 PG_MANA
Licencié sous la licence Apache, version 2.0 (la "licence"); Vous ne pouvez pas utiliser ce fichier sauf conforme à la licence. Vous pouvez obtenir une copie de la licence à
https://www.apache.org/licenses/license-2.0
Sauf exiger la loi applicable ou convenu par écrit, les logiciels distribués en vertu de la licence sont distribués sur une base «tel quel», sans garantie ou conditions d'aucune sorte, expresse ou implicite. Voir la licence pour la langue spécifique régissant les autorisations et les limitations sous la licence.
Logiciel requis
git clone https://github.com/PG-MANA/Methylenix.git
cd Methylenix
make iso
# created bin/img/boot.isoL'image pré-construite se trouve sur https://repo.taprix.org/pg_mana/methylenix/images/x86_64.
git clone https://github.com/PG-MANA/Methylenix.git
cd Methylenix
make TARGET_ARCH=aarch64
# created bin/EFI/BOOT/L'image pré-construite se trouve sur https://repo.taprix.org/pg_mana/methylenix/images/aarch64/.
Qemu-system-x86_64 est requis.
qemu-system-x86_64 -cpu qemu64,+fsgsbase --cdrom bin/img/boot.iso
# or (OVMF)
qemu-system-x86_64 --cdrom bin/img/boot.iso -cpu qemu64,+fsgsbase -smp 2 -m 512M -bios /usr/bin/OVMF/OVMF.fd
# or (to emulate host cpu)
qemu-system-x86_64 --cdrom bin/img/boot.iso -cpu host -smp 2 -m 512M -bios /usr/bin/OVMF/OVMF.fd --enable-kvm
# NIC and NVMe Emulation
qemu-system-x86_64 -drive if=pflash,format=raw,readonly=on,file=/path/to/OVMF_CODE.fd -drive if=pflash,format=raw,file=/path/to/QEMU_VARS.fd -m 1G -cdrom bin/img/boot.iso -smp 4 --enable-kvm -cpu host -netdev user,id=net0,hostfwd=tcp::7777-:8080 -device e1000e,netdev=net0,mac=52:54:00:12:34:56 -drive file=/path/to/img.qcow2,if=none,id=nvm -device nvme,serial=12345678,drive=nvm --boot order=dVous aurez besoin d'OVMF pour Qemu-System-Aarch64 et Aarch64.
# Modify "/usr/bin/OVMF/OVMF_AARCH64.fd" to your suitable path
qemu-system-aarch64 -m 1G -cpu a64fx -machine virt,gic-version=3 -smp 2 -nographic -bios /usr/bin/OVMF/OVMF_AARCH64.fd -drive file=fat:rw:bin/,format=raw,media=diskcargo doc --open Pour les bases, suivez https://doc.rust-lang.org/1.1.0/style/style/naming/readme.html. La mise en forme de code utilise RustFmt.
(Peut-être qu'il ne protège pas lui-même)
https://twitter.com/pg_mana_
https://pg-mana.net
https://methylenix.org (actuellement, je redirige vers Github. Quand puis-je le faire?)