HN2new | past | comments | ask | show | jobs | submitlogin

What is a good resource for understanding how all of this works? Books, site, tutorial, minix usenet threads... I don't care, just something to get me started.

edit:

Assuming I'm a standard, competent web dev-ish Ruby, Python programmer with little experience below those languages.



I'm actually planning on writing some tutorials based around DCPU-16 as it's a nice small instruction set with very orthogonal addressing modes (but don't worry if you don't know what that means :-)

Sort of a "Assembly Language for Python programmers" guide


I would absolutely love to read this when it's done. Having never officially studied any of this I feel my knowledge is really lacking.


I wouldn't be able to help with the more modern stuff but given DCPU-16 is designed to be an 80s-era CPU it suits my experience quite well :-)


I'm not really looking to learn as a means to expand my field of working expertise but more for the sake of it. My programming experience has been firmly rooted in higher level languages and I think this is a perfect opportunity to learn something new and potentially useful. I don't like the idea of having the lower levels of programming remain a black box as such


You might be interested in py4fun - it has a fairly light weight introduction to a "mythical machine", including assembler and compiler: http://openbookproject.net/py4fun/


First read K&R C and get comfortable writing C programs. Then pick up the latest edition of Patterson & Hennessy and learn the MIPS ISA. It's a very simple instruction set that avoids most of the pedagogical distractions imposed by x86 or some other more complicated architecture.


Second Hennesy & Patterson. Read it 12 years ago, still remember it vividly; everything made more sense afterwards.

It's expensive though; you might do just as well with a used older edition.

A somewhat perverse alternative approach: get a book on how debuggers work (like "How Debuggers Work").


I actually have the pleasure of taking a course with Patterson this semester. He's a great lecturer and he manages to keep the (sometimes very dry) material very interesting.


The book is pretty well-written, but I've found the exercises to be very hard to get through. Still, it's a great resource for this type of work.


Fucker broke my wrist .. wrong book to read on the crapper.


Why the latest edition? We're using the 2nd edition (from 1998) in my computer architecture class this semester and it seems just fine. Even better was getting it off Half.com for <$10 after shipping.


Personally, I think that the latest edition has a lot of valuable material on parallelism and GPU programming. It's not strictly necessary for what he was asking, but its good stuff to know nonetheless.


Wow, that's a good deal. In my comp arch class, we've been forced to get the newest edition -- that is, the 4th edition, revised. Different from the 4th edition, which we used in computer organization last semester. I'm not sure how much new material has been added, but there's certainly a hefty price increase associated with buying the newest edition.


There are two books co-authored by Patterson and Hennessy. Which one do you mean? "Computer Architecture: A Quantitative Approach" or "Computer Organization and Design: the Hardware/Software Interface"?


Computer Organization and Design. The other book goes further in to detail about the hardware and is intended for an EE-oriented audience.


Your best bet is a university text book on computer architecture. The course I took used a decimal based CPU (not binary) and had many other "simplifications" but its probably your best bet, at least unless you want to learn assembly level programming full stop... in which case there is some really good 32bit linux asm tutorials out there (64 bit stuff isn't as common).

This is basically part of most first year IT / CS courses, and kind of not used in day to day IT so many self taught programmers never learn it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: