(형식 : UTF-8)
녹은 운영 체제
Methylenix는 녹로 구성된 OS입니다.
스타트 업 초기화 및 I/O 명령어와 같이 어셈블리에서만 사용되는 영역을 제외하고는 모두 Rust로 작성됩니다.
이 프로그램의 기원은 제가 National Security Camp 2017 Intensive Course에서 학생으로 참여했을 때였습니다.
보안 캠프에 대한 자세한 내용은 보안 캠프 : IPA 독립 행정 기관, 정보 기술 프로모션 기관을 참조하십시오. 우리는 심지어 보안 캠프에서 인터럽트를 구현했습니다. (참조 : 보안 캠프 2017 참여 노트 | PG_MANA의 기타 노트)
Methylenix라는 이름은 메틸렌 그룹에서 가져온 것입니다. 우리는 다양한 부품을 결합하여 유기 화합물과 같은 응용 분야를 만들기 위해 모듈을 결합하고 싶었고, 그룹에 "Nix"를 추가하여 좋은 니모닉 인 것으로 보이는 메틸렌 그룹을 만들었습니다.
저작권 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=dqemu-system-aarch64 및 aarch64의 경우 OVMF가 필요합니다.
# 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로 리디렉션합니다. 언제 할 수 있습니까?)