(Formato: UTF-8)
O sistema operacional escrito em ferrugem
Methylenix é um sistema operacional composto de ferrugem.
Todos estão escritos em ferrugem, exceto em áreas que são usadas apenas na montagem, como a inicialização da inicialização e as instruções de E/S.
A origem deste programa foi quando participei como estudante no Curso Intensivo do Campo de Segurança Nacional 2017 "X: Crie seus próprios idiomas e SO".
Para obter informações sobre campos de segurança, consulte o Campo de Segurança: Agência de Promoção de Tecnologia da Informação, Agência Administrativa Independente da IPA. Até implementamos interrupções no campo de segurança. (Referência: Notas de Participação do Campo de Segurança 2017 | Notas diversas de PG_MANA)
O nome metilenix é retirado do grupo metileno. Queríamos combinar módulos para criar um aplicativo, assim como os compostos orgânicos, combinando várias partes, e adicionamos "nix" ao grupo para criar um grupo de metileno que parece ser um bom mnemônico.
Copyright 2018 pg_mana
Licenciado sob a licença Apache, versão 2.0 (a "licença"); Você não pode usar esse arquivo, exceto em conformidade com a licença. Você pode obter uma cópia da licença em
https://www.apache.org/license/license-2.0
A menos que exigido pela lei aplicável ou acordada por escrito, o software distribuído pela licença é distribuído "como está", sem garantias ou condições de qualquer tipo, expressa ou implícita. Consulte a licença para o idioma específico que rege as permissões e limitações sob a licença.
Software necessário
git clone https://github.com/PG-MANA/Methylenix.git
cd Methylenix
make iso
# created bin/img/boot.isoA imagem pré-criada pode ser encontrada em 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/A imagem pré-construída pode ser encontrada em https://repo.taprix.org/pg_mana/methylenix/images/aarch64/.
é necessário 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=dVocê precisará do OVMF para Qemu-System-AARCH64 e 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 Para o básico, siga https://doc.rust-lang.org/1.1.0/style/style/naming/readme.html. A modelagem de código usa Rustfmt.
(Talvez ele próprio não esteja protegendo)
https://twitter.com/pg_mana_
https://pg-mana.net
https://methylenix.org (atualmente, apenas redireciono para o github. Quando posso fazer isso?)