(Compare this previous post.)
It covers general architecture, but also goes quite into detail regarding CPU architecture, bit-sliced CPUs and microcode, and generally helps in understanding even advanced concepts and what they may involve.
Another great source, predating any microcomputer related thinking, are the UNIVAC I manuals, which were written, when the concept was still new, and go into such detail that you could build a copy from the descriptions provided. As this is starting from the very principles and basic building blocks, it may provide an inspiration for thinking out-of the box and finding your very own angle point for lifting the world.
These are available at Bitsavers (I’d have a look at the Preliminary Description and the Intro To Computers): http://bitsavers.org/pdf/univac/univac1/
(However, it’s still about von Neumann architecture, or, if you prefer, Eckert–Mauchly architecture, as it is, well, by Eckert and Mauchly.)
Then, I think, @EdS tip on prototyping in a familiar language and in a familiar environment is a great one. (You can actually write a OS in basic JS for the browser, compare https://masswerk.at/jsuix/.)
Writing your own simple OS is actually pretty easy, but start with a simple processor not a PI. There’s a huge amount of baggage to make all these modern processors do much useful.
If you start with something simple like a monitor and then extend it slowly to provide basic I/O services to whatever you are running you’ll end up with something akin to as lot of the early micro systems. Disk is a bit more fun because you’ve then got to deal with storage allocation which cassette tape didn’t need.
Essentially what I did in my Ruby project - but I copied ideas because I was somewhat lazy in the early days, and I like the 6502 - so I wrote my own thing that looked like “Woz Mon” and made Apple Integer BASIC run under it, then Applesoft, then I upgraded it to an Acorn MOS look-a-like because I wanted BBC Basic.
Then I took that from the 6502 to the 65816 and used it to bootstrap my BCPL OS.
Who knows where I’m going next!
(Actually, I do know, but I don’t know if I’ll get there - yet…)
-Gordon
Ps. As well as lazy, I’ve found it hard to get away from the unix paradigm in both things like system calls and a shell-like CLI … )-:
So you know about Ben Eater’s breadboard computer based on the 6502, but he also has a project where he builds a computer and CPU from logic gates. https://eater.net/8bit
His YouTube series where he describes the project is also a good introduction to how simple CPUs can work - I think it could be useful to watch if you want a place to start, even if you don’t want to copy his design.
(edit - I don’t think it includes keyboard or much of a display, just some lights it can blink)
I found a Brainfuck CPU on Opencores.
On Google, I found another Brainfuck computer which is very minimalistic.
Unfortunately, it’s just an Arduino shield, and originally I thought of a computer with regular keyboard and display.
But a good inspiration.
It has 4-bit, 4 buttons, 10 LEDs and a buzzer.
I also found the very expensive book “Computer Architecture: A Minimalist Perspective” mentioned above, online. Maybe, there are better books, or it’s better to read several books or read websites than spending $100 for that book.