Skip to content
moizumi99 edited this page Feb 12, 2017 · 5 revisions

Welcome to the RPiHaribote wiki!

Screenshot with RaspberryPi

What's this:

This is Raspberry Pi porting of Haribote OS

What is Haribote OS?:

Haribote is an OS for educational purpose released by Hidemi Kawai in 2006 for x86. The uniqueness of the OS was that it was released as a form of a book "30 nichi-de dekiru! OS jisaku nyumon ("Let's build an OS in 30 days") that explains every line of the code, so the reader can learn how OS works. You can buy the book from here. Highly recommended read if you read Japanese and are interested in the inner mechanism of operating system. https://book.mynavi.jp/ec/products/detail/id=22078

What platform does it run?:

It runs on Raspberry Pi B+ Rev2.0. I haven't tested with other platform yet.

What can it do?

It is an educational purpose OS, so it does very little. Still it comes with the followin functions

  • Provides basic GUI
  • Support input from mouse and keyboard
  • Provide basic console function with a few commands
  • Read files from root directory
  • Run application in protected memory space
  • Provides pre-emptive multi-tasking
  • Displays Japanese test as well as English
  • Plays music with buzzer function
  • Provides some level of protection to OS
  • Provides basic APIs for applications, such as file read, graphic drawing, keyboard input, etc.
  • Comes with some applications such as text file viewer, MML player, an invader-like game, etc.

Where can you get the original Haribote OS?:

You can download it from here https://book.mynavi.jp/supportsite/detail/4839919844.html The support web page is here http://oswiki.osask.jp/ and here http://hrb.osask.jp/wiki/

What has been changed from the original Haribote?

All the functionalities that depends on CPU function or DOS/Windows platform is replaced with the ones for ARM and Raspberry PI.

  • Basically, all assembler codes are written from scratch to adapt to ARM architecture.
  • Compiler tool-chain is moved to gcc, instead of Haribote's unique tool chain.
  • All the peripheral access has been rebuilt from scratch.
  • Mouse/keyboard support is realized by CSUD (https://github.com/Chadderz121/csud).
  • Timer support is Re-written.
  • Graphic initialization is written from scratch.
  • Beep sound is enabled using PWM at very low frequency.
  • Instead of the segmentation used in the original Haribote, paging is used to realize OS/application protection and multi-tasking
  • Multi-tasking related codes are all re-built from scratch
  • UART support and JTAG support is added
  • Files including applications are read from SDCARD instead of floppy disk
  • FAT16 is supported instead of FAT12
  • Bootloader is removed.