https://github.com/imtjl/io-systems
Low-level I/O systems: OpenSBI, bare-metal C, Linux drivers.
https://github.com/imtjl/io-systems
bare-metal io-systems linux-drivers low-level-programming opensbi opensbi-qemu-linux riscv32
Last synced: 9 months ago
JSON representation
Low-level I/O systems: OpenSBI, bare-metal C, Linux drivers.
- Host: GitHub
- URL: https://github.com/imtjl/io-systems
- Owner: Imtjl
- Created: 2025-02-14T13:40:55.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-03-14T09:57:38.000Z (9 months ago)
- Last Synced: 2025-03-14T10:37:16.384Z (9 months ago)
- Topics: bare-metal, io-systems, linux-drivers, low-level-programming, opensbi, opensbi-qemu-linux, riscv32
- Language: C
- Homepage:
- Size: 1.29 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🖥️ IO-Systems Course Repository
Welcome to the **IO-Systems** course repository! This repo contains labs and
projects exploring low-level I/O systems, from bare-metal programming to Linux
drivers. 🛠️
---
## 📂 Repository Structure
```bash
.
├── opensbi-console-menu # lab1: bare metal i/o with OpenSBI
└── coming soon...
```
---
## 🚀 Lab 1: OpenSBI Console Menu
In this lab, you'll work at the **loader level**, writing bare-metal C code that
interacts with **OpenSBI** (between firmware and OS levels). You'll implement
basic I/O functions and create a menu-driven interface to interact with OpenSBI.
### 🛠️ How to Run
1. Clone the repository:
```bash
git clone https://github.com/your-username/io-systems.git
cd io-systems
```
2. Navigate to the lab directory:
```bash
cd opensbi-console-menu
```
3. Run the script:
```bash
./script.sh
```
That's it! The script will build the kernel, download OpenSBI (if needed), and
launch QEMU. 🎉