Are there resources explaining what really happens in a computer?

2 points by MichaelZuo ↗ HN
I'm thinking of something very basic, like booting up the simplest possible modern computer (raspberry pi?) to reach the BIOS or UEFI, but explained at the lowest logical level.

i.e. from the perspective of actual bits moving around here and there.

For example, a chronological explanation from the very beginning of an ideal boot-up sequence might look like this:

At t=0 the power button switch is activated.

At t=1 ns, the first signal is sent out to initiate boot up.

At t=2 ns to t=10 ns, signal is received and processed.

At t=11 ns to t=100 ns, the motherboard begins activating the CPU.

At t=100 ns to t=1000 ns, the CPU starts its own boot up procedures.

At t=x ns the first bit is read/written to RAM

At t=y ns the first bit read/written to main storage

At t=z ns the first character is displayed on the monitor

etc...

Does anyone know of any resources, including diagrams and charts, that might explain things at this level?

9 comments

[ 2.8 ms ] story [ 28.3 ms ] thread
These times are extremely variable, but you can probably get a rough sense for them (big error margins).

It might be better to understand the actual systems and what they do. I.E. what are the "CPUs own boot up procedures" (if any)?

Do you know of a resource that explains it without any abstraction?
You might like a book by Charles Petzold. Here is one [1].

Your better option is to follow an open courseware program on Operating System by a reputable institution with a track record such as MIT or CMU.

Maybe IBM has online selfstudy resources.

I don't know if it is too late in the boot process for you looking at the results from a search on the terms "arm nxp device tree boot"

[1] https://www.charlespetzold.com/blog/2022/06/Announcing-Code-...

Thanks! The book looks quite close to what I was looking for.
Unfortunately, Raspberry Pi is far from the simplest possible computer. In fact, from my understanding, the boot process for RPis is rather complex, in part because it needs to be initiated by the GPU.

Besides 80s computers which were truly simple, perhaps it would be interesting for you to first learn about microcontrollers. 8bit ones such as AVR or MSP430 would be simplest. They can still be purchased, and for relatively cheap, so you could run your own code and explore as you wish.

https://embeddedartistry.com/blog/2019/04/08/a-general-overv...

Note on Arduino: they consist of two things, hardware and software. It's a fine way to purchase a working board with an AVR microcontroller. However the software part (Arduino IDE, Arduino "language", associated libraries) are all made to hide the complexity of the hardware and make it as easy as possible to run code. This is quite fine for many people, but maybe not you.

Huh I didn't know the Pi's boot process was unusual.

I am indeed trying to find some resource that lays out exactly which bits are flipped, why they go here or there, =etc...