(รูปแบบ: UTF-8)
ระบบปฏิบัติการเขียนเป็นสนิม
Methylenix เป็นระบบปฏิบัติการที่ทำจากสนิม
ทั้งหมดถูกเขียนเป็นสนิมยกเว้นพื้นที่ที่ใช้ในแอสเซมบลีเท่านั้นเช่นการเริ่มต้นเริ่มต้นและคำแนะนำ I/O
ที่มาของโปรแกรมนี้คือเมื่อฉันเข้าร่วมเป็นนักเรียนในหลักสูตรความมั่นคงแห่งชาติค่าย 2017 "X: สร้างภาษาและระบบปฏิบัติการของคุณเอง"
สำหรับข้อมูลเกี่ยวกับค่ายรักษาความปลอดภัยโปรดดูค่ายรักษาความปลอดภัย: หน่วยงานส่งเสริมเทคโนโลยีสารสนเทศสำนักงานบริหารอิสระ 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=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 ฉันจะทำได้เมื่อไหร่?)