Are there resources explaining what really happens in a computer?
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 ] threadIt might be better to understand the actual systems and what they do. I.E. what are the "CPUs own boot up procedures" (if any)?
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-...
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.
I am indeed trying to find some resource that lays out exactly which bits are flipped, why they go here or there, =etc...
https://www.coursera.org/learn/build-a-computer
https://www.coursera.org/learn/
Edit: for more real world example look at the Linux kernel source code, files like main.S