Thursday, January 10, 2008

How to be a network engineer in six years - Part 2

So when you last saw our hero, he had been told to RTFM, Read The Friendly Manual, and given a copy of Slackware Linux to try. I was serious about learning the UNIX-like Linux environment, and excited about my new project. I printed out the documents, took a week, and read the Installation How-To. Not an easy read, very technical, but it all made sense from my past experience. In theory anyway. So then I moved on and read the DOS/Win To Linux How-To. This was a comparison between DOS commands and UNIX commands, and a little propaganda too about how much better Linux and X-Window System are. I would definitely recommend both of these even today, years later, although save the DOS/Win document for when you hit a slump in the very long and terse Installation document, and need some perking up.

Anyway there have been a million write-ups about folks getting Linux working on this or that hardware, and it's not the point. I ended up getting Linux installed correctly on about the third try, but could not seem to get Windows to share my modem connection across the LAN with my Slackware box. The deal is, after a month of experimenting, and even installing a Slackware spin-off called Vector Linux, I ended up with a modem in my Linux box, and got it to dial up to my ISP. I learned a LOT in that month, getting around and troubleshooting the networking issues. I still remember the day I took it to work, put the modem in it, connected to the ISP, launched Netscape 4, and read Slashdot for the first time :) Very very cool.

From there I learned how to compile the kernel from source, and set up Network Address Translation (use my Slackware box as a "cable router", only using dial-up). I set up nfs, ftp, dns, and dial on demand, dhcp. By the following winter anybody could walk into my house with a PC or laptop, plug in to the ethernet, and launch their mail or browser software, and they would be on the net in a few seconds. Automagic. Think of it! In the same time it took me to get nowhere with the latest great Microsoft server system, I learned these concepts and skills:
-UNIX disk partitioning
-UNIX shell commands for working with files and running programs
-the EMACS editor
-the art of reading man (UNIX on-line manual) pages
-how to use the Slackware system configuration scripts
-how to make a serial connection with a modem using ppp
-how to use telnet to connect and use remote systems
-how to use a terminal server to hop to remote machines
-how to use CHAP to get routed to the Internet across a serial connection
-how to configure an ethernet interface on a UNIX machine
-how to configure and compile the Linux kernel from source
-how to use ftp to transfer files
-what NAT is, and how to make it work on a Linux 2.2 machine using iptables netfilter capabilities
-what DHCP is, and how to configure and use the ISC dhcpd server and dhclient UNIX tool
-what DNS is, and how to configure and use the BIND dns server, and the nslookup tool
-what NFS is, and how to configure the nfsd server and mount command
-how to use the TCP/IP tools, like ping and traceroute
-how to use the UNIX layer 3 route commands
-how to configure and use the UNIX pppd Point-to-Point Protocol Daemon to control a serial network connection
-how to find, download, configure, compile, and run UNIX C/C++ programs
-how to break the C compiler :/
-how to install Quake 2 and play it on your Slackware box :)
-that Opera was way better than Netscape 4
-netnews! rtin! PAN!
-what X-Window System is, what a window manager is, and that fvwm is a great lightweight one
-that the Linux framebuffer driver will work for X, but card-specific X-servers are much better
-how to hand-hack XFree86 using EMACS (and use tail -n to read /var/log/XFree.0.log)
-that you can burn up monitor using overly aggressive hand-tweaked X config files
-that you can listen to a cd on your laptop, while the cd is in your desktop in the other room, using NFS mount
-that you can track the positions of your buddy's team in the 24 Hours of Daytona using your laptop in the living room while watching the race
-that at the time a Pentium 100 laptop with 24MB of RAM and a 3.2GB hard disk was enough to run Slackware 7.1, and it was way faster than my Pentium II Windows machine


Okay, maybe I didn't learn all that in six months. But most of it, really! The terse style of man pages allows you to get into a technical mode where you only find the information that you need, it is all there, and you CAN find it. It is a DIY system; if you have a can-do attitude, you can do anything. You have total control over the machine, a great abstraction in UNIX, and you have the freaking source code and toolchain. Make what you want.

Looks like in part 3 we will cover moving from being a PC shop guy who discovers the wonders of UNIX to a Network Engineer. Will he escape from the Penguin's diabolical trap? Tune in next time...

No comments: