https://github.com/laurmaedje/arm-hello
hello world OS for aarch64 architecture
https://github.com/laurmaedje/arm-hello
aarch64 os-dev rust-lang
Last synced: 6 months ago
JSON representation
hello world OS for aarch64 architecture
- Host: GitHub
- URL: https://github.com/laurmaedje/arm-hello
- Owner: laurmaedje
- License: mit
- Created: 2018-02-04T17:25:53.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2020-09-27T15:47:00.000Z (about 5 years ago)
- Last Synced: 2025-02-08T22:23:11.334Z (8 months ago)
- Topics: aarch64, os-dev, rust-lang
- Language: Rust
- Homepage:
- Size: 8.79 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# arm-hello
This is an Hello-World-OS in Rust running on the `aarch64` architecture.
This project is written purely in Rust using inline assembly for startup.## Build and run
This project depends on
- [Rust](https://www.rust-lang.org)
- [Xargo](https://github.com/japaric/xargo)
- [QEMU](https://www.qemu.org/)
- [Aarch64-Toolchain](https://packages.ubuntu.com/de/trusty/gcc-aarch64-linux-gnu)If you have installed these, just run
```
> make run
```## Resources
Because there is no such thing as a VGA-Buffer for this architecture, output is printed to the serial console through the port UART0, which QEMU supports through the `-nographic` or `-serial stdio` options.
This [post][1] for ARM bare metal coding in `C` was really helpful for getting a grasp of it.This [bootloader][2] project from Philipp Oppermann helped finding out how to embed assembly in rust. For more OS-stuff there is his awesome series [Writing an OS in Rust][2].
[1]: https://balau82.wordpress.com/2010/02/28/hello-world-for-bare-metal-arm-using-qemu/
[2]: https://github.com/phil-opp/bootloader
[3]: https://os.phil-opp.com/