258 lines
9.7 KiB
HTML
258 lines
9.7 KiB
HTML
<!--startcut ======================================================= -->
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
|
<html>
|
|
<head>
|
|
<META NAME="generator" CONTENT="lgazmail v1.3F.f">
|
|
<TITLE>The Answer Gang 71: Is This a Good Book for Linux Programming?</TITLE>
|
|
</HEAD><BODY BGCOLOR="#FFFFFF" TEXT="#000000"
|
|
LINK="#3366FF" VLINK="#A000A0">
|
|
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
|
<P> <hr>
|
|
<CENTER>
|
|
<!-- *** BEGIN navbar *** -->
|
|
<!-- *** END navbar *** -->
|
|
</CENTER>
|
|
</p>
|
|
<P> <hr>
|
|
<!-- begin tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::-->
|
|
<p align="center">
|
|
<table width="100%" border="0"><tr>
|
|
<td align="right" valign="center"
|
|
><IMG ALT="" SRC="../../gx/navbar/left.jpg"
|
|
WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="middle" border="0"
|
|
><A HREF="..//"
|
|
><IMG SRC="../../gx/navbar/toc.jpg" align="middle"
|
|
ALT="[ Table Of Contents ]" border="0"></A
|
|
><A HREF="../lg_answer71.html"
|
|
><IMG SRC="../../gx/dennis/answertoc.jpg" align="middle"
|
|
ALT="[ Answer Guy Current Index ]" border="0"></A></td>
|
|
<td align="center" valign="center"><A HREF="../lg_answer71.html#greeting"><img align="middle"
|
|
src="../../gx/dennis/smily.gif" alt="greetings" border="0"></A>
|
|
<A HREF="1.html">1</A>
|
|
<A HREF="2.html">2</A>
|
|
<A HREF="3.html">3</A>
|
|
<A HREF="4.html">4</A>
|
|
<A HREF="5.html">5</A>
|
|
<A HREF="6.html">6</A>
|
|
<A HREF="7.html">7</A>
|
|
<A HREF="8.html">8</A>
|
|
|
|
</td>
|
|
<td align="left" valign="center"><A HREF="../../tag/kb.html"
|
|
><IMG SRC="../../gx/dennis/answerpast.jpg" align="middle"
|
|
ALT="[ Index of Past Answers ]" border="0"></A
|
|
><IMG ALT="" SRC="../../gx/navbar/right.jpg" align="middle"
|
|
WIDTH="14" HEIGHT="45" BORDER="0"></td></tr></table>
|
|
</p>
|
|
<!-- end tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::::-->
|
|
<P> <hr> <P>
|
|
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
|
<center>
|
|
<H1><A NAME="answer">
|
|
<img src="../../gx/dennis/qbubble.gif" alt="(?)"
|
|
border="0" align="middle">
|
|
<font color="#B03060">The Answer Gang</font>
|
|
<img src="../../gx/dennis/bbubble.gif" alt="(!)"
|
|
border="0" align="middle">
|
|
</A></H1>
|
|
<BR>
|
|
<H4>By Jim Dennis, Ben Okopnik, Dan Wilder, Breen, Chris, and the Gang,
|
|
the Editors of Linux Gazette...
|
|
and You!
|
|
<br>Send questions (or interesting answers) to
|
|
<a href="mailto:linux-questions-only@ssc.com">linux-questions-only@ssc.com</a>
|
|
</H4>
|
|
<p><em><font color="#990000">There is no guarantee that your questions
|
|
here will <b>ever</b> be answered. Readers at confidential sites
|
|
must provide permission to publish. However, you can be published
|
|
anonymously - just let us know!
|
|
</font></em></p>
|
|
</center>
|
|
|
|
<p><hr><p>
|
|
<!-- endcut ======================================================= -->
|
|
<!-- begin 4 -->
|
|
<H3 align="left"><img src="../../gx/dennis/qbubble.gif"
|
|
height="50" width="60" alt="(?) " border="0"
|
|
>Is This a Good Book for Linux Programming?</H3>
|
|
|
|
|
|
<p><strong>From Chris Gianakopoulos
|
|
</strong></p>
|
|
<p></strong></p>
|
|
|
|
<p align="right"><strong>Answered By John Karns, Faber Fedor
|
|
</strong></p>
|
|
<P><STRONG>
|
|
<IMG SRC="../../gx/dennis/qbub.gif" ALT="(?)"
|
|
HEIGHT="28" WIDTH="50" BORDER="0"
|
|
>
|
|
Hello Gang,
|
|
I've mentioned that I am working on an embedded project that will use
|
|
Linux as its kernel. As a result, I am learning to write cool software
|
|
for the Linux platform.
|
|
</STRONG></P>
|
|
<P><STRONG>
|
|
The type of stuff that I have to do will be fork()s and exec()s (the "s"
|
|
indicates lots of <TT> fork()</TT> and <TT> exec()</TT> invocations), IPC stuff, signals (I
|
|
know -- that's IPC stuff, too). and pipes. I know that there will be
|
|
slight differences (for example, the <TT> spawn()</TT> function), but now for the
|
|
question.
|
|
</STRONG></P>
|
|
<P><STRONG>
|
|
There are lots of good guides (and of course, the man pages). I am also
|
|
presently reading a book entitled "Advanced Programming in the Unix
|
|
Environment" by Stevens.
|
|
</STRONG></P>
|
|
<P><STRONG>
|
|
Will that Stevens book lead me astray? It really is giving me lots of
|
|
good insight (what other insight could there be?), so I hope that you
|
|
tell me that it is good reading for learning to create complex software
|
|
systems in Linux.
|
|
</STRONG></P>
|
|
<P><STRONG>
|
|
Of course, I will read the man pages and guides, and I expect that some
|
|
header file may be in different places (I saw slight differences for
|
|
network programming).
|
|
</STRONG></P>
|
|
<blockQuote>
|
|
<IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
|
|
HEIGHT="28" WIDTH="50" BORDER="0"
|
|
> [J.Karns]
|
|
I've seen that book recommended for Linux programming on a LUG list I
|
|
subscribe to. Additionally, this one:
|
|
</blockQuote>
|
|
<blockQuote><BLOCKQuote>
|
|
The Design of the Unix Operating System, Pr. Hall, ISBN-0-13-201799-7
|
|
Moris J. Bach
|
|
</BLOCKQuote></blockQuote>
|
|
<P><STRONG>
|
|
<IMG SRC="../../gx/dennis/qbub.gif" ALT="(?)"
|
|
HEIGHT="28" WIDTH="50" BORDER="0"
|
|
>
|
|
Thanks for the confirmation. I've got the Bach book and read it years
|
|
ago. It is my reference for Unix internals.
|
|
I will read the Stevens book just for the sport of it since it applies
|
|
to my <A HREF="http://www.freebsd.org/">FreeBSD</A> system. I am happy that it also applies to Linux.
|
|
</STRONG></P>
|
|
<blockQuote>
|
|
<IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
|
|
HEIGHT="28" WIDTH="50" BORDER="0"
|
|
> [Faber]
|
|
Excellent book, IMO. I was re-reading it Friday night (yes, I need a
|
|
life
|
|
<IMG SRC="../../gx/dennis/smily.gif" ALT=";-)"
|
|
height="24" width="20" align="middle"> and still learning new things.
|
|
</blockQuote>
|
|
<P><STRONG>
|
|
<IMG SRC="../../gx/dennis/qbub.gif" ALT="(?)"
|
|
HEIGHT="28" WIDTH="50" BORDER="0"
|
|
>
|
|
I claim to have a life -- my peers don't agree with me when I start to
|
|
talk about technical stuff. I'm almost finished with chapter 9 -- the
|
|
stuff that talks about session leaders and stuff. Soon I read about
|
|
signals -- almost like writing interrupt handlers only a little easier.
|
|
</STRONG></P>
|
|
<blockQuote>
|
|
<IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
|
|
HEIGHT="28" WIDTH="50" BORDER="0"
|
|
> [Faber]
|
|
I don't do the kind of programming that you do, but I think the
|
|
combination of the Stevens book and the kernel documentation
|
|
(usr/src/linux/Documentation assuming you've installed the kernel
|
|
sources) should do you well
|
|
</blockQuote>
|
|
<P><STRONG>
|
|
<IMG SRC="../../gx/dennis/qbub.gif" ALT="(?)"
|
|
HEIGHT="28" WIDTH="50" BORDER="0"
|
|
>
|
|
It will be not quite like an embedded project. That's what makes it fun
|
|
because it will be more like standard Unix programming (which I have not
|
|
yet done). I'll have to deal with such issues as do I run various
|
|
servers as daemons? What if I want daemon-to-daemon communication -- do
|
|
I use named pipes?
|
|
</STRONG></P>
|
|
<P><STRONG>
|
|
As I learn and discover, I will pass this type of information as 2 cent
|
|
tips.
|
|
</STRONG></P>
|
|
<P><STRONG>
|
|
Thanks for that info, Fabor. I will keep that Linux Documentation stuff
|
|
in my mind. I know that I ramble whenever I talk about this project
|
|
that I am working on. Here's why, though.
|
|
</STRONG></P>
|
|
<P><STRONG>
|
|
When I was doing DSP (digital signal processor) programming, I would ask
|
|
myself questions like "I wish that I could use DMA for those A/D
|
|
samples." Then, I would turn around and discover that the feature
|
|
existed.
|
|
</STRONG></P>
|
|
<P><STRONG>
|
|
Linux is the same way. I'm architecting this system as I were designing
|
|
hardware to do the job. You want I/O? Use the messaging IPC. That
|
|
allows programming language independence with respect to server
|
|
implementation. Linux (and Unix) has all of these cool things that
|
|
provide for a concurrent implementation of the system.
|
|
</STRONG></P>
|
|
<P><STRONG>
|
|
And that stability. The things that people can do when they work
|
|
together!!
|
|
</STRONG></P>
|
|
|
|
<!-- end 4 -->
|
|
<!--startcut ======================================================= -->
|
|
<P> <hr> </p>
|
|
<!-- *** BEGIN copyright *** -->
|
|
<H5 align="center">This page edited and maintained by the Editors
|
|
of <I>Linux Gazette</I>
|
|
<a href="http://www.linuxgazette.com/copying.html"
|
|
>Copyright ©</a> 2001
|
|
<BR>Published in issue 71 of <I>Linux Gazette</I> October 2001</H5>
|
|
<H6 ALIGN="center">HTML script maintained by
|
|
<A HREF="mailto:star@starshine.org">Heather Stern</a> of
|
|
Starshine Technical Services,
|
|
<A HREF="http://www.starshine.org/">http://www.starshine.org/</A>
|
|
</H6>
|
|
<!-- *** END copyright *** -->
|
|
<P> <hr>
|
|
<!-- begin tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::-->
|
|
<p align="center">
|
|
<table width="100%" border="0"><tr>
|
|
<td align="right" valign="center"
|
|
><IMG ALT="" SRC="../../gx/navbar/left.jpg"
|
|
WIDTH="14" HEIGHT="45" BORDER="0" ALIGN="middle" border="0"
|
|
><A HREF="..//"
|
|
><IMG SRC="../../gx/navbar/toc.jpg" align="middle"
|
|
ALT="[ Table Of Contents ]" border="0"></A
|
|
><A HREF="../lg_answer71.html"
|
|
><IMG SRC="../../gx/dennis/answertoc.jpg" align="middle"
|
|
ALT="[ Answer Guy Current Index ]" border="0"></A></td>
|
|
<td align="center" valign="center"><A HREF="../lg_answer71.html#greeting"><img align="middle"
|
|
src="../../gx/dennis/smily.gif" alt="greetings" border="0"></A>
|
|
<A HREF="1.html">1</A>
|
|
<A HREF="2.html">2</A>
|
|
<A HREF="3.html">3</A>
|
|
<A HREF="4.html">4</A>
|
|
<A HREF="5.html">5</A>
|
|
<A HREF="6.html">6</A>
|
|
<A HREF="7.html">7</A>
|
|
<A HREF="8.html">8</A>
|
|
|
|
</td>
|
|
<td align="left" valign="center"><A HREF="../../tag/kb.html"
|
|
><IMG SRC="../../gx/dennis/answerpast.jpg" align="middle"
|
|
ALT="[ Index of Past Answers ]" border="0"></A
|
|
><IMG ALT="" SRC="../../gx/navbar/right.jpg" align="middle"
|
|
WIDTH="14" HEIGHT="45" BORDER="0"></td></tr></table>
|
|
</p>
|
|
<!-- end tagnav ::::::::::::::::::::::::::::::::::::::::::::::::::::-->
|
|
<P> <hr>
|
|
<CENTER>
|
|
<!-- *** BEGIN navbar *** -->
|
|
<!-- *** END navbar *** -->
|
|
</CENTER>
|
|
</p>
|
|
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
|
</BODY></HTML>
|
|
<!--endcut ========================================================= -->
|