All further updates will only be present on my blog
Hey L1T!
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.
Sources
BSD 3-clause licensed git repo:
DevLogs/Updates:
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.
-
UPDATE
Dec 6, 2018 - made the git repo public -
UPDATE
Dec 9, 2018 - playing around with messagebox
Why develop an OS?
Few reasons:
- 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:
- Multi-tasking
- Multi-user
- 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.
^ Finally got UART2USB instead of janking it with Arduino, also got logic analyzer
Docs
- Broadcomm BCM2837 SoC peripherals1:
https://web.stanford.edu/class/cs140e/docs/BCM2837-ARM-Peripherals.pdf - Errata in BCM2835 SoC peripherals docs1:
https://elinux.org/BCM2835_datasheet_errata#BCM_2835_datasheet_errata - ARM Cortex-A53 and ARMv8 docs2:
https://developer.arm.com/products/processors/cortex-a/cortex-a53/docs - Raspberry Pi official hardware docs:
https://github.com/raspberrypi/documentation/tree/master/hardware/raspberrypi
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.