GNU GDB GCC disassembler linux unix ubuntu ... ideas?
I'm studying some basic systems programming stuff on my own. The book makes references to things like GNU, GDB, GCC, disassemblers, etc.
I would like to create a practice environment for myself. I have a Mac computer with a Windows 7 dual boot. The Mac has a Terminal application, and some sort of Unix stuff hanging around in the background. But I'm open to the idea of buying a dedicated mid-priced pure Linux/Ubuntu laptop to practice on. I also saw some books on assembly language and GNU/GCC/GDB stuff on Amazon. I think a collection of good books and a Linux computer would be a good practice environment. Plus (I think) I could run an ethernet cable 3 feet from my Macbook Pro to the Linux computer and practice some (very) basic Linux networking.
Could someone recommend a computer and books collection for this pursuit? I'm trying to get skilled at being able to use a disassembler, use the GNU tools, become fluent at reading object code.
This is the stuff I need to get good at:
unix> gcc -01 -o prog code.o main.c
unix> objdump -d code.o
(gdb) x/17xb sum
55 89 e5 8b 45 0c
mov %esp, %ebp
mov 0xc(%ebp), %eax
This stuff probably looks like "Chinese" to a general Java programmer. But this is the systems grit I need to get good at. I'm hoping there are some veteran programmers here who understand the learning path I'm trying to pursue.
Thanks for any ideas on what books/computer I should buy.