

Ask HN: Possible to know everything in a computer system, like in old days? - wbsun

There was a similar topic on HN about trying to know everything in a modern computer system, like in old days with those simple CPUs and simple devices .. But now even an OS developer can&#x27;t become expert in every components due to the complexity of modern computer systems. I am wondering is there any effort that tries to help people get there? OS development and source code explanation tutorials are very good examples, but most of them are really really old and focused on basic functionality..
======
samwilliams
I have spent the last year developing an Operating System as my Bsc
dissertation. In September I will begin a PhD, the focus of which firmly
resides in OS design.

I may be under qualified to say this, but I believe pretty strongly that the
number of people that truly understand everything that happens when they use a
computer is tending towards zero. This is partially the fault of rising
hardware complexity, but more fundamentally your Intel/AMD CPU, your SSD etc
is not open source. It is unlikely then that you will be able to understand
exactly what your computer is doing when you execute an instruction, because
Intel will not tell you how it works, only that it does. You could of course
reverse engineer the chips, but I do not believe that anybody has.

There are a number of places you can go to learn more about how modern systems
work, I will list the fruitful resources I have used below.

\- wiki.osdev.org/Main_Page

This wiki has a lot of valuable information, if you have not already found it.

\- www.intel.com/content/www/us/en/processors/architectures-software-
developer-manuals.html?iid=tech_vt_tech+64-32_manuals

The Intel manuals describe how the CPU frontend functions, but does not
explain how this functionality is implemented on the backend. The problem here
is volume. The combined volumes weigh in at over 3300 pages.

\- scholar.google.com

\- Wikipedia

I hope this has been helpful - good luck!

------
damian2000
Raspberry Pi was an attempt to get people (kids especially) thinking about
computing at a lower level than the modern windowed OS/smart phone OS. I've
done a bit of bare metal programming on it myself which is a good way to get a
feel for the ARM processor, without an OS in the way. There's a project here
which is a tutorial on building an OS on the RPi from the ground up:

[https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/](https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/)

I have also done a small amount of FPGA work which is more towards the
hardware level, bypassing a CPU altogether.

------
gshubert17
Have you looked at [http://www.nand2tetris.org/](http://www.nand2tetris.org/)
and the book The Elements of Computing Systems, MIT Press, By Noam Nisan and
Shimon Schocken?

"The site contains all the software tools and project materials necessary to
build a general-purpose computer system from the ground up. We also provide a
set of lectures designed to support a typical course on the subject."

------
jloughry
Designing and building a CPU from scratch is still possible; in fact it's
easier now (using an FPGA and a hardware design language) than it was a few
years ago (using 7400-series TTL chips and wire wrap). It's old, but I highly
recommend the book _Understanding Digital Computers_ by Forrest M. Mims
(1987). It teaches the architecture of a four-bit computer _completely_ and is
sufficient to gain a foothold from which to read Hennessey and Patterson. From
there, read Gordon Bell's description of the VAX (and _The Soul of a New
Machine_ ). For perspective, learn about the architecture of Burroughs and the
IBM AS/400.

I can think of no better way to grok the underlying hardware. Write a simple
assembler. Next, begin writing an OS.

------
Grothendieck
Niklaus Wirth's Oberon system
([http://projectoberon.com/](http://projectoberon.com/)) includes a complete
CPU (in Verilog), compiler, and OS. I haven't studied it, though.

For a slightly more common architecture (although hopefully we are entering an
FPGA-enabled golden age), try Harris & Harris's "Digital design and computer
architecture". It covers the MIPS designs (using both SystemVerilog and VHDL
simultaneously) in H&P's "Computer organization and design", but in a more
compact and systematic way (omitting H&P's broad but shallow coverage of
advanced topics).

------
Zardoz84
One of the ideas behind of "Trillek" game is having a computer were you can do
anything like could do you do in a old computer of the 80's. So, is possible
know everything about this computer for a normal personal.
[https://github.com/trillek-team/trillek-computer](https://github.com/trillek-
team/trillek-computer)

Obviously , the trick is that we have a computer defined by the emulation
software and not by real hardware, so it allow to make some short-cuts and
simplifier some stuff that in a physical computer will be more problematic.

------
olssy
Nope, but it sure is fun trying!

