2 ms·
Rather than "understand" I'll talk about complex "accomplishments". I once built a computer. I had Alan Clements "Microprocessor Systems Design" for an undergr
by nonrandomstring 4y ago
Rather than "understand" I'll talk about complex "accomplishments".
I once built a computer. I had Alan Clements "Microprocessor Systems
Design" for an undergraduate text and built a 68000 based machine with
64M of RAM and ROM. Using discrete ICs on two big Eurorack wirewrap
cards was hard work and needed good eyesight and dexterity. Then I
wrote a bootloader and kermit-like like RS232 program loader, and
finally hashed together a really basic OS from Tannenbaum (with a
synchronous scheduler and fixed job table). A long summer of late
nights. Can I say "I understand computers". No way! But I feel
confident I know more about them than most people I'll ever meet.
Another heroic adventure was "Linux from Scratch", compiling
everything along the way with tinycc.
These things are rites of passage. They don't mean I understand
those things, and even if I did, that knowledge is obsolete today, but
I'm glad I did them.
- stracer 4y agoAmazing. Do you have some docs / resources on this online? How would you go around building a computer out of commodity components today? Do you think compiling everything on own computer results in noticeable increase in performance? Say, distribution provides binaries built on Intel, but I want to run on AMD, does it make sense to recompile binaries on the AMD?
- nonrandomstring 4y ago> docs / resources on this online? Surprisingly the old textbook went to three editions, the last in 1997 [1] It looks as if it may be on archive.org [2], and is definitely in Google Books and LibGen. > How would you go around building a computer out of commodity components today? Good question. You could of course retrace my steps using 1980s technology, but I wouldn't advise that. The problem today is physical scale. Most components are surface mount and you really need to build multi layer boards and use a bench microscope to place and solder. Getting anything hand-built to reliably run faster than 100MHz without knowing what you're doing is no fun. Everything I spent a thousand hours building is in a SoC for $1 now. > Do you think compiling everything on own computer results in noticeable increase in performance? That's a question to ask Gentoo/Arch users (and BSD people who use Ports). I think yes, because hopefully you'll optimise for the architecture you have. But is is worth it? Given the many hours you'll wait, maybe not at my age :) Do it while you're young and can learn cool things from it. [1] https://www.goodreads.com/book/show/950048.Microprocessor_Systems_Design https://www.goodreads.com/book/show/950048.Microprocessor_Sy... [2] https://archive.org/details/microprocessor-systems-design-68000-hardware-software-and-interfacing-3e https://archive.org/details/microprocessor-systems-design-68...
- unforeseen9991 4y agoThere's also the excellent https://www.nand2tetris.org/ https://www.nand2tetris.org/ From basic computing gates all the way to running tetris. It taught me so much of the lower levels. Also a comment as a former Gentoo user of 7+ years - the performance is there - 5-15% maybe. I honestly don't think it's noticeable, it never was to me, but what you learn using Gentoo has served me very well. I moved on as well. I'm too old to deal with fixing things and all the waiting, I just want it to work haha
- stracer 4y agoThanks, I was disappointed first that it's only a virtual computer in a simulator, but then I found out there is a real physical realization, using an FPGA board: https://gitlab.com/x653/nand2tetris-fpga/ https://gitlab.com/x653/nand2tetris-fpga/
- stracer 4y agoThanks.