🍊 WIP: Yet another implementation of MikanOS for aarch64 CPUs, written in Rust.

Related tags

Emulators mikan
Overview

🍊 mikan

Rust Image

Yet another implementation of MikanOS for aarch64 CPUs, written in Rust.

MikanOS (uchan-nos/mikanos) was originally created by @uchan-nos, who is author of the book ゼロからの OS 自作入門 by Mynavi Publishing Corporation. I tried to port this OS to aarch64 CPUs, written in Rust, built on macOS. For details of this OS and C++ implementation, please refer the original repository.

Note that this repository aims to implement all features of MikanOS, but their design and implementation is customised and optimised for writing in Rust.

Features

  • Supports aarch64 (ARM64) CPUs
  • Written in Rust (no_std)
  • Built on macOS

Prerequisites

  • Rust Toolchain (1.65-nightly+)
  • QEMU
  • dosfstools (macOS only)

Building

Builds a disk image and boots them on QEMU by calling only one command:

make boot

Licencing

Since the original MikanOS is licenced under the Apache 2.0 Licence (see the repo), this repository is also licenced under the licence. For details of the licence, see LICENCE.md.

Roadmap

  • Day 1: Hello world
  • Day 2: Memory map
  • Day 3: Bootloader and framebuffer
  • Day 4: Pixel drawing
  • Day 5: Text rendering and console
  • Day 6: Mouse input and PCI
  • Day 7: Interruption and FIFO
  • Day 8: Memory management
  • Day 9: Super-positioning
  • Day 10: Windows
  • Day 11: Timer and ACPI
  • Day 12: Key inputs
  • Day 13: Multi-tasking (1)
  • Day 14: Multi-tasking (2)
  • Day 15: Terminal
  • Day 16: Commands
  • Day 17: Filesystem
  • Day 18: Applications
  • Day 19: Paging
  • Day 20: System calls
  • Day 21: Windows in application
  • Day 22: Graphics and events (1)
  • Day 23: Graphics and events (2)
  • Day 24: Multiple terminals
  • Day 25: Loading files into app
  • Day 26: Writing files from app
  • Day 27: Memory management for apps
  • Day 28: Japanese (CJK) support and redirecting
  • Day 29: Inter-application communication
  • Day 30: Misc applications
You might also like...
RustBoyAdvance-NG is a Nintendo™ Game Boy Advance emulator and debugger, written in the rust programming language.
RustBoyAdvance-NG is a Nintendo™ Game Boy Advance emulator and debugger, written in the rust programming language.

RustBoyAdvance-NG Nintendo GameBoy Advance ™ emulator and debugger, written in rust. WebAssembly Demo: https://michelhe.github.io/rustboyadvance-ng/ P

An NES emulator written in Rust

Pinky Pinky is an NES emulator written in Rust completely from scratch based only on publicly available documentation. You can run it in your Web brow

NES emulator written in Rust

sprocketnes is an emulator for the Nintendo Entertainment System written in the Rust programming language. Its purpose is to serve as a technology dem

ZX Spectrum emulator written in Rust
ZX Spectrum emulator written in Rust

rustzx ZX Spectrum emulator which I writing in rust. I develop this project just for fun and for learning the basics of computer architecture. License

CHIP-8 emulator written in Rust
CHIP-8 emulator written in Rust

CHIP-8 emulator written in Rust. This is intended to be a project for gaining experience writing emulators and practice Rust.

A 6502 emulator written in Rust.

v6502 This package contains an emulator for the 6502 microprocessor. It doesn't support binary decimal (BCD) mode yet. To run the debug version: cargo

Spaghetti Chip8 Emulator Written In Rust

How to run? Command is simple: cargo run FILENAME. files are stored in the /c8games folder, use one of them. Example: cargo run INVADERS Keymap use 1

Non cycle-accurate emulator of the 6502 cpu, written in pure rust

CPU 6502 A non cycle-accurate emulator implementing all legal 6502 opcodes. What does non cycle-accurate mean? Every instruction on the 6502 takes a n

Experimental Nintendo Switch Emulator written in Rust

Kaminari Experimental Nintendo Switch Emulator written in Rust Usage You'll need to install Rust. rusc = 1.55.0 rustup = 1.24.3 Disclaimer Kaminari

Owner
Naoki Ikeguchi
engineering behind our web. ― A Web backend engineer who makes our lives convenient a little. they/them
Naoki Ikeguchi
implementations of standard library components for bare-metal aarch64

aarch64-std aarch64-std implements components from the Rust standard library in a way suitable for no_std or bare metal ARM applications. Design Goals

Chris 2 Dec 15, 2022
Another Chip8 Emulator(ACE) made using Rust

ACE(Another Chip8 Emulator) ACE(Another Chip8 Emulator) This is a chip8 emulator created using Rust programming Language. It's purpose is to learn Rus

Sakura 4 Nov 12, 2021
WIP cycle-accurate Atari 2600 emulator in Rust

Description This project's primary focus is to create a cycle-accurate emulator of the Atari 2600, and to include tools to create verifiable TASes (e.

Luke Stadem 3 Jan 10, 2022
A simple NES emulator implemented in Rust. (WIP)

remu A ?? ?? BLAZINGLY FAST* ?? ?? NES emulator implemented in Rust. Status: Work in progress. About This emulator is mainly meant to be more of a lea

luna 10 Aug 25, 2022
CHIP-8 implementation in Rust targeting AVR microcontrollers

CHIP-8 implementation for a very simple breadboard toy This is a CHIP-8 virtual machine implementation running on AVR. Its big party trick is that it

Gergő Érdi 44 Dec 31, 2022
NES emulator written in Rust to learn Rust

OxideNES A NES emulator in Rust. CPU should be accurate, PPU is mostly accurate, timing between the 2 is off for some corner cases and hardware qui

null 37 Nov 7, 2022
Chip8 emulator written in pure rust, using rust-sdl2 for graphics

Rust-8 chip8 emulator written in rust, using rust-sdl2 for graphics. Features Fully implemented all 35 original chip8 opcodes. This emulator does NOT

Chris Hinson 7 Dec 28, 2022
Commodore 64 emulator written in Rust

Rust64 - a C64 emulator written in Rust This is my attempt to study the Rust programming language and have fun at the same time. The goal is to presen

Krzysztof Kondrak 214 Dec 27, 2022
A Flash Player emulator written in Rust

website | demo | nightly builds | wiki Ruffle Ruffle is an Adobe Flash Player emulator written in the Rust programming language. Ruffle targets both t

Ruffle 11.2k Jan 8, 2023
A Game Boy research project and emulator written in Rust

Mooneye GB Mooneye GB is a Game Boy research project and emulator written in Rust. The main goals of this project are accuracy and documentation. Some

Joonas Javanainen 802 Dec 28, 2022