9

GitHub - halfer53/winix: A UNIX-style Operating System for the Waikato RISC Arch...

 2 years ago
source link: https://github.com/halfer53/winix
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

WINIX OS

Winix is a minimal, hobbyist, educational and UNIX-style Operating System for the Waikato RISC Architecture Microprocessor (WRAMP). It is a hybrid kernel with usability and performance in mind. Winix is mainly inspired by Minix1, which is the OS I learnt when I was in university.

Winix includes full-featured kernel with process and memory management, in-memory file system, exception control and user space bourne shell with interactive command line. Yes, you can even play snake on it by typing snake in the command line

Playing Snake

Using Pipe in bash

Features

  • Kernel Memory Management: visual memory, page mapping
  • Process Management: Kernel thread, process creation
  • Exception control and interrupt handler
  • In-memory file system that supports most of the POSIX api
  • A Bourne shell supporting multiple pipes and redirection
  • User memory management: malloc() free()
  • User coroutine with ucontext.h support
  • Stacktrace dump, segfault analysis

Supported Commands

How to Run

Download the latest Rexsimulator from Here

N.B. mono is required to run in Linux environment, Download Instruction

Download the latest WINIX binary winix.srec from Here

Run Rexsimulator.exe

Click Quick Load, select winix.srec

Loading Winix

How to Compile

Prerequisite

Linux / WSL

sudo apt-get install xutils-dev gcc

Clone and Compile

git clone https://github.com/halfer53/winix.git

cd winix

export PATH=`pwd`/tools/bin:$PATH

make

Debug tips

Debug Makefile

Similar to linux kbuild, Winix supports verbose option, you can debug Makefile by setting verbose to 1

make V=1

Debug Kernel

kprintf() is your friend.

trace: " type trace in bash to print all the syscalls in serial port 2

Supported System Call

Credits

Paul Monigatti


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK