Inspired by #devember2k18 (thread) I decided to post a thread here about my current main project . Operating System development for Raspberry Pi 3 B. I am only targeting Raspi 3 B, since that what I have.
BSD 3-clause licensed git repo:
This project is in very slow update phase atm because of uni and upcoming exams.
I am going to post devlogs and more on my blog and link them here. Why not post directly here? I like to keep my data for myself
Plus shameless self-promotion.
Why develop an OS?
- I wanna learn more about function of OS, and I learn best by doing
- I am also planning to use parts of the code for another project
- Coding in C is fun.
I tried my hand in OS dev before, but didn’t get too far. In fact FermiOS first was planned for x86 PC platform, but since I find them overly complicated (at least for the first try) I decided not to resurrect that project and start from scratch on Pi.
Old x86 attempt:
What is it going to be?
Hopefully it’s going to be a multi-task, multi-user OS inspired by POSIX, but not compliant, since I want to be free in experimenting with it.
Main points of interest to develop:
- File System (possible homebrew)
- USB Host
- TCP/IP Stack
CLI first, but GUI should come later, too.
What is it now?
Atm it’s nothing but a dumb pre-programmed serial console.
^ Funny thing I don’t have a USB to serial cable, so I am using Arduino Uno as one.
- Broadcomm BCM2837 SoC peripherals1:
- Errata in BCM2835 SoC peripherals docs1:
- ARM Cortex-A53 and ARMv8 docs2:
- Raspberry Pi official hardware docs:
1: AFAIK BCM2837 has same peripherals as BCM2835. The difference between them are ARM core and more clocked VideoCore.
2: You probs want ARM® Architecture Reference Manual ARMv8, for ARMv8-A architecture profile
and Arm Cortex-A53 MPCore Processor Technical Reference Manual
Year of Dev and beyond
I want to commit to a single main project (side projects may happen, but need to be extremely small ones) so I can, for once, finish one.
So in that spirit I want to give updates at least once a week on ongoing progress. It might be as simple as “This week I researched X in order to do Y”, or be a full blown blogpost devlog.
Well, hopefully this will make me accountable since (hopefully) there are eyes on me now.