Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/arthurmco/rainos
A hobby operating system, designed for old computers
https://github.com/arthurmco/rainos
c easy-to-use hobby-os operating-system x86-32
Last synced: 3 months ago
JSON representation
A hobby operating system, designed for old computers
- Host: GitHub
- URL: https://github.com/arthurmco/rainos
- Owner: arthurmco
- Created: 2016-06-13T05:32:09.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-10-08T18:44:30.000Z (about 7 years ago)
- Last Synced: 2024-02-17T06:36:13.491Z (9 months ago)
- Topics: c, easy-to-use, hobby-os, operating-system, x86-32
- Language: C
- Homepage:
- Size: 288 KB
- Stars: 4
- Watchers: 4
- Forks: 2
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# RainOS
RainOS is a simple OS with a monolithic kernel, designed for old computers.
## Setup
To run it, you need a cross compiler for the i686 target. [Here](http://wiki.osdev.org/GCC_Cross-Compiler) you'll find some directionsTo compile it, just type
```
$ make
```The makefile assumes your cross-compiler folder is in the PATH.
Out-of-tree builds aren't tested.You can also type ```make iso``` to create an ISO with the system or ```make qemu``` to launch it on QEMU.
## Minimal Requirements
- A P6-level processor
- 2 MiB of RAM## ToDo list
If you want, you can help me with these tasks
- [X] Jump to usermode and run some basic code
- [X] Improve VFS and create filesystem drivers, like
- [X] a FAT driver
- [ ] a ext driver
- [ ] Add virtual 8086 support
- [ ] Add VBE support (for creating framebuffers in BIOS systems)
- [ ] Add DMA support in ATA driver
- [X] Add an ELF parser
- [ ] Launch ELF code in usermode
- [ ] Create some syscalls
- [ ] Support x86-64
- [ ] Support UEFI
- [ ] Add GOP framebuffer support (framebuffers in UEFI)
- [ ] Support, at least, one ARM board, like
- [ ] Integrator/CP
- [ ] Beaglebone
- [ ] Raspberry PI
- [ ] Add SATA disk support
- [ ] Add networking
- [ ] Add USB support