Newbie Roadmap?

From: Howard Owen
Date: Mon Jun 27 2005 - 13:22:55 EST


I've embarked on a project to write device drivers for an obscure and
rare ISA card. It's a modern version of the HP 82973 HP-IL interface
produced by Cristoph Klug. HP-IL was a bit-serial, dog-slow version of
HP-IB (IEEE-488) that was designed to work with the HP-41C family of
calculators, and later with the HP-71 and HP-85. The 41C calculators are
my hobby interest. I'd like to introduce myself, and ask for pointers
for a newbie device driver author.

A little about me. I've been working in IT since before it was called
that. I started out in 1985, so that's 20 years. I've been a systems
engineer, then a systems administrator, then a systems engineer again,
then a systems architect. Those titles had various meanings at various
times, but the common denominator has always been systems, systems and
systems. I have little academic background, learning most of what I know
on the job, on line and at conferences, symposia and training courses.
The first kernel architecture I learned about was VAX/VMS 4. I've delved
deeper into BSD and Linux than any other kernel architectures, but it
has been only as a bug chaser. I've needed to understand the Red Hat
version of the 2.4 kernel at my most recent job in order to be able to
triage bugs and suggest solutions. My C programming skills are fair. I
can read kernel code, and with the help of LXR, I can gain some
understanding of what is going on. I probably know just enough to be
dangerous slinging my own code around. 8)

What I've done so far: I've picked up and started reading "Linux Device
Drivers" both editions 2 and 3. I'm about half way through Love's "Linux
Kernel Development" I've gotten my device to work under DOSEMU with its
userland port access. (The existing software is DOS) Using DOSEMU, I've
watched the dialog between the software and the card, and also with
external devices. I've talked about the architecture with an interested
colleague and made some tentative choices on that front. I'm starting
out running Slack 10.1, so I'll probably tackle the 2.4 driver first.

At this juncture I'd like to start engaging with the wider community, to
make sure I'm not going too far astray. The current driver, once it's
finished, won't need wide distribution, since I'm sure there are fewer
than 100 boards in existence. But I'd like to write the driver as if it
were going to have a wide audience, both for the education in the
discipline of writing such things, and for the enjoyment of doing it the
right way.

If anyone has suggestions or pointers for a newbie with the above
background, I'd greatly appreciate hearing from you.

Thanks,
--
Howard Owen hbo@xxxxxxxxx "Even if you are on the right
EGBOK Consultants Linux Architect track, you'll get run over if you
fwd:50279 pstn:+1-650-218-2216 just sit there." - Will Rogers

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/