Re: [SLUG] books/ref. material

From: Paul M Foster (paulf@quillandmouse.com)
Date: Mon Oct 10 2005 - 01:56:18 EDT


On Sun, Oct 09, 2005 at 10:15:03PM -0500, michael hast wrote:

> What books would you gents recomend to someone who feels like they
> are hitting a wall on their way to getting deep? I've been playing with
> Linux for about seven months, and bugging you guys with my newbie
> problems for about that long, too. I've grown a lot in that time and
> learned a lot, too. All my friends esteem me as some kind of hacker, if
> you want a good laugh. It's about time that I need something bound to
> read instead of trying to soak up as much as I can on Google.
> I want to learn how to run NFS and Samba as well as the emulators.
> I would like to better familiarize myself with root commands and the
> basics of programming. I want to be able to build my own distro. So, I
> think I'll be picking up a copy of Knoppix Hacks, and I wondered what
> everyone else would recomend taking some time with. I plan on picking
> up several books that I can absorb right off the bat, and hang on to for
> reference guides, and as I read them, I anticipate getting more as well.

You're going in about eight directions at once!

1. NFS: Look in the HOWTOs for an NFS Howto that tells all about it.
It's very simple. Also see the man pages: exports(5) and exportfs(8).
Generally speaking, on any given distro, it's only necessary to
configure your exports (exports(5)) and start one or two daemons (on
Debian, nfs-common and nfs-kernel-server). For clients, you need to
specify the mount type as nfs in your /etc/fstab, and include some
optional parameters on that line (see man 5 fstab).

2. Samba: Similar thing. You set up your smb.conf (on Debian:
/etc/samba/smb.conf), and start the daemon (/etc/init.d/samba). Setting
up the smb.conf file can be a real problem, since there are 2^10
parameters, some of which would seem to conflict. I believe there is
also a Samba HOWTO. For clients, it's a little easier. I don't generally
use samba mounts, but I believe the principle is similar to the way NFS
works. You can get good books on Samba, but they're thick. And unless
you use it a lot, they aren't worth the weeks of time it will take you
to study them.

3. Root commands: If you want to be a true Wizard, forget X Window. You
can run it, but if you're going to administer your system, learn to do
it at the console or xterm. No matter what anyone says, that's the
common denominator of all *nix systems. The administrative interfaces
are all different between GNOME, KDE, SuSE, Red Hat and Debian. The
command line is what they have in common. Learn the anatomies of the
various common configuration files and where they are located. Not to
disparage lovers of emacs, but learn vi, at least enough to function. It
is easier to navigate and present on more systems than emacs.
Personally, use nano if I can, as I'm not fond of vi or emacs.

4. Programming: Argh. That's a whole subject all on its own. My advice
would be to learn C. Most other languages owe a lot to Fortran, Pascal,
BASIC, C and other procedural languages like them. C is the language of
the kernel, and many many constructs in other languages are direct
copies of C constructs. Opinions vary, but for my money, "The C
Programming Language" is the best reference on C. Unlike a lot of other
programming books, it's relatively easy to get through, and is the
definitive treatise on the language. Other languages can be learned as
well, like python and bash. But if you learn more than one language (you
should) you'll find yourself confused about how this language does
something versus that other language. But most importantly, figure out
some projects to do in the language you study, and do them. Real world
programming experience is the very best way to learn these things. And
beware of picking projects too difficult for your experience level. Pick
something you could actually do at the level where you are. The first
programs I wrote were things like a program to calculate interest, a
program to play blackjack, and a very primitive program for tracking my
checking account (long before Quicken).

5. Making your own distro. Again, another whole subject. First, find
"Linux From Scratch" on the web. It's a book (electronic) that will take
you through building a Linux distribution from scratch. You compile each
piece and put everything together on your own. There are also follow-on
projects which teach you how to enhance your system with things like X
Window and KDE. They make it very easy, though it is tedious and
time-consuming. But you will know how much of this works in the end.
After that, you can take a Knoppix disk apart and find out how those
guys did it, since they've built one of the most popular CD-based
distros out there.

6. Being perceived as a hacker. Heh, it's amazing how little you can
know and still amaze people who don't know this stuff. It's like doing
magic tricks. As long as people don't know how it's done, they're always
mesmerized by the magician. Which is one of the reasons for their
unwritten rule about never revealing the "how" of their tricks. Keep
studying, and you truly will be a hacker. That is, until you come up
against some of the guys in _this_ group. ;-}

7. Books. I've never read Robin's "Point and Click" book. I'm not really
the right public for it. And neither are you, if you want to become a
wizard. I don't know of any great Linux books for people to learn system
administration from the ground up. Maybe there are some and I just don't
know it. But most people who write books like this assume you know more
than you do. That also includes people who recommend them. The man pages
for Linux programs are grim, as far as really explaining what's going
on; they're more for reference, once you know what you're doing. The
Howtos are similar, though better than the man pages. So I don't know if
you're going to find anything out there that's really worthwhile. My
best suggestion is to visit a Barnes & Noble, and scan through what they
have on Linux. Unfortunately, their Linux selection has degraded over
time, and now you find more specialized books on this or that program,
rather than Linux as a whole. You might also consider a book specific to
your chosen distro, if there is one.

8) Distros. This is strictly a matter of personal preference. But I
would recommend a mainstream distro, rather than one of the fringe ones
like Rock Linux or Libranet. And pick one that's hacker-friendly.

Mandriva/Mandrake: Originally and still is built primarily for newbies.

SuSE: Outstanding distro, but not particularly hacker-friendly. YaST
will undo changes manually made to config files. My impression is that
SuSE does not make upgrading easy (= reinstall on upgrade) but I could
well be wrong.

Red Hat: Widely used on the internet, and quite a few distros are based
on it. But their Fedora distros are test beds for their bread-and-butter
Red Hat Enterprise Linux (RHEL). Take that for what it's worth.
Upgrading is done via something like yum or apt (meaning you don't have
to reinstall).

Slackware: Hacker friendly, but it has three problems: 1) Patrick
Volkerding has very specific BSD-based ways of doing certain things,
unlike 95% of the other distros, which do things the System V way. 2)
Patrick's not particularly concerned about standards adherence unless he
happens to agree with the standard. 3) Slackware has almost nothing in
the way of modern package management. This is in contrast to 90% of the
other distros out there, who use Yum, Apt, or something similar to
install and configure packages. That is, you won't have to compile your
own packages, but you will have to use tarballs for package installs,
and you will face dependency issues if you try to install anything
foreign to Slackware.

Gentoo: Built by true hackers and technically excellent, but their
package management is completely unique in relation to other Linux
distros. Installation is tedious, since you generally must compile every
package on your target machine (although one command generally does this
for you for each package). Translation: your package management and
installation expertise under Gentoo won't translate to other distros.

Debian: Many other distros based on Debian. Like Gentoo and Slackware,
completely non-commercial. Package management is very advanced. System
administration very hacker-friendly, since there's a dearth of system
administration tools. Looooong release cycle, and politics almost as
extreme as RMS's. (Nothing personally against RMS or what he's
accomplished, but his politics are widely acknowledged as being at the
far radical end of the spectrum as regards free software.)

Anyway, that should be enough to keep you busy for a week or two. ;-}

Paul
-----------------------------------------------------------------------
This list is provided as an unmoderated internet service by Networked
Knowledge Systems (NKS). Views and opinions expressed in messages
posted are those of the author and do not necessarily reflect the
official policy or position of NKS or any of its employees.



This archive was generated by hypermail 2.1.3 : Fri Aug 01 2014 - 18:02:19 EDT