Awesome
OS Project
- Author: Richard James Howe
- License: MIT
- Email: howe.r.j.89@gmail.com
- Repo: https://github.com/howerj/os
Attempts at a new operating system and programming language.
This is a work in progress/collection of documents.
To Do
- Add resources to a document folder for easy access to all things operating system related, add git repositories if possible, for a complete history.
- Implement a RISC-V 64 bit core, with an MMU
- Implement a cross compiler for a Pascal/Oberon variant
- Implement bootstrapping tools
- Create a toy kernel
- Expand into a Unix kernel
- Develop user-land
- Make a TCL like shell
- Busybox equivalent
- Compiler for Pascal/Oberon variant
- Turn system into self-hosting one
- Remove cross compiler and bootstrapping tools
- Remove documentation
- Create project documentation
Resources
- j1eforth https://github.com/samawati/j1eforth (for the network/UART peripheral)
- TCP/IP code https://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/
- Gameboy emulator in 68 lines of code https://binji.github.io/posts/pokegb/ (for the graphics peripheral)
- Oberon Emulator https://github.com/pdewacht/oberon-risc-emu
- RISC-V 64-bit Emulator in Rust https://book.rvemu.app/
- RISC-V Core list https://github.com/riscv/riscv-cores-list
- xv6 Unix like OS https://pdos.csail.mit.edu/6.828/2019/xv6.html
- Toy SQL engine in Go https://github.com/eatonphil/gosql
- PL/0 https://en.wikipedia.org/wiki/PL/0
- Project Oberon http://www.projectoberon.com/, https://people.inf.ethz.ch/wirth/ProjectOberon/
- P-Code https://en.wikipedia.org/wiki/P-code_machine
- RISC-V OS in Rust http://osblog.stephenmarz.com/index.html
- SQLite Clone https://cstack.github.io/db_tutorial/, https://github.com/cstack/db_tutorial, https://blog.pankajtanwar.in/how-database-indexing-actually-works-internally, https://notes.eatonphil.com/database-basics-indexes.html
- GitFs, an interesting use of Git https://github.com/Presslabs/gitfs, to provide a synchronized and versioned file system that can have multiple views
- TCP Stack unit tests https://www.snellman.net/blog/archive/2015-07-09-unit-testing-a-tcp-stack/