
Learning operating system development using Linux kernel and Raspberry Pi - axiomdata316
https://github.com/s-matyukevich/raspberry-pi-os
======
vinhboy
I like the introduction

> But my first attempt was a complete failure - I understood almost nothing.

This is how I feel every time I dig into something. Disappointingly, rarely do
I have the time or focus to truly learn how something really works. Be it a
library I am using, or a physics concept I want to learn more about.

Good for him for getting through it. I am adding this to my long ass list of
things I would read if I could freeze time like that girl from the 90's TV
show.

------
satori99
I recently bought a USB serial cable online to play around with this sort of
thing, and promptly saw a blue-screen in windows 10 for the first time I can
remember.

It turned out I had unknowingly bought a fake Prolific cable and the (non-
fake) windows driver was crashing my whole system every five minutes or so
when the cable was connected.

I worked around this by tracking down an older driver with no crash issues so
I guess the latest one does this deliberately?

In any case, if you are planning on getting a USB serial cable make sure it's
not a counterfeit, if you can.

~~~
hueving
Relevant reading:
[https://www.theregister.co.uk/2016/01/31/ftdi_accused_of_bri...](https://www.theregister.co.uk/2016/01/31/ftdi_accused_of_bricking_counterfeits_again/)

~~~
berti
TL;DR Avoid anything that even sounds like it might involve FTDI unless you
can absolutely prove supply chain from one end to the other (near impossible).
There are some good alternatives like SiLabs CP2102 around.

------
O_H_E
Does anybody have a better way to kick off my low level programming journey?

How much do you recommend "The C Programming Language" for someone who just
used Java / Python, and wanna start learning C and low level?

Do you recommend learning "current" Rust as a first low level Lang.

~~~
tenaciousDaniel
I'm not familiar with low-level, so I'm not sure how "low" you mean, but I've
begun the NAND2Tetris course on coursera and it's pretty great so far. You
basically implement a VM from scratch: [https://www.coursera.org/learn/build-
a-computer](https://www.coursera.org/learn/build-a-computer)

~~~
SilasX
I actually took that early this year and LOVED it, and was looking for a good
followup course. I was toying around with CS140e (also uses RPi 3 and Rust)[1]
but this one looks more appropriate.

[1]
[https://web.stanford.edu/class/cs140e/](https://web.stanford.edu/class/cs140e/)

------
zeth___
How does this deal with the binary blobs that need to start the boot loader?
From memory the older models needed to launch the graphics chip first which
was a hack-y nightmare with no open source way of doing it.

~~~
pjc50
It ignores that and starts at the point where the kernel is loaded by that
first-stage bootloader. Which is very reasonable for a beginner's
introduction.

~~~
zeth___
Fair enough, there's a bunch of fully open source computers that let you
really build things from the ground up:
[https://www.olimex.com/Products/OLinuXino/A10/open-source-
ha...](https://www.olimex.com/Products/OLinuXino/A10/open-source-hardware)

Completely out of time to do anything for it but this company getting more
traction would be really good given how completely open they are.

~~~
wolfgke
> Fair enough, there's a bunch of fully open source computers that let you
> really build things from the ground up

Concerning your linked example: if I look at the specs at

>
> [https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-...](https://www.olimex.com/Products/OLinuXino/A10/A10-OLinuXino-
> LIME-n4GB/open-source-hardware)

I see Mali 400 GPU. Is this GPU now fully open source?

~~~
pabs3
> I see Mali 400 GPU. Is this GPU now fully open source?

If you are talking about drivers (rather than the GPU itself), there are
reverse engineered drivers:

[https://github.com/yuq/mesa-lima/](https://github.com/yuq/mesa-lima/)
[https://github.com/yuq/linux-lima](https://github.com/yuq/linux-lima)
[https://gitlab.freedesktop.org/lima](https://gitlab.freedesktop.org/lima)

For the newer Mali GPUs there is the Panfrost driver:

[https://notabug.org/cafe/chai](https://notabug.org/cafe/chai)
[https://gitlab.freedesktop.org/panfrost](https://gitlab.freedesktop.org/panfrost)
[https://rosenzweig.io/blog/](https://rosenzweig.io/blog/)

------
zokier
Based on the title I was hoping more emphasis on the interesting userland
bits, leaving the boring kernel parts to Linux. I feel that osdev generally
focuses too much on the well-trodden elementary basic building blocks, and
less on actual systems design, which has left the community with endless half-
baked (generally more or less posixy style) kernels and few novel userlands.

Android is great example how you can do interesting OS development work by
building upon stable foundations, focusing on userland, but also not fearing
to poke kernel when needed.

I don't mean to disparage anyone, least of all the repo here that seems pretty
nice resource for what it is. Just the title happened to tickle my imagination
just right.

------
molteanu
Alternative: Xinu-Os with BeagleBone.

