(Формат: UTF-8)
Операционная система, написанная в ржавчине
Methylenix - это ОС, состоящая из ржавчины.
Все они написаны в ржавчине, за исключением областей, которые используются только в сборке, такие как инициализация запуска и инструкции ввода -вывода.
Происхождение этой программы было, когда я участвовал в качестве студента в лагере национальной безопасности 2017 года «X: Создайте свои собственные языки и ОС».
Для получения информации о лагерях безопасности см. В лагере безопасности: Агентство по продвижению информационных технологий, Независимое административное агентство IPA. Мы даже внедрили прерывания в лагере безопасности. (Ссылка: лагерь безопасности 2017 Примечания к участию |
Название метиленикс взято из метиленовой группы. Мы хотели объединить модули, чтобы создать приложение, как и органические соединения, комбинируя различные части, и добавили «Nix» в группу, чтобы создать метиленовую группу, которая, кажется, является хорошей мнемонией.
Copyright 2018 PG_MANA
Лицензировано по лицензии Apache, версия 2.0 («Лицензия»); Вы не можете использовать этот файл, кроме как в соответствии с лицензией. Вы можете получить копию лицензии на
https://www.apache.org/licenses/license-2.0
Если не требуется применимый закон или не согласен в письменной форме, программное обеспечение, распространяемое по лицензии, распределяется по основам «как есть», без каких -либо гарантий или условий, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующих разрешения и ограничения по лицензии.
Требуется программное обеспечение
git clone https://github.com/PG-MANA/Methylenix.git
cd Methylenix
make iso
# created bin/img/boot.isoПредварительно построенное изображение можно найти по адресу 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/Предварительно построенное изображение можно найти по адресу https://repo.taprix.org/pg_mana/methylenix/images/aarch64/.
QEMU-System-X86_64 требуется.
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=dВам понадобится OVMF для QEMU-System-Aarch64 и 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 Для оснований следуйте https://doc.rust-lang.org/1.1.0/style/style/naming/readme.html. Формирование кода использует rustfmt.
(Может быть, он сам не защищает)
https://twitter.com/pg_mana_
https://pg-mana.net
https://methylenix.org (в настоящее время я просто перенаправляю на Github. Когда я могу это сделать?)