11249 lines
427 KiB
HTML
11249 lines
427 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||
<HTML>
|
||
<HEAD>
|
||
<TITLE> Linux Gazette Table of Contents LG #51</TITLE>
|
||
<META NAME="robots" CONTENT="noindex, nofollow">
|
||
</HEAD>
|
||
|
||
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#0000AF"
|
||
ALINK="#FF0000" >
|
||
<center>
|
||
<A HREF="http://www.linuxgazette.com/">
|
||
<H1><IMG SRC="../gx/newlogo.jpg" ALT="LINUX GAZETTE" border="0"></H1></A>
|
||
<H2>March 2000, Issue 51
|
||
Published by <I>Linux Journal</I></H2>
|
||
|
||
<A HREF=../index.html>Front Page</A> |
|
||
<A HREF=../index.html>Back Issues</A> |
|
||
<A HREF=../faq/index.html>FAQ</A> |
|
||
<A HREF=../mirrors.html>Mirrors</A> |
|
||
<A HREF=http://www.linuxgazette.com/search.html>Search</A>
|
||
</center>
|
||
|
||
<!--=================================================================-->
|
||
|
||
<table>
|
||
<TR>
|
||
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
|
||
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
|
||
WIDTH=1 ALIGN=LEFT></TD>
|
||
<TD></TD>
|
||
</TR>
|
||
<tr><td>
|
||
<table>
|
||
<tr>
|
||
<td VALIGN="top"><H1><font color="#BB0000">Visit Our Sponsors:</font></H1></td></tr>
|
||
|
||
|
||
|
||
<!-- *** BEGIN sponsors *** -->
|
||
<TR><TD>
|
||
<A HREF="http://www.linuxjournal.com"><IMG ALT="Linux Journal" SRC="../gx/ljtop.gif" BORDER="0" VSPACE="10"></A>
|
||
</TD></TR>
|
||
|
||
<TR><TD>
|
||
<A HREF="http://www.linuxcare.com"><IMG ALT="LinuxCare" SRC="../gx/linuxcare.gif" BORDER="0" VSPACE="10"></A>
|
||
</TD></TR>
|
||
|
||
<TR><TD>
|
||
<A HREF="http://www.linuxmall.com/"><IMG ALT="LinuxMall" SRC="../gx/linuxmall.gif" BORDER="0" VSPACE="10"></A>
|
||
</TD></TR>
|
||
|
||
<TR><TD>
|
||
<A HREF="http://www.cygnus.com"><IMG ALT="Cygnus Solutions" SRC="../gx/sponsors/cygnus.gif" BORDER="0" VSPACE="10"></A>
|
||
</TD></TR>
|
||
|
||
<TR><TD>
|
||
<A HREF="http://www.vmware.com"><IMG ALT="VMware" SRC="../gx/sponsors/vmware.jpg" BORDER="0" VSPACE="10"></A>
|
||
</TD></TR>
|
||
|
||
<TR><TD>
|
||
<A HREF="http://www.infomagic.com"><IMG ALT="InfoMagic" SRC="../gx/infologo.gif" BORDER="0" VSPACE="10"></A>
|
||
</TD></TR>
|
||
|
||
|
||
<!-- *** END sponsors *** -->
|
||
|
||
|
||
|
||
|
||
</table>
|
||
</td>
|
||
<!--==================================================================-->
|
||
<TD ROWSPAN="3" WIDTH="2" BGCOLOR="#000000" NOSAVE><IMG
|
||
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=1 HEIGHT=1 WIDTH=1%></TD>
|
||
<td VALIGN=top>
|
||
<H1><font color="#BB0000">Table of Contents:</font></H1>
|
||
|
||
|
||
<P> <FONT COLOR=red FACE=arial,helvetica>New feature:</FONT>
|
||
<STRONG>TALKBACKS!</STRONG><BR>
|
||
Talkbacks offer a forum for readers, editors, and
|
||
authors to discuss articles and their topics. Look for a link to
|
||
Talkbacks at the end of every <I>Linux Gazette</I> article
|
||
starting this month.
|
||
|
||
<P> (This does not include the columns--"The Mailbag", "News
|
||
Bytes", "The Answer Guy", "More 2-Cent Tips" and the Back Page--because these
|
||
consist of many unrelated topics in one article. We are exploring what kind of
|
||
discussion forum would be most appropriate for them.)
|
||
|
||
|
||
|
||
<!-- *** BEGIN toc *** -->
|
||
<UL>
|
||
<LI> <a HREF="lg_mail51.html">The MailBag</A>
|
||
<UL>
|
||
<LI> <a HREF="lg_mail51.html#help">Help Wanted & Article Ideas</A>
|
||
<LI> <a HREF="lg_mail51.html#gen">General Mail</A>
|
||
</UL>
|
||
<LI> <a HREF="lg_bytes51.html">News Bytes</A>
|
||
<UL>
|
||
<LI> <a HREF="lg_bytes51.html#distro">Distro News</A>
|
||
<LI> <a HREF="lg_bytes51.html#general">News in General</A>
|
||
<LI> <a HREF="lg_bytes51.html#software">Software Announcements</A>
|
||
</UL>
|
||
<LI> <a HREF="lg_answer51.html">The Answer Guy</A> , <EM>by James T. Dennis</EM>
|
||
<LI> <a HREF="lg_tips51.html">More 2-Cent Tips</A>
|
||
<LI> <a HREF="collinge.html">HelpDex</A> , <EM>by Shane Collinge</EM>
|
||
<LI> <a HREF="dellomodarme.html">X Stations and Linux</A> , <EM>by Matteo Dell'Omodarme</EM>
|
||
<LI> <a HREF="kijewski.html">The Story of an Implementation</A> , <EM>by Jacek Kijewski</EM>
|
||
<LI> <a HREF="livingston-blade.html">Tweaking Eterm</A> , <EM>by Edward Livingston-Blade</EM>
|
||
<LI> <a HREF="mauerer.html">GIMP-Perl: GIMP Scripting for the Rest of Us</A> , <EM>by Wolfgang Mauerer</EM>
|
||
<LI> <a HREF="nielsen.html">Private Networks and Roadrunner using IP Masquerading</A> , <EM>by Mark Nielsen, Andrew Byrd</EM>
|
||
<LI> <a HREF="pramode.html">Static checking of C programs with LCLint</A> , <EM>by Pramode C E and Gopakumar C E</EM>
|
||
<LI> <a HREF="steffler.html">Making Smalltalk with the Penguin</A> , <EM>by Jason Steffler</EM>
|
||
<LI> <a HREF="vrenios.html">Process Cloning in C</A> , <EM>by Alex Vrenios</EM>
|
||
<LI> <a HREF="lg_backpage51.html">The Back Page</A>
|
||
<UL>
|
||
<LI> <a HREF="lg_backpage51.html#authors">About This Month's Authors</A>
|
||
<LI> <a HREF="lg_backpage51.html#notlinux">Not Linux</A>
|
||
</UL>
|
||
</UL>
|
||
|
||
<!-- *** END toc *** -->
|
||
|
||
|
||
|
||
|
||
</td>
|
||
</tr>
|
||
<TR>
|
||
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
|
||
SRC="../gx/hammel/cleardot.gif"
|
||
ALT="-------------------------------------------------------------"
|
||
HSPACE=30 VSPACE=2 HEIGHT=1 WIDTH=1 ALIGN=LEFT></TD>
|
||
<TD></TD>
|
||
</TR>
|
||
</table>
|
||
|
||
<!--=============================================================-->
|
||
<P>
|
||
<table>
|
||
<tr><td>
|
||
<A HREF="issue51.txt.gz">TWDT 1 (gzipped text file)</A><BR>
|
||
<A HREF="issue51.html">TWDT 2 (HTML file)</A><BR>
|
||
are files containing the entire issue: one in text format, one in HTML.
|
||
They are provided
|
||
strictly as a way to save the contents as one file for later printing in
|
||
the format of your choice;
|
||
there is no guarantee of working links in the HTML version.
|
||
</td></tr>
|
||
<!--==================================================================-->
|
||
<TR>
|
||
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
|
||
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
|
||
WIDTH=1 ALIGN=LEFT></TD>
|
||
<TD></TD>
|
||
</TR>
|
||
<tr><td>
|
||
<center>
|
||
<I>Linux Gazette</I><img alt="[tm]" src="../gx/tm.gif">,
|
||
<A HREF="http://www.linuxgazette.com/">http://www.linuxgazette.com/</A><BR>
|
||
This page maintained by the Editor of <I>Linux Gazette</I>,
|
||
<A HREF="mailto: gazette@ssc.com"> gazette@ssc.com</A>
|
||
<P>
|
||
<H5>Copyright © 1996-2000 Specialized Systems Consultants, Inc.</H5>
|
||
</center>
|
||
</td></tr>
|
||
<TR>
|
||
<TD COLSPAN="3" WIDTH="100%" BGCOLOR="#000000"><IMG
|
||
SRC="../gx/hammel/cleardot.gif" ALT="" HSPACE=30 VSPACE=2 HEIGHT=1
|
||
WIDTH=1 ALIGN=LEFT></TD>
|
||
<TD></TD>
|
||
</TR>
|
||
</table>
|
||
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
|
||
<HR>
|
||
<center>
|
||
<table width="100%" cellpadding=7><tr><td>
|
||
<H2><a NAME="mail"><IMG SRC="../gx/mailbox.gif" ALIGN=MIDDLE ALT=" ">
|
||
The Mailbag!</a> </H2>
|
||
Write the Gazette at <A HREF="mailto:gazette@ssc.com"> gazette@ssc.com</A>
|
||
</td><td>
|
||
<H3>Contents:</H3>
|
||
<ul>
|
||
<li><a HREF="#help">Help Wanted -- Article Ideas</a>
|
||
<li><a HREF="#gen">General Mail</a>
|
||
</ul>
|
||
</td></tr></table>
|
||
</center>
|
||
|
||
<a name="help"></a>
|
||
<p><hr><p>
|
||
<!-- =================================================================== -->
|
||
<center><H3><font color="maroon">Help Wanted -- Article Ideas</font></H3></center>
|
||
<P>
|
||
Answers to these questions should be sent directly to the e-mail address of
|
||
the inquirer with or without a copy to gazette@ssc.com. Answers that are
|
||
copied to <I>LG</I> will be printed in the next issue in the Tips column.
|
||
|
||
<P> <STRONG>Before asking a question, please check the
|
||
<A HREF=../faq/index.html><I>Linux Gazette</I> FAQ</A> to see if it has been
|
||
answered there.</STRONG>
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Tue, 01 Feb 2000 12:16:28 -0200
|
||
<BR>From: Clovis Sena <<A HREF="mailto:csena@itautec-philco.com.br">csena@itautec-philco.com.br</A>>
|
||
<BR>Subject: help in printing numbered pages!
|
||
|
||
<P> Hi,
|
||
|
||
<P> I usualy print a lot of documentation. One thing that I would like to
|
||
make is that my print jobs gets the pages to be numbered. So at the
|
||
bottom of the pages
|
||
we could see "page 1/xx" , etc. I had looked a while for info in how to
|
||
set this up,
|
||
but could not find. The printtool just dont do it. Maybe i should to
|
||
create a filter, but
|
||
what commands must i use to make this heapppens???
|
||
|
||
<P> A other thing that would be nice is that is we could also print the
|
||
location of the document,
|
||
or the url, if it be a web page, like /usr/doc/html/mydoc.html or
|
||
http://www.linuxjournal.com/article/example.html. Could this be done???
|
||
|
||
<P> Any help will be welcome. Thanks for reading this.
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Tue, 1 Feb 2000 16:37:07 +0200
|
||
<BR>From: Knobel Alex <<A HREF="mailto:alex@pet.ac.il">alex@pet.ac.il</A>>
|
||
<BR>Subject: samba problim
|
||
|
||
<P> hi and thank's fore your Help :0)
|
||
will my english is "so bad so forgive me".
|
||
will I have Linux Box With Kernel 2.2.12-20 Red Hat Linux & I Have Install The Samba Frome The Same CD
|
||
I Have Red The HOWTO Samba & I Try What IT But I Dis'nt Anderstand How The Windows Shod See The
|
||
Linux Box Will Frome The Linux I Can See The Network & see The Share But the NT Dosn't See The Linux
|
||
In The smb.conf I Write The Follow
|
||
<PRE>
|
||
[global]
|
||
workegroup = staff " i have a group cald staff"
|
||
netbios name = samba
|
||
......
|
||
</PRE>
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Tue, 01 Feb 2000 11:46:50 -0500
|
||
<BR>From: Stan Wilburn <<A HREF="mailto:stan.wilburn@rhtelco.com">stan.wilburn@rhtelco.com</A>>
|
||
<BR>Subject: Modem problem with 5.2
|
||
|
||
<P> I have recently setup Linux 5.2 on a PC at home. The setup went great with
|
||
only one problem:
|
||
I cannot get the modem to dial so that I can access the Internet. Looking
|
||
through various websites on
|
||
Linux, I found that if your modem is on com3 there is some additional setup
|
||
that is required. Can you
|
||
help me with this? I have mapped the com3 port to /dev/cua2 and by the
|
||
manual that is all I thought
|
||
I had to do. I also ran statserial on this port and I get the correct
|
||
information here also. What
|
||
could be wrong? I can hear the modem clicking like it is trying to dial,
|
||
but it will never dial the
|
||
number. Thanks.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Tue, 01 Feb 2000 15:48:28 MST
|
||
<BR>From: Sipe <<A HREF="mailto:dksclan@hotmail.com">dksclan@hotmail.com</A>>
|
||
<BR>Subject: Linux on IBM Aptiva S6H
|
||
|
||
<P> I have an IBM Aptiva S6H (214) with an IBM MM75 Multimeda monitor. I cannot
|
||
seem to get my X server (Xfree86 -- current version #.#.5) with mandrake
|
||
6.1. I have an onboard ATI Mach64 3D Rage Pro card as well as a voodoo2,
|
||
which supports rather high res. I've set custom frequencies (horiz: 69khz
|
||
vert: 120khz) and picked my card from the card database. Still, when i run
|
||
x windows, it's saying monitor res not supported and no monitor found,
|
||
specifically "fatal server error" "no monitor". If somebody could help me
|
||
out i would REALLY appreciate it! If you need more information about my
|
||
computer or versions, please email me (dksclan@hotmail.com). I am desparate
|
||
for help, i've tried irc dalnet and efnet #linux, friends, and checked many
|
||
forums.
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Wed, 2 Feb 2000 01:46:20 -0500
|
||
<BR>From: Anthony H. Downey, Jr. <<A HREF="mailto:adowney@logicalinfo.com">adowney@logicalinfo.com</A>>
|
||
<BR>Subject: IP Masquerade Connection Problems
|
||
|
||
|
||
<P> I've been running Linux for a few years now, using mostly RedHat
|
||
distributions. I'm currently running RedHat 6.1. Recently, I decided to
|
||
connect my small office (4 workstation nodes and 2 servers) to the internet
|
||
via IP Masquerading rather than having each workstation dial directly (as
|
||
was done previously).
|
||
|
||
<P> IP Masquerading works fine, save for one small problem that's turning into a
|
||
real annoyance. I'm using PAP authentication with the ISP. Whenever I
|
||
initiate a connection, the modem dials, waits until whatever timeout is
|
||
specified, then hangs up without ever achieving a complete connection. The
|
||
two modems handshake, but the login to the ISP is never successfully
|
||
completed. Since I've specified for it to reconnect on a line drop, it
|
||
immediately redials and then successfully connects and logs in on the second
|
||
try.
|
||
|
||
<P> This is 99.9% consistent, meaning that it nearly always requires two dial
|
||
attempts to get a successful connection. On rare occaisons, it will connect
|
||
on the first try, but this is apparently only after I've just downed the
|
||
interface within the past few minutes. I don't have it configured for
|
||
demand dial at this point -- I normally bring the link up and down manually
|
||
via ifup ppp0 and ifdown ppp0. Eventually this will be set to demand dial
|
||
once I'm confident of the configuration.
|
||
|
||
<P> I suspected the ISP at first, but then I tried a Mandrake 6.5 distribution
|
||
on the same equipment (with essentially the same config files), and it
|
||
connects the first time every time. I'd much rather use RedHat 6.1,
|
||
however, for various reasons. I've even tried a few different modems, both
|
||
56K and K56Flex, and the results are the same.
|
||
|
||
<P> Does anyone have any ideas as to why this would be happening and how to
|
||
correct it?
|
||
|
||
<P> TIA.
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Wed, 02 Feb 2000 11:15:32 -0500
|
||
<BR>From: John Sanabria <<A HREF="mailto:jo-sanab@uniandes.edu.co">jo-sanab@uniandes.edu.co</A>>
|
||
<BR>Subject: Tip & Tricks
|
||
|
||
<P> Hello:
|
||
|
||
<P> I'm currently work with the domain .edu.co at Universidad de los Andes,
|
||
Bogota, Colombia. I want to know how can do when the people enter the
|
||
url, uniandes.edu.co, the browser go at www.uniandes.edu.co. eg. i can
|
||
type the url linuxtoday.com, and my browser show me www.linuxtoday.com.
|
||
|
||
<P> Where do i modify my dns entry in order to obtain this behavior?
|
||
|
||
<P> Thanks in advance.
|
||
|
||
<P> PS: Sorry for my poor english.
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Wed, 2 Feb 2000 17:41:31 -0500
|
||
<BR>From: Rob C <<A HREF="mailto:rchan@idirect.com">rchan@idirect.com</A>>
|
||
<BR>Subject:
|
||
|
||
<P> Hi,
|
||
|
||
<P> I was wondering what you have to do to get your Diamond Supraexpress 56i
|
||
modem recognized and configured under Linux. I also need to get a PPP
|
||
connection setup on my linux system to access my internet. I am positive
|
||
that it isn't a winmodem.
|
||
|
||
<P> I am a really new newbie at this, so i'll need lotsa explanating here.
|
||
|
||
<P> Thanks.
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Thu, 03 Feb 2000 21:26:00 +0100
|
||
<BR>From: Ivo Naninck <<A HREF="mailto:inaninck@linuxfan.com">inaninck@linuxfan.com</A>>
|
||
<BR>Subject: Question to be published.
|
||
|
||
<P> Hello LG,
|
||
|
||
<P> Can you please put this in your next issue?
|
||
|
||
<P> Anyone who has a hint on how to get a Linux DHCP client to get a lease
|
||
from a DHCP server over a Token Ring network?
|
||
I have already tried a LOT, believe me. Things like dhcpcd, dhclient and
|
||
pump all do
|
||
not work.
|
||
There is also VERY little response on this matter from several related
|
||
news groups.
|
||
|
||
<P> -- <BR>
|
||
Best regards, Ivo Naninck.<BR>
|
||
Neckties strangle clear thinking.<BR>
|
||
-- Lin Yutang<BR>
|
||
~<BR>
|
||
:wq!<BR>
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Thu, 03 Feb 2000 23:08:31 +0100
|
||
<BR>From: JA <<A HREF="mailto:lubiec@datacomm.ch">lubiec@datacomm.ch</A>>
|
||
<BR>Subject: WindowsNT vs. Linux
|
||
|
||
<P> I've made a comparison running the same Fortran program
|
||
compiled with GNU g77 compiler with identical options.
|
||
|
||
<P> The results is unexpected: the program ran under WinNT4.0 20 sec,
|
||
and under Linux/Slackware7.0 27 sec.
|
||
|
||
<P> Why?
|
||
|
||
<P> Jacek Arkuszewski, Switzerland
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Thu, 03 Feb 2000 22:34:56 -0500
|
||
<BR>From: BLOODICE <<A HREF="mailto:bloodice@ipass.net">bloodice@ipass.net</A>>
|
||
<BR>Subject: Linux & win98 internet connection sharing
|
||
|
||
<P> im just wondering if it is possible to connect linux to the internet,
|
||
over a network through a win98 machine using internet connection
|
||
sharing?
|
||
|
||
<P> if there is a way, can you tell me
|
||
if i cant do it that way is there another way i can do it?
|
||
|
||
<P> also...do you happen to know of any cable modem software(for linux) that
|
||
will run RoadRunner modems
|
||
|
||
<P> one more thing...are there any tutorials on my first question that i
|
||
should look at?
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Mon, 26 Apr 1999 14:23:10 +0530
|
||
<BR>From: Sreelal T S <<A HREF="mailto:sree1980@md4.vsnl.net.in">sree1980@md4.vsnl.net.in</A>>
|
||
<BR>Subject:
|
||
|
||
<P> My opl3-sax 32-bit soundcard was not supported by redhat linux6.1.I tried configuring it using sndconfig.Please send your responses.My address is kgkris@rediffmail.com
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Fri, 4 Feb 2000 17:43:38 -0600
|
||
<BR>From: Jeffrey T. Ownby <<A HREF="mailto:jownby@ecsis.net">jownby@ecsis.net</A>>
|
||
<BR>Subject: 5250 terminal for AS400 connection
|
||
|
||
<P> I am adding a Linux box to a network consisting of several Win9X and NT machines that use either IBM Client Access or Rumba to connect to our AS400. Is there a program similar to either one of these that can provide terminal emulation on Linux. Any info appreciated!
|
||
|
||
<P> Later,<BR>
|
||
Jeffro
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Wed, 09 Feb 2000 09:18:14 +0100
|
||
<BR>From: Vipie - Your Leader <<A HREF="mailto:vipie@operamail.com">vipie@operamail.com</A>>
|
||
<BR>Subject: Multiple video cards
|
||
|
||
<P> Hello,
|
||
|
||
<P> I have a question, have you any idea where I could find info
|
||
about running multiple video cards and monitors under linux.
|
||
eg. 2 SVGA cards or a SVGA and a VGA card ...
|
||
and how should one configure these ??
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Wed, 9 Feb 2000 10:37:33 +0200
|
||
<BR>From: Mahdy <<A HREF="mailto:mahdy@mail.pet.ac.il">mahdy@mail.pet.ac.il</A>>
|
||
<BR>Subject: dos boot disk that can logon to linux
|
||
|
||
<P> i know that my quistion is silly but i didn't find in the wep solution
|
||
will i'm trying to make a boot disk fore dos that can see my linux box
|
||
in my linux box i have install samba v2.0.5 will frome win 95/98/NT i can see the linux but frome dos i cant
|
||
i need this thing to restore the Ghost files (image of disk) to the station until now i do this thing thru the NT server
|
||
& in the client machien i run the NET.exe file to make this connection ?
|
||
is there application fore dos that i can use and to be in one floppy disk 1.44 MB ?
|
||
|
||
<P> Thank's <BR>
|
||
Hijaze Mahdy
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Wed, 09 Feb 2000 12:42:27 +0000
|
||
<BR>From: thierry.lamant <<A HREF="mailto:thierry.lamant@free.fr">thierry.lamant@free.fr</A>>
|
||
<BR>Subject: Configuring Xfree for i810 chipset
|
||
|
||
|
||
<P> I have successfully introduced Linux and XFree (now 3.3.5) in my company
|
||
for the development of Aircraft
|
||
Simulators on PC.
|
||
I would like now to use it on my home computer, a Compaq Presario 5456
|
||
which include a i810 chipset. I can
|
||
see that XFree 3.3.6 is supporting i810 mother board, but that does not
|
||
work better than 640*480 when I try
|
||
to install it (Win98 is running good at least in 1024*780). SuperProbe
|
||
cannot detect the hardware.
|
||
|
||
<P> Is there something special to do? Shall I wait for XFree 4?
|
||
|
||
<P> Thanks in advance for any help.
|
||
|
||
<P> Best Regards (and thousands thanks for the usefull Gazette)
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Tue, 8 Feb 2000 23:05:15 -0200
|
||
<BR>From: pedroanisio <<A HREF="mailto:pedroanisio@bol.com.br">pedroanisio@bol.com.br</A>>
|
||
<BR>Subject: Clenning Lost+Found?
|
||
|
||
<P> I having problem with my filesystem lately. And I have a
|
||
lot o file in my lost+found, and I am having some
|
||
problem to cleaning up those file which corrupted.
|
||
|
||
<PRE>
|
||
b---rwS-wt 1 30291 357 88, 118 Dec 8 2023 #586
|
||
b--sr-S--t 1 27968 27968 115, 109 Apr 29 2032 #592
|
||
br-xrwS-wt 1 14963 25715 108, 97 Apr 12 2031 #683
|
||
br-xrw---- 1 29555 21622 115, 115 May 10 2031 #713
|
||
br-S--S--x 1 26483 14641 116, 97 Apr 12 1998 #732
|
||
br-xr-xrw- 1 10604 24864 101, 114 Feb 13 1996 #741564
|
||
c---r----- 1 8224 25632 32, 32 Jan 29 2029 #741565
|
||
br-sr-xrwx 1 29806 24864 116, 32 Oct 15 2021 #741567
|
||
</PRE>
|
||
|
||
<P> I tried rm -rf but it didn<64>t work, it result in
|
||
|
||
<P> rm: cannot unlink `file': Operation not permitted
|
||
|
||
|
||
<P> what can I do?
|
||
Thank You,
|
||
|
||
|
||
|
||
<BLOCKQUOTE><EM>
|
||
[When people have gotten weird permissions like
|
||
that, it's often the sign of serious disk corruption. I would definitely
|
||
back up any data you can right now just in case the drive fails in the near
|
||
future. Is the drive otherwise working OK? I would be inclined
|
||
to buy a new drive and install a fresh copy of Linux on it, and then later
|
||
decide whether to trust this drive enough to continue using it. Hard drives
|
||
and power supplies are the most failure-prone components of any PC.
|
||
Fortunately, nowadays hard drives are cheap to replace.
|
||
|
||
<P> You can run "file" on the files to see what types they are, and "less"
|
||
to see if they have any contents worth saving. -Ed.]
|
||
</EM> </BLOCKQUOTE>
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Thu, 10 Feb 2000 15:07:36 -0800
|
||
<BR>From: Chris Dumont <<A HREF="mailto:chrisd@ece.ubc.ca">chrisd@ece.ubc.ca</A>>
|
||
<BR>Subject: linuxconf
|
||
|
||
<P> I've been trying to use linuxconf (ver 1.14 on a RH 6.0 install) and
|
||
have now screwed it up in my computers at work and at home in the same
|
||
way. When I'm ready to leave linuxconf it wants to "sync" the
|
||
configuration with the system. Every time I run linuxconf now it says
|
||
that it must execute "/etc/rc.d/rc5.d/S85gpm start". And then, even
|
||
after it does so, it still says it's not in sync and it wants to do it
|
||
again. I guess that it thinks it must start the mouse even though it's
|
||
already running.
|
||
|
||
<P> How do I fix this?
|
||
|
||
<P> A possibly significant piece of information is that in both cases when
|
||
I originally installed Red Hat I chose the wrong mouse driver and had to
|
||
play around to find the right one.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Fri, 11 Feb 2000 22:43:26 +0100
|
||
<BR>From: Daniel Lüscher <<A HREF="mailto:daniel.luescher@pop.dplanet.ch">daniel.luescher@pop.dplanet.ch</A>>
|
||
<BR>Subject: Linux-Mandrake 7.0
|
||
|
||
<P> Hello!
|
||
What about Linux-Mandrake 7.0? It would be worth an article or even an
|
||
interview with the developers.
|
||
<P>
|
||
Greetz Pat
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Sat, 12 Feb 2000 14:14:40 +1000
|
||
<BR>From: Tony Smith <<A HREF="mailto:tony.smith@usa.net">tony.smith@usa.net</A>>
|
||
<BR>Subject: Help wanted etc.
|
||
|
||
<P> Hi
|
||
|
||
<P> This little problem has been sending me nuts for two days now.
|
||
I sure hope someone in the <I>LG</I> community can help
|
||
|
||
|
||
<P> I wonder if someone would mind helping me with a mystery that is causing me
|
||
to pull my hair out......
|
||
|
||
<P> I have been using a Linux server based on RedHat 5.2 for some time to
|
||
connect to the Internet and provide masquerade for a bunch of Windows boxes
|
||
on a private network behind it.
|
||
|
||
|
||
<P> Today I decided to redo the server to incorporate a few more sophisticated
|
||
things like DNS, DHCP and HTTP serving for a prototype intranet.
|
||
|
||
<P> All went very well with one small hiccup. There seems to be an undocumented
|
||
change in the behavior of ppp between RedHat 6.1 and 5.2.
|
||
|
||
<P> Using 5.2 invoking "ifup ppp1" will result in the server making one and one
|
||
only attempt to connect to the internet.
|
||
|
||
<P> This is exactly what I want
|
||
|
||
<P> Using 6.1 if the dialout attempt fails, it simply loops and tries again and
|
||
again until it either connects or is stopped.
|
||
|
||
<P> I don't want this.
|
||
|
||
<P> I have compared all the relevant (I hope) scripts between 5.2 and 6.1 but I
|
||
cannot find a difference that would account for the changed behavior.
|
||
|
||
<P> I have the awful feeling I've missed something important (it's been a long
|
||
day), could someone please tell me what it is?
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Sun, 13 Feb 2000 04:59:29 +0200
|
||
<BR>From: FreeDoM <<A HREF="mailto:free_dom34@hotmail.com">free_dom34@hotmail.com</A>>
|
||
<BR>Subject: ZOLTRIX modem
|
||
|
||
<P> Hi My name is Ozgur;
|
||
I use redhat Linux but I dont use modem
|
||
I have 56K Zoltrix (Rockwell cheap set) modem Winmodem but this modem dont run under Linux could u help me?
|
||
If u have file this problem pls send me!
|
||
|
||
|
||
<P> Tnx for helping.
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Sun, 13 Feb 2000 22:01:33 -0600
|
||
<BR>From: Kim Updike <<A HREF="mailto:kupdike@met-net.com">kupdike@met-net.com</A>>
|
||
<BR>Subject: Inexpensive, powerful db's for Linux?
|
||
|
||
<P> To develop a distributed database application that runs on Linux, what
|
||
inexpensive, powerful databases might work best?
|
||
|
||
<P> E-mailiing me at kupdike@met-net.com with any advice would be much
|
||
appreciated.
|
||
-Kim
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Sun, 13 Feb 2000 10:53:21 -0500
|
||
<BR>From: Art <<A HREF="mailto:mperry@pei.sympatico.ca">mperry@pei.sympatico.ca</A>>
|
||
<BR>Subject: Drivers
|
||
|
||
<P> I have a question. Where can I download an update driver for a "Diamond Monster 3D" voodoo card? The present software I have is Version 1.08 and DOS 6. My OS is Win98 Second Addition 64Mg Ram and Celeron 300 with an I intel 740 video card.
|
||
I thank you in advance for your reply.
|
||
Art
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Tue, 15 Feb 2000 08:14:24 -0500
|
||
<BR>From: William Aycock <<A HREF="mailto:william.e.aycock@lmco.com">william.e.aycock@lmco.com</A>>
|
||
<BR>Subject: Window Managers and Window App Development
|
||
|
||
<OL>
|
||
<LI> Do you have an automatic email when a new issue is available?
|
||
<LI> Do you know which window manager will become the standard? It
|
||
appears to me, from my limited exposure, that KDE and
|
||
Gnome/Enlightenment are the front runners. Do you have an article on
|
||
this issue?
|
||
<LI> What are some good IDE's for window development and where can I get
|
||
documentation for them?
|
||
</OL>
|
||
|
||
|
||
|
||
<BLOCKQUOTE> <EM>
|
||
[There's an lg-announce mailing list. See the Linux Gazette FAQ at
|
||
<A HREF="../faq/index.html">http://www.linuxgazette.com/faq/index.html</A>
|
||
http://www.linuxgazette.com/faq/index.html
|
||
|
||
<P> KDE and GNOME are graphical "environments" (that is, a set of custom
|
||
applications, widgets and rules that all have a common "look and feel").
|
||
A window manager is just one aspect of this. In my opinion, KDE is
|
||
currently "ahead". But I don't tell people, "Use KDE, it's #1." I use
|
||
KDE at work, but only because it's the default, and I don't use 90% of
|
||
its features. At home I use fvwm2.
|
||
|
||
<P> Some people want to see Linux have a single standard desktop. However,
|
||
I think most people are glad there's a choice, because different people
|
||
want different things. Indeed, with some people running Linux for
|
||
games (i.e., they need a 3D video card and fast drivers) and other people
|
||
running it on 486s as servers, different people have very different software
|
||
needs. KDE and GNOME tend to appeal to people who want a standard look and
|
||
feel a la Windows and the Mac. But those who hack with the older programming
|
||
tools are never going to give them up. As the geek joke goes, "Who needs a GUI
|
||
when you've got Emacs?"
|
||
|
||
<P> February's <I>Linux Journal</I> had an in-depth look at KDE and
|
||
at GNOME. Both articles are on-line at
|
||
<A HREF="http://www.linuxjournal.com/lj-issues/issue70">
|
||
http://www.linuxjournal.com/lj-issues/issue70</A>-Ed.]
|
||
</EM> </BLOCKQUOTE>
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Wed, 16 Feb 2000 20:45:06 +0100
|
||
<BR>From: Dennis Johansen <<A HREF="mailto:dennis.johansen@email.dk">dennis.johansen@email.dk</A>>
|
||
<BR>Subject: Quakeworld server as a deamon
|
||
|
||
<P> I want to set my RedHat Linux 6.1 up as a QuakeWorld server on my lan.
|
||
I<EFBFBD>ts a k6-200 with 64 mb ram.
|
||
|
||
<P> And it works fine when i start it, but how do i run it as a deamon ?
|
||
|
||
<P> Please help.
|
||
|
||
<P> Best Regards
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Fri, 18 Feb 2000 08:47:02 +0200
|
||
<BR>From: Halil Cem Tonguc 998027 <<A HREF="mailto:tonguccem@hotmail.com">tonguccem@hotmail.com</A>>
|
||
<BR>Subject: I NEED PIII PATCH.
|
||
|
||
<P> Where can I found a patch for PIII????
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Fri, 18 Feb 2000 23:46:14 -0800
|
||
<BR>From: wesley <<A HREF="mailto:wesley@digi-dim.com">wesley@digi-dim.com</A>>
|
||
<BR>Subject: make virtuald
|
||
|
||
<P> I am trying to compile virtuald using make virtuald
|
||
here is the error I get "Makefile:14: *** missing separator. Stop. "
|
||
|
||
<P> I did a cut and paste of the code from
|
||
<A HREF="http://www.linuxdoc.org/HOWTO/Virtual-Services-HOWTO-3.html">
|
||
http://www.linuxdoc.org/HOWTO/Virtual-Services-HOWTO-3.html</A>
|
||
in the section 3.4 Source
|
||
then used ftp to put it on the server in order to compile it.
|
||
|
||
<P> what am I missing??
|
||
|
||
<P> thanks for your time and help
|
||
|
||
<P> Wes
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Sat, 19 Feb 2000 23:53:46 +0000
|
||
<BR>From: Ari Hyvölä <<A HREF="mailto:ari@hyvola.com">ari@hyvola.com</A>>
|
||
<BR>Subject: pppd daemon dies
|
||
|
||
<P> Hello, I am a beginner in Linux world and would like to test Linux
|
||
ISDN ability. I have ASUSCOM 128 modem connected to RS-232
|
||
port. ISP, IP and DNS are correctly set up but kppp hangs up while
|
||
logging onto network with the error message "pppd daemon died
|
||
unexpectedly" and the log says "cannot open logfile". The modem tests
|
||
run through. I have Corel Linux 2.2.12 and the Kernel should include
|
||
neccessary isdn and ppp -options. Lock option has been turned off.
|
||
I appreciate any help - from Corel pages support can not be found.
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Sun, 20 Feb 2000 14:19:25 +0100
|
||
<BR>From: Santiago Cepas <<A HREF="mailto:HALAMAD@teleline.es">HALAMAD@teleline.es</A>>
|
||
<BR>Subject: Memory undetected
|
||
|
||
<P> Hello there.
|
||
|
||
<P> I've got some problems with my RAM: Linux only detecs 64 M when I have 128.
|
||
My specs are: SuSE Linux 6.3, kernel 2.2.13, runnin in a AMD k6-2 350 box. The
|
||
weirdest thing is that the whole 128 M are in the same DIMM slot. The bios
|
||
seems to detect 128 M, and also that other op. system which in don't want to
|
||
name. Could anyone help me here?
|
||
|
||
<P> Thanks
|
||
|
||
|
||
|
||
<BLOCKQUOTE><EM>
|
||
[Linux cannot auto-detect memory above 64MB. You have to tell it
|
||
explicitly how much memory you have at the boot prompt, or put
|
||
<PRE>
|
||
append = "mem8M"
|
||
</PRE>
|
||
in your /etc/lilo.conf file and re-run lilo (if you're using lilo; see
|
||
the lilo documentation).
|
||
|
||
<P> The problem is that the BIOS detects the extra memory but it doesn't tell
|
||
Linux about it. It's a limitation in the PC BIOS design. I don't know how
|
||
that other OS probes for memory.
|
||
|
||
<P> If you ever reduce the amount of memory you have, remember to tell lilo
|
||
first. Otherwise, the system will segfault at boot time when it tries to use
|
||
memory that isn't there. You can always type "mem=64M" at the boot prompt to
|
||
override what lilo thinks.
|
||
|
||
<P> Information from the Linus himself about situation is in the
|
||
<A HREF="http://www.ssc.com/mirrors/LDP/HOWTO/">BootPrompt HOWTO</A> . -Ed.]
|
||
</EM> </BLOCKQUOTE>
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Mon, 31 Jan 2000 22:33:26 +0000
|
||
<BR>From: T.J. Rowe <<A HREF="mailto:tjr@ida.net">tjr@ida.net</A>>
|
||
<BR>Subject: glibc compilation problem
|
||
|
||
<P> Hello everyone,
|
||
|
||
<P> I'm making glibc 2.1.2 from the source tarball for use in building a
|
||
system from the
|
||
ground up (to get rid of all those statically linked programs I've
|
||
started with). Well,
|
||
when compiling either 2.1.2 or 2.1.1, I get following error and the
|
||
compilation stops:
|
||
|
||
|
||
<PRE>
|
||
common/db_appinit.c: In function `__db_appname':
|
||
common/db_appinit.c:479: fixed or forbidden register 0 (ax) was spilled
|
||
for class
|
||
AREG.
|
||
common/db_appinit.c:479: This may be due to a compiler bug or to
|
||
impossible asm
|
||
common/db_appinit.c:479: statements or clauses.
|
||
common/db_appinit.c:479: This is the instruction:
|
||
(insn 902 901 903 (parallel[
|
||
(set (reg:SI 2 %ecx)
|
||
(unspec:SI[
|
||
(mem:BLK (reg:SI 5 %edi) 0)
|
||
(const_int 0 [0x0])
|
||
(const_int 1 [0x1])
|
||
] 0))
|
||
(clobber (reg:SI 5 %edi))
|
||
] ) 424 {strlensi+1} (insn_list 901 (nil))
|
||
(expr_list:REG_UNUSED (reg:SI 5 %edi)
|
||
(nil)))
|
||
make[1]: *** [db_appinit.os] Error 1
|
||
make: *** [db2/others] Error 2
|
||
</PRE>
|
||
|
||
|
||
<P> I have pgcc 2.95.2, which I believe fills the requirement for gcc. I'm
|
||
clueless as to
|
||
what else can be causing this. Any ideas?
|
||
|
||
<P> btw, I come up with some other undefined function error when trying to
|
||
compile glibc
|
||
2.0.7pre6, and I don't want to use the older glibc, anyway.
|
||
|
||
<P> Someone has to know what causes these kinds of errors, right? :)
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Mon, 31 Jan 2000 22:40:13 +0000
|
||
<BR>From: T.J. Rowe <<A HREF="mailto:tjr@ida.net">tjr@ida.net</A>>
|
||
<BR>Subject: bash problem
|
||
|
||
<P> I have an interesting problem with my bash prompt. The upper case K and
|
||
T letters do not echo to the screen, and when I type them it beeps at
|
||
me. Now, before jumping to conclusions, let me describe what I've done
|
||
so far. This problem only occurs in bash and bash2, not in tcsh, zsh,
|
||
csh, etc. I've recompiled and reinstalled bash several times from both
|
||
the source tarballs and source rpms. I've replaced very thing terminal
|
||
related that I can think of, such as gettydefs and libtermcap. I've
|
||
looked at my keymaps repeatedly, and there doesn't seem to be a problem
|
||
there--and again, it only happens in bash. It has to be something
|
||
broken which I haven't replaced yet, but I'm not sure what is left. The
|
||
K and T letters work fine in programs spawned in bash, it's just the
|
||
prompt itself. This one has just about everyone I know confused.
|
||
Hopefully someone out there can help or has heard of this odd problem.
|
||
If anyone would like more details or has any information, please contact
|
||
me.
|
||
|
||
<P> Thanks,
|
||
~T.J.
|
||
tjr@ida.net
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Wed, 23 Feb 2000 14:45:47 -0500
|
||
<BR>From: LabRDist <<A HREF="mailto:LabRDist@ufl.edu">LabRDist@ufl.edu</A>>
|
||
<BR>Subject: bootup disk?
|
||
|
||
|
||
<P> i have a toshiba 415cs and i formatted the hard drive. I dont have the
|
||
toshiba companion disk or did i make a boot disk before i formatted it.
|
||
i need to find a way to get into the computer to activate the d: drive
|
||
to install windows. I just get an error every time i start saying insert
|
||
the boot disk. Any help would be appreciated.
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Wed, 23 Feb 2000 21:29:29 -0800 (PST)
|
||
<BR>From: napolean <<A HREF="mailto:novac_s@yahoo.com">novac_s@yahoo.com</A>>
|
||
<BR>Subject: question about linux 5.2 deluxe
|
||
|
||
<P> i installed linux and then it said it was completed,
|
||
then i got a prompt saying
|
||
<PRE>
|
||
[bonethugs@localhost bonethugs]$
|
||
</PRE>
|
||
after entering the password and login name
|
||
what do i do?
|
||
and i have one more question can you have linux and
|
||
windows 98 on one hard drive with out being
|
||
partitioned in half
|
||
please e-mail me back please
|
||
thank you very much
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Thu, 24 Feb 2000 10:22:52 -0000
|
||
<BR>From: Ivica Glavocic <<A HREF="mailto:ivica.glavocic@post.hinet.hr">ivica.glavocic@post.hinet.hr</A>>
|
||
<BR>Subject: unable to install
|
||
|
||
<P> Hi
|
||
|
||
<P> I don't know if this is the proper way to contact you, but this is the
|
||
address I found searching through Internet for solution for my problem:
|
||
|
||
<P> PC is PII233 (LX) with 128 MB DIMM SDRAM, 6.4 GB WD HDD, Diamond Speedstar
|
||
50 AGP (4MB) VGA, Genius LAN card, Philips 40x CD, ps/2 keyboard and mouse.
|
||
On it I have installed NT Workstation 4.0 on first partition (4G) formatted
|
||
as NTFS. NT is working fine.
|
||
|
||
<P> Now, I wanted to put Linux RedHat 6.1 on second partition. First I checked
|
||
HCL for my PC - OK. On Internet I found documents how to boot Linux using NT
|
||
Loader and everything seemed to be fine until i started actual installation
|
||
booting it from CD. It loaded X graphical display, gave me choice for
|
||
language and keyboard, and then disk druid started. I could see my NTFS
|
||
partition as HPFS but I knew this would happen since I red about it before.
|
||
So out of unused ~2 GB I created swap (129M) and root (2G) partition and
|
||
after i pressed next, error was displayed "error opening security file ..."
|
||
and termination and kill signals stopped further installation.
|
||
|
||
<P> Now, I know that this is not a fatal error (security..), but what is the
|
||
problem then? I tryed to change partitioning (added /boot partition, many
|
||
combinations) but nothing seem to work. There is no explanation WHY this
|
||
happens, on wich module installation fails. Then I got new boot diskette
|
||
from RedHat, tryed with it, but same thing happened. So I put some boot
|
||
parameters like MEM8M and changed keyboard type, but still nothing.
|
||
|
||
<P> Maybe installation log would help, but it is going fast on my screen and I
|
||
can't read it, is there a way to save it to diskette since I can't put it on
|
||
NTFS partition? Is this partition a problem somehow? Shouldn't be.
|
||
|
||
<P> Please answer as soon as you can because it is really urgent for me to get
|
||
this Linux going.
|
||
|
||
<P> Thank you in advance
|
||
|
||
<P> Ivica Glavocic
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Thu, 24 Feb 2000 23:52:17 +0100
|
||
<BR>From: jacek czerwinski <<A HREF="mailto:jacy@poczta.onet.pl">jacy@poczta.onet.pl</A>>
|
||
<BR>Subject: users' information on my netware 4.11
|
||
|
||
<P> Novell ver >= 5.x has LDAP gateway to his NDS. These are many of LDAP
|
||
clients (API from Mozilla, OpenLDAP, netscape).
|
||
caldera has made NDS fo Linux (3 user trial ? - i cant download it from
|
||
my small city and test ) (www.caldera.com)
|
||
Novell said that in march/april will release Opensourced API for NDS
|
||
based on OpenLDAP (www.openldap.org)
|
||
Maybe LDAP gateway for NDS (in trial wersion ?) is free for download
|
||
from Novell ?
|
||
Write after your success ;-)
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Thu, 3 Feb 2000 08:43:48 -0800
|
||
<BR>From: Linux Gazette <<A HREF="mailto:lg@ssc.com">lg@ssc.com</A>>
|
||
<BR>Subject: FAQs
|
||
|
||
<P> The following questions received this month are answered in the
|
||
<A HREF="../faq/index.html"><I>Linux Gazette</I> FAQ</A>:
|
||
|
||
<UL>
|
||
<LI> How can i get my US Robotics Winmodem to work in Red Hat 6.0?
|
||
<LI> Is the <I>Linux Gazette</I> available in PDF format?
|
||
<LI> Is it available on CD-ROM?
|
||
<LI> Where can I find a French translation of the <I>Gazette</I>?
|
||
<LI> Can I subscribe to the <I>Gazette</I> or have it e-mailed to me?
|
||
</UL>
|
||
|
||
|
||
|
||
|
||
<a name="gen"></a>
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<center><H3><font color="maroon">General Mail</font></H3></center>
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Sat, 5 Feb 2000 20:07:59 -0800 (PST)
|
||
<BR>From: Ron Bates <<A HREF="mailto:raretek@yahoo.com">raretek@yahoo.com</A>>
|
||
<BR>Subject: Linux in Grocery Stores...
|
||
|
||
<P> Hey,
|
||
I just wanted to tell you guys, I purchased the
|
||
premiere issue of Maximum Linux magazine with a full
|
||
install of Linux-Mandrake 6.0 at Pak N' Save in So.
|
||
San Francisco. To think the day has come when you can
|
||
purchase a copy of Linux at your local chain grocery
|
||
store. <SNIFF> It's a beautiful world.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Sun, 6 Feb 2000 23:14:00 -0500
|
||
<BR>From: Pierre Abbat <<A HREF="mailto:phma@oltronics.net">phma@oltronics.net</A>>
|
||
<BR>Subject: Gazette crashes Konqueror
|
||
|
||
<P> I am trying to read the Gazette with kfm 1.167 and several pages crash it,
|
||
including the Mailbag and 2<> Tips. Can you help me figure out what's wrong?
|
||
It's happened before.
|
||
|
||
<P> phma
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Fri, 11 Feb 2000 15:05:04 +0100
|
||
<BR>From: Richard Vanek (ETM <<A HREF="mailto:Richard.Vanek@etm.ericsson.se">Richard.Vanek@etm.ericsson.se</A>>
|
||
<BR>Subject: current issue
|
||
|
||
<P> Hi
|
||
|
||
<P> I would like to download always current issue of Linux Gazette to my Pilot. Do you have general link which always point on contents of current issue?
|
||
|
||
<H4>Richard then wrote again, clarifying his request:</H4>
|
||
|
||
<P> The download is done by avantgo server which prepare a html pages for downloading to Palm Pilot. I would like to setup link where I can always find a new issue. AvantGO will look at it and when it's change I will get a new pages into pilot.
|
||
|
||
<P> The reason why link to the current issue is simple, if I point to your main page in level 1 of html I will have all issues which is too much for a Palm Pilot memory.
|
||
|
||
<BLOCKQUOTE> <EM>
|
||
[I added a symbolic link
|
||
<STRONG>http://www.linuxgazette.com/current</STRONG> pointing to the
|
||
current issue. I also made <STRONG>index.html</STRONG> in each issue
|
||
point to the Table of Contents page.
|
||
|
||
<P><STRONG>Readers, please do not bookmark anything through the
|
||
"current" link! </STRONG> The bookmark will go dead at the end of the
|
||
month or point to the wrong article. Instead, use the actual issue
|
||
directory (e.g., <CODE>issue51</CODE>. -Ed.]
|
||
</EM> </BLOCKQUOTE>
|
||
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Fri, 18 Feb 2000 08:35:58 -0800
|
||
<BR>From: Linux Gazette <<A HREF="mailto:lg@ssc.com">lg@ssc.com</A>>
|
||
<BR>Subject: Mirror site in India
|
||
|
||
<P> Sankar wrote:
|
||
<BLOCKQUOTE>
|
||
I am located in India, and keenly interested in hosting a mirror site
|
||
which would actually be in India. Can you please let me know what would
|
||
be approximate size required in the server for this?
|
||
</BLOCKQUOTE>
|
||
|
||
<P> The WWW directories are approximately 84 MB. Each issue will add 2-3 MB.
|
||
|
||
<P> The size of the FTP files can be found at
|
||
<A HREF="http://www.linuxgazette.com/ftpfiles.txt">
|
||
http://www.linuxgazette.com/ftpfiles.txt</A>
|
||
The current size is 43 MB, plus 1-2 MB for each new issue.
|
||
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
18 Feb 2000 10:16:01 -0800
|
||
<BR>From: Michael Grier <<A HREF="mailto:e1city@altavista.com">e1city@altavista.com</A>>
|
||
<BR>Subject: WebGlimpse Blank Page Syndrome
|
||
|
||
<P> It has been my experience that Netscape will not display a page if there is
|
||
a missing closing <CODE></table></CODE> tag somewhere, especially if
|
||
there are nested tables. Try appending an extra one at the end of the table.
|
||
|
||
<BLOCKQUOTE><EM>
|
||
[You are correct. However, fixing this requires delving into the
|
||
internals of WebGlimpse and Glimpse, which we do not have the resources
|
||
to do. It also appears that Netscape is throwing away the bottom of
|
||
the page when a large result set is returned, and that's where the
|
||
</TABLE> tag is going. -Ed.]
|
||
</EM> </BLOCKQUOTE>
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Fri, 25 Feb 2000 10:46:34 -0500
|
||
<BR>From: Jeff Rose <<A HREF="mailto:whisper@iag.net">whisper@iag.net</A>>
|
||
<BR>Subject: Main LG Logo ...
|
||
|
||
<P> Greetings,
|
||
|
||
<P> Agreed, I am *not* any type of GIMP-guru [see _my_ horrible non-aliasing
|
||
problematic logo] ... however, a suggestion:
|
||
|
||
<P> The Linux Gazette Main Logo is, well, ugly!
|
||
|
||
<P> Perhaps you could encourage the readership to submit their own logo
|
||
creations for Linux Gazette and have fun while making an improvement at
|
||
the same time?
|
||
|
||
<P> Hope this sounds like a plan,
|
||
|
||
<P> Jeff
|
||
<PRE>
|
||
--
|
||
( >- Jeff Rose - everyone's Linux User Group (eLUG) -< )
|
||
/~\ http://www.elug.org mailto:jrose@elug.org /~\
|
||
| \) *** Freelance Linux/IT Writer *** (/ |
|
||
|_|_ eFAX: +1.630.604.4130 _|_|
|
||
</PRE>
|
||
|
||
<BLOCKQUOTE> <EM>
|
||
[The staff and readers of </EM>LG<EM> are divided over whether it's
|
||
time for a new logo. I myself am undecided. But I can do this:</EM>
|
||
|
||
</EM><H3><EM>If you or any readers wish to submit artwork for
|
||
the </EM>Gazette<EM>, I will put them in a "</EM>Linux Gazette<EM> Art"
|
||
article so when we can all see them. They will then be available when
|
||
I go looking for something to jazz up a page with. </EM></H3><EM>
|
||
<!-- The extra <EM> tags are because Netscape misinterprets <EM> inside
|
||
<STRONG> inside <EM>. -->
|
||
|
||
<P><IMG SRC="../gx/lg-penguin.gif" ALIGN="right" WIDTH="161" HEIGHT="160">
|
||
This was how the "Penguin Reading the Gazette" image at right found
|
||
a home on the </EM>LG<EM> FAQ page. We had the existing image from the
|
||
days when Margie was the Editor of the </EM>Gazette<EM>. (She still
|
||
retains the title "Ruler of the </EM>Gazette<EM>"--she refused to give
|
||
me that title! :) I liked it, used it in one of my
|
||
<A HREF="../issue44/lg_backpage44.html#notlinux">Not Linux</A> columns,
|
||
and then decided it would make a good image for the FAQ.
|
||
|
||
<P> The </EM>LG<EM> logo is 600x256, and any new logo should probably be
|
||
the same size. The Penguin Reading the Gazette is 161x160; most page
|
||
decorations will want to be more or less that size. Page decorations
|
||
are a lot more likely to be used in future </EM>Gazette<EM> issues than
|
||
logos are, because there can be only one logo. All images should have
|
||
a </EM>Linux Gazette<EM> theme in their content somehow.
|
||
|
||
<P> With this in mind, send in some art! -Ed.]
|
||
<BR CLEAR="all">
|
||
</EM> </BLOCKQUOTE>
|
||
|
||
|
||
|
||
<P> <HR> <P>
|
||
<!--====================================================================-->
|
||
<IMG ALT=" " SRC="../gx/envelope.gif">
|
||
Fri, 25 Feb 2000 13:07:44 -0500
|
||
<BR>From: Jason Fink <<A HREF="mailto:jay_rf@exis.net">jay_rf@exis.net</A>>
|
||
<BR>Subject: Pundit Here, Pundit There, Pundits Everywhere
|
||
|
||
<H4>Pundit Here, Pundit There, Pundits Everywhere</H4>
|
||
|
||
<P> Pundits. Had enough of that word yet? I know I have and I also know there
|
||
are a few of these so-called experts whose teeth I would like knock out (I
|
||
guess the web equivalent would be breaking their knuckles or something). In all
|
||
honesty, since when did becoming an expert one area of technology suddenly make
|
||
one an absolute know-it-all about all technology? This has suddenly become the
|
||
new thing to be: an industry pundit, a technology pundit, or whatever. A
|
||
pundit, by the definition I refer to, is an accomplished expert in a particular
|
||
discipline. This e-world of ours has suddenly given anyone who has the time and
|
||
tenacity to become a pundit the opportunity to do so. Those whom have been in
|
||
the industry a long time have received that label, and rightfully so, for
|
||
excelling in a particular field. All of a sudden, however, many of these
|
||
pundits are breaking away from their disciplines and yammering about others. I
|
||
would rather they did not.</p>
|
||
|
||
<P> <H4>The Neo Pundit Know It All</H4>
|
||
|
||
<P> This is the group that really irritates me. They started out as people who
|
||
knew a lot about something, and in some cases, they outright contributed to
|
||
making something, setting a trend or engineering a brilliant new process. While
|
||
these people should be (and have been) commended, after a period of time they
|
||
suddenly become experts in other fields as well, but now they can forego
|
||
validation. Why that is, I have no idea. One can relate it to actors/actresses
|
||
or music stars who suddenly feel they should become involved with politics and
|
||
that their ideas are right. While there is a difference of sorts, you can see
|
||
the obvious parallel: I'm a somebody now so everything I say should be taken
|
||
seriously.</p>
|
||
|
||
<P> <H4>Losing Readers</H4>
|
||
|
||
<P> This sort of abuse of journalistic power needs to stop, someone needs to
|
||
start putting an end to it. The reason it needs to stop is not just ethics, it
|
||
really has more to do (in my opinion) with quality. If a person is particularly
|
||
known for having insightful columns on a given subject, chances are, I will
|
||
read them. The second they step into unknown territory and blunder, they lose
|
||
credibility in my eyes. While I may be just one person, I highly doubt I am the
|
||
only one who stops reading the material they write about because they
|
||
blundered.</p>
|
||
|
||
<P> <H4>Misinforming Glassy Eyed Suits</H4>
|
||
|
||
<P> Another point many administrators have brought to my attention has been the
|
||
pointy-haired-boss syndrome. A Glassy-Eyed Suit (IS Department Head) reads a
|
||
well-known, well-respected pundits column. It must true, right? Those who
|
||
know no better cannot be protected by the sane. A pundit writing about
|
||
something outside the sphere of their knowledge is in fact damaging the
|
||
industry as a whole. Knuckleheads across the world will do a 180 based upon
|
||
what some guy at some zine printed. Surely this is a good enough reason not to
|
||
arbitrarily write about something.</p>
|
||
|
||
<P> <H4>I Did it for the Hits . . . Come on the Hits . . .</H4>
|
||
|
||
<P> Word has it, if you secretly embed the word Linux on Coke cans, Coke sales
|
||
will skyrocket. Zines across the globe are printing Linux this and Linux that,
|
||
all for the sake of advertising dollars. That, in itself, is disgraceful. It
|
||
is bad enough that there are so many 2-bit sites in general The fact that
|
||
established journalists are using Linux to bring in the hits is repulsive.</p>
|
||
|
||
<P> <H4>Okay Wise Guy What About YOU?</H4>
|
||
|
||
<P> So am I being hypocritical? In a sense, yes, because I really do not know
|
||
much about Journalism, then again, I am not a pundit now am I? This trend has
|
||
been going on for a long time now. It is my hope, that by seeing this, not only
|
||
will you as a reader take the extra step to verify the information source, but
|
||
perhaps those readers out there who are writers will think twice about their
|
||
next article. </p>
|
||
|
||
<BLOCKQUOTE> <EM>
|
||
[The thing about Linux on coke cans reminded me of something somebody said
|
||
at the Python conference. He said, a Linux Janitorial
|
||
Service could go IPO just because it has the word "Linux" in it.
|
||
Then the stockholders would be surprised to realize they were serious
|
||
about the "Janitorial" part. -Ed.]
|
||
</EM> </BLOCKQUOTE>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <P>
|
||
<H5 ALIGN=center>
|
||
This page written and maintained by the Editor of the <I>Linux Gazette</I>.
|
||
Copyright © 2000, <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A><BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
|
||
<HR>
|
||
|
||
<center>
|
||
<table cellpadding=7><tr><td>
|
||
<IMG SRC="../gx/bytes.gif" border=1 ALT="News Bytes">
|
||
</td><td>
|
||
<H3>Contents:</H3>
|
||
<ul>
|
||
<li><a HREF="#distro">Distro News</A>
|
||
<li><a HREF="#general">News in General</a>
|
||
<li><a HREF="#software">Software Announcements</a>
|
||
</ul>
|
||
</td></tr></table>
|
||
</center>
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
|
||
<center><IMG ALT=" " SRC="gx/cover71.jpg" WIDTH=200 HEIGHT=268></center>
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<font color="green">
|
||
March 2000 <I>Linux Journal</I>
|
||
</font>
|
||
</H3>
|
||
<P>
|
||
The March issue of <A HREF="http://www.linuxjournal.com/"><I>Linux
|
||
Journal</I></A> is on the newsstands now. This issue focuses on Linux training.
|
||
|
||
<P> <I>Linux Journal</I> has articles that appear "Strictly On-Line".
|
||
Check out the Table of Contents at
|
||
<A HREF="http://www.linuxjournal.com/issue71/index.html">
|
||
http://www.linuxjournal.com/issue71/index.html</A> for articles in
|
||
this issue as well as links to the on-line articles.
|
||
To subscribe to <I>Linux Journal</I>, go to <A
|
||
HREF="http://www.linuxjournal.com/subscribe/index.html">
|
||
http://www.linuxjournal.com/subscribe/index.html</A>.
|
||
|
||
<P>
|
||
<font color="green">
|
||
For Subcribers Only</font>: <I>Linux Journal</I> archives are available
|
||
on-line at
|
||
<A HREF="http://interactive.linuxjournal.com">
|
||
http://interactive.linuxjournal.com/</A>
|
||
|
||
|
||
<a name="distro"></a>
|
||
<p><hr><p>
|
||
<!-- =================================================================== -->
|
||
<center><H3><font color="green">Distro News</font></H3></center>
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">BlueCat
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P><B>SAN JOSE, Calif., 7 February 2000</B> - Lynx Real-Time Systems, Inc.,
|
||
today announced the availability of BlueCat(tm) Linux, Release 1.0, Lynx'
|
||
version of Linux for high-availability, high-reliability embedded applications.
|
||
BlueCat Linux is part of the LynuxWorks(tm) suite that allows embedded systems
|
||
development of both BlueCat Linux and the LynxOS(r) real-time operating system
|
||
with a common compatible tool set.</P>
|
||
|
||
<P> <P>BlueCat, a tested and stabilized Linux version based on Red Hat 6.1, is
|
||
binary compatible with Linux applications, system and development tools and
|
||
drivers to allow rapid, efficient embedded deployment. Lynx provides cross
|
||
development support for BlueCat to a variety of popular embedded processors and
|
||
includes an advanced test methodology to ensure quality and reliability.</P>
|
||
<P><I>"BlueCat and its development environment, LynuxWorks, has established
|
||
Lynx as a key player in the embedded Linux market,"</I> said Rick Lehrbaum of
|
||
LinuxDevices.com, the embedded Linux portal.<I> "By taking the bold strategy of
|
||
'competing' against themselves in delivering BlueCat Linux, Lynx has provided a
|
||
viable business model that will avoid fragmenting Linux. Real-time support is
|
||
an important option for embedded developers who are choosing Linux as their
|
||
operating system."</I></P>
|
||
|
||
<P> <A HREF="http://www.bluecat.com">www.bluecat.com</A>.</P>
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Corel
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> <A HREF="http://www.ecommercetimes.com/news/articles2000/000210-3.shtml">
|
||
Corel Delivers Macromedia Flash to Linux</A>
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Hard Hat
|
||
</FONT>
|
||
</H3>
|
||
|
||
|
||
<P> Bellevue, Wash., February 8, 2000 - GoAhead(R) Software, today announced
|
||
that MontaVista Software Inc. is shipping GoAhead WebServer with their recently
|
||
announced Hard Hat Linux(R), a Linux operating system for embedded
|
||
applications. GoAhead WebServer is an open source, embedded Web server that
|
||
provides a secure, flexible and free way to access remote devices and
|
||
appliances via standard Internet Protocols.
|
||
|
||
<P> GoAhead WebServer leverages embedded JavaScript, a strict subset of
|
||
JavaScript optimized for small footprint environments. It is the only open
|
||
source, embedded Web server that uses Active Server Pages (ASP), embedded
|
||
JavaScript and in-memory CGI processing to deliver a highly efficient method
|
||
of dynamic Web page creation. GoAhead WebServer also features a ROM
|
||
packaging utility for Web pages.
|
||
|
||
<P> GoAhead's web site is <A HREF="http://www.goahead.com">
|
||
http://www.goahead.com</A>. The source code for the GoAhead WebServer is at
|
||
<A HREF="http://www.goahead.com/webserver/wsregister.htm">
|
||
http://www.goahead.com/webserver/wsregister.htm</A>.
|
||
Support for GoAhead WebServer is available through a
|
||
collaborative Usenet newsgroup,
|
||
<A HREF="news://news.goahead.com">news://news.goahead.com</A>, in which GoAhead
|
||
is an active participant.
|
||
|
||
<P> Information on Hard Hat Linux is on MontaVista's web site,
|
||
<A HREF="http://www.mvista.com">http://www.mvista.com</A>. (See the picture of
|
||
a penguin wearing a yellow hard hat in the top left corner of this page.)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Linux for Windows
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> Linux for Windows has been released in the UK.
|
||
It is based on Linux-Mandrake 6.1, and requires no partitioning or reformatting
|
||
since it runs from a file within Windows. For details, see the
|
||
<A HREF="http://www.macmillansoftware.com">Macmillan software webs site</A>
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Linux-Mandrake
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> NEW YORK - (LinuxWorld); February 2, 2000 - Macmillan USA, the Place for
|
||
Linux, (<A
|
||
HREF="http://www.placeforlinux.com">http://www.placeforlinux.com</A>),
|
||
announced it is shipping Complete Linux-Mandrake 7.0 for beginning and
|
||
intermediate Linux users. Macmillan's new product simplifies the process of
|
||
installing the Linux operating system for first time users and includes
|
||
in-depth user reference guides, technical support, and a complete suite of
|
||
desktop productivity applications.
|
||
Complete Linux-Mandrake 7.0 is available now at a MSRP of U.S. $29.95.
|
||
|
||
<P> System Requirements for Complete Linux-Mandrake 7.0: CPU Intel Pentium
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Red Hat
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> <A HREF="http://www.ecommercetimes.com/news/articles2000/000214-1.shtml">
|
||
Red Hat Expands European Operations</A> to France and Italy
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">SPIRO-Linux
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> A description of SPIRO-Linux is included in the
|
||
<A HREF="#cellphoneadmin">Configure your network from a web cell phone</A>
|
||
announcement below.
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Storm
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> <A HREF="http://www.ecommercetimes.com/news/articles2000/000222-4.shtml">
|
||
Storm Linux 2000 Makes European Debut </A>
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">SuSE
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> SuSE has appointed Sysdeco Mimer as its first Business Partner in Sweden.
|
||
Sysdeco Mimer will be providing their MIMER DBMS technology on the SuSE Linux
|
||
distribution.
|
||
MIMER is characterised
|
||
by ease-of-use, high performance, scalability, openness and high
|
||
availability. Among the thousands of MIMER users all over the world, Volvo,
|
||
Swedish Telecom, Ericsson, Hammersmith Hospital (UK) and English Blood
|
||
Authority can be mentioned.
|
||
MIMER Personal Edition for Linux is available for free download from
|
||
<A HREF="http://www.mimer.com/download">http://www.mimer.com/download</A>.
|
||
|
||
<P> LINUXWORLD EXPO 2000, NEW YORK, NY (February 2, 2000) -
|
||
<A HREF="http://www.sco.com">SCO</A>
|
||
and SuSE Linux AG today announced plans to deliver SCO's Tarantella
|
||
web-enabling software to SuSE Linux customers worldwide.
|
||
SCO will bring Tarantella web-enabling software to the SuSE Linux platform
|
||
and work with SuSE to market the software to its customers.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">TurboLinux
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> <A HREF="http://www.ecommercetimes.com/news/articles2000/000223-4.shtml">
|
||
TurboLinux Adds E-Commerce Suite to New Server</A>
|
||
|
||
|
||
|
||
|
||
<a name="general"></a>
|
||
<p><hr><p>
|
||
<!-- =================================================================== -->
|
||
<center><H3><font color="green">News in General</font></H3></center>
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">C.O.L.A news
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Upcoming conferences & events
|
||
</FONT>
|
||
</H3>
|
||
|
||
<table border>
|
||
<tr>
|
||
<td valign=top>
|
||
<b>Linux Open Source <BR>Expo and Conference</b>
|
||
<td valign=top>
|
||
March 7-10, 2000<BR>
|
||
Sydney, Australia<BR>
|
||
<A HREF="http://www.linuxexpo.com.au" target=_blank>www.linuxexpo.com.au</A>
|
||
|
||
<tr>
|
||
<td valign=top>
|
||
<b>Game Developers Conference</b><BR>
|
||
<td valign=top>
|
||
March 10-12, 2000<BR>
|
||
San Jose, CA<BR>
|
||
<A HREF="http://www.gdconf.com" target=_blank>www.gdconf.com</A>
|
||
<P>
|
||
</td></tr>
|
||
|
||
|
||
<tr>
|
||
<td valign=top>
|
||
<b>Software Development Conference & Expo</b><BR>
|
||
<td valign=top>
|
||
March 19-24, 2000<BR>
|
||
San Jose, CA<BR>
|
||
<A
|
||
HREF="http://www.sdexpo.com" target=_blank>www.sdexpo.com</A>
|
||
<P>
|
||
</td></tr>
|
||
|
||
<tr>
|
||
<td valign=top>
|
||
<b>Singapore Linux Conference (SLC)</b><BR>
|
||
<td valign=top>
|
||
March 23-25, 2000<BR>
|
||
Singapore<BR>
|
||
<A HREF="http://www.slc.com.sg" target=_blank>www.slc.com.sg</A>
|
||
<P>
|
||
</td></tr>
|
||
|
||
<tr>
|
||
<td valign=top>
|
||
<b>Colorado Linux Info Quest</b><BR>
|
||
<td valign=top>
|
||
April 1, 2000<BR>
|
||
Denver, CO<BR>
|
||
<A HREF="http://thecliq.org" target=_blank>
|
||
thecliq.org</A>
|
||
<P>
|
||
</td></tr>
|
||
|
||
<tr>
|
||
<td valign=top>
|
||
<b>Montreal Linux Expo</b><BR>
|
||
<td valign=top>
|
||
April 10-12, 2000<BR>
|
||
Montreal, Canada<BR>
|
||
<A HREF="http://www.skyevents.com/EN/" target=_blank>
|
||
www.skyevents.com/EN/</A>
|
||
<P>
|
||
</td></tr>
|
||
|
||
<tr>
|
||
<td valign=top>
|
||
<b>Spring COMDEX</b><BR>
|
||
<td valign=top>
|
||
April 17-20, 2000<BR>
|
||
Chicago, IL<BR>
|
||
<A HREF="http://www.zdevents.com/comdex" target=_blank>www.zdevents.com/comdex</A>
|
||
<P>
|
||
</td></tr>
|
||
|
||
<tr>
|
||
<td valign=top>
|
||
<b>HPC Linux 2000</b>: Workshop on High-Performance Computing with
|
||
Linux Platforms<BR>
|
||
<td valign=top>
|
||
May 14-17, 2000<BR>
|
||
Beijing, China<BR>
|
||
<A
|
||
HREF="http://www.csis.hku.hk/~clwang/HPCLinux2000.html" target=_blank>
|
||
www.csis.hku.hk/~clwang/HPCLinux2000.html</A>
|
||
<P>
|
||
(In conjunction with <A
|
||
HREF="http://www.cs.wm.edu/hpcs/HPCAsia2000.html/" target=_blank>
|
||
HPC-ASIA 2000</A>:
|
||
The Fourth International Conference/Exhibition on
|
||
High Performance Computing in Asia-Pacific Region)
|
||
<P>
|
||
</td></tr>
|
||
<tr>
|
||
<td valign=top>
|
||
<b>Linux Canada</b><BR>
|
||
<td valign=top>
|
||
May 15-18, 2000<BR>
|
||
Toronto, Canada<BR>
|
||
<A HREF="http://www.linuxcanadaexpo.com" target=_blank>www.linuxcanadaexpo.com</A>
|
||
<P>
|
||
</td></tr>
|
||
|
||
</table>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Open Source Equipment Exchange
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> Hauppague, New York, NY - February 8, 2000 - BASCOM Global Internet
|
||
Services, Inc. (BASCOM), pioneering developers of Linux-based thin server
|
||
productivity solutions for small business, today announces an initiative in
|
||
keeping with the collaborative spirit of the Open Source movement.
|
||
BASCOM's Open Source Equipment Exchange
|
||
<A HREF="http://osee.bascom.org">(osee.bascom.org)</A> is designed to
|
||
match those donating computer equipment with those in the Open Source
|
||
community needing to add infrastructure to further their development
|
||
efforts and spur innovation toward the continued evolution of the Linux
|
||
operating system.
|
||
|
||
<P> The OSEE web site will link those donating equipment with those in the Open
|
||
Source community in need of hardware resources. Since the Linux OS requires
|
||
relatively modest "horsepower" to drive it, older class computers that have
|
||
outlived their use in corporate environments will be given renewed life in the
|
||
hands of Open Source developers.
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Help wanted - literally
|
||
</FONT>
|
||
</H3>
|
||
|
||
I have a position available for a Framework Developer/Designer in
|
||
d/t Toronto. The technology is C/C++, Unix or Linux (Linux preferred), and
|
||
TCP/IP (sockets), and it is being used to develop secure web conferencing
|
||
software that can operate in almost real-time and across multiple platforms.
|
||
It is full-time and the company is pre-IPO. Maybe someone out there is
|
||
interested?
|
||
|
||
<P> Ken French, BScH, MSc<BR>
|
||
Consultant, IT Division<BR>
|
||
Multec Canada Ltd.<BR>
|
||
200 Ronson Drive, Suite 204<BR>
|
||
Telephone: (416) 244-2402 ext. 105<BR>
|
||
Email: <A HREF="mailto:kfrench@multec.ca">kfrench@multec.ca</A><BR>
|
||
Web: <A HREF="http://www.multec.ca">www.multec.ca</A><BR>
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Global Linux Event Series
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> MILFORD, CT - 11 February 2000 - Advanstar Communications, Inc., parent
|
||
company of LINUX Canada and Advanstar Expositions Canada LTD, and Specialized
|
||
Systems Consultants, Inc., publishers of <I>Linux Journal</I>, announced today
|
||
a strategic alliance to create a series of global conferences and expositions
|
||
for the Linux community.
|
||
|
||
<P> The Linux event series launches in Canada, May 15 - 18, 2000 at the
|
||
Metropolitan Toronto Convention Centre. The inaugural event, LINUX Canada, will
|
||
consist of multiple conference sessions and an exhibit hall with leading-edge,
|
||
Linux-related exhibitions. Three visionary keynote presentations are also
|
||
confirmed, including: Robert Young, chairman & CEO of Red Hat, Tuesday, May
|
||
16; Linus Torvalds, creator of the Linux operating system, Wednesday, May 17;
|
||
and, Ransom Love, title of Caldera Systems, Thursday, May 18. The event has
|
||
already gained strong support from the Canadian Linux Users Exchange (CLUE) and
|
||
the Toronto Linux Users Group (TLUG).
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">What is the Future of OS?
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> Portland, OR, February 15, 2000 - Representatives from Caldera Systems,
|
||
GartnerGroup, Novell Corporation and Red Hat will debate "The Future of OS on
|
||
Desktop PCs and Servers" on Friday, March 10th at Noon, announced System
|
||
Builder Summit today. The panel discussion will take place in conjunction
|
||
with System Builder Summit Spring 2000, being held March 8-11th at the Desert
|
||
Springs Marriott Resort and Spa in Palm Desert, California.
|
||
|
||
<P> In addition to the OS panel, the agenda for System Builder Summit Spring
|
||
2000 includes Keynotes by Michael Tiemann, CTO of Red Hat; Jim Yasso, Vice
|
||
President of Intel Corporation; and Dan Vivoli, Vice President of Marketing at
|
||
nVIDIA. Through roundtable sessions, theater presentations and exhibits, more
|
||
than 100 technology vendors will offer a preview of year 2000 roadmaps,
|
||
products, services and programs that cover the entire technology spectrum from
|
||
the desktop to the server to Internet-enabled computers and communication.
|
||
Among them are 3COM Corporation, AMD, ATI Technologies, Canon Computer Systems,
|
||
Conexant, D&H Distributing, Imation, Ingram Micro, Intel Corporation, Logitech,
|
||
NASBA, Novell, nVIDIA, Quantum and Techworks, among others.
|
||
|
||
<A HREF="http://www.systembuildersummit.com">
|
||
http://www.systembuildersummit.com</A>
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">GetTux.com closes shop
|
||
</FONT>
|
||
</H3>
|
||
|
||
This note is going out to all customers of GetTux.com, and their 'SubX
|
||
Series' subscribers.
|
||
|
||
<P> Unfortunately, due to a lack of funding, GetTux.com is ceasing business.
|
||
This is a most unpleasant situation, and we are not thrilled to have to send
|
||
out this notice, but, without major funding, we are unable to advertise,
|
||
unable to increase staff, and are thus unable to advance as a company. We
|
||
had meetings with several large investors, but, unfortunately, no one was
|
||
able to invest in us, while at the same time leaving us control of the
|
||
company and its direction. What a sad thing the business world can be.
|
||
|
||
<P> As several of you know, the company was run, on a day to day basis, by me,
|
||
Scott McDaniel. Website, promotions, product, research and all. We really
|
||
needed a few other people, and, without that funding, we couldn't continue.
|
||
|
||
<P> We certainly felt that we offered a unique and useful product, but, again,
|
||
without the funding we hoped to receive, we were forced to discontinue
|
||
service. Hopefully, the Linux community will strive (of course it will!),
|
||
and someone may indeed resurrect the idea of a monthly subscription service.
|
||
I know that several of you are in Linux related businesses, some of you in
|
||
the print media, and others are part of Linux related websites.
|
||
|
||
<P> GetTux.com was formed in the hope that we could advance the use of Linux ,
|
||
and that the ease of use would be promoted by allowing users updates to
|
||
documentation and applications. We are fans of Linux. We are users of Linux.
|
||
We are part of the commmunity. And we are sorry we are unable to continue to
|
||
serve you in this capacity.
|
||
|
||
<P> In the event that anyone in the community would like to use the GetTux.com
|
||
domain, or would like the product we were selling, business plan and all,
|
||
please contact me personally,
|
||
<A HREF="mailto:scott@mcdev.com">scott@mcdev.com</A>.
|
||
|
||
<P> Anyway, back to the sad business: Current subscribers will be given a FULL
|
||
refund. Consider the first month of your subscription a gift from other
|
||
Linux aficionados. If you have a refund related question, please email
|
||
<A HREF="mailto:refunds@gettux.com">refunds@gettux.com</A>.
|
||
|
||
<P> Again, my apologies for any inconvenience, and, again, I wish to thank each
|
||
and every customer that allowed us to serve them.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Linux Links
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> <A HREF="http://www.ecommercetimes.com/news/articles2000/000204-5.shtml">
|
||
VA Linux Acquires Andover.Net for $800M</A>
|
||
|
||
<P> <A HREF="http://www.ecommercetimes.com/news/articles2000/000207-4.shtml">
|
||
IBM Expands Linux Investment</A>
|
||
|
||
<P> <A HREF="http://www.ecommercetimes.com/news/articles2000/000209-7.shtml">
|
||
VA Linux Expands SourceForge Online Development</A>
|
||
regarding KDE and the CMU Sphinx speech recognition system.
|
||
|
||
<P> The <A HREF="http://www.linuxshowcase.org">Atlanta Linux Showcase</A> has a
|
||
call for papers. Submissions are due April 17 for the Extreme Linux Workshop,
|
||
and May 1 for the Hack Linux/Use Linux Tracks.
|
||
|
||
<P> <A HREF="http://www.ecommercetimes.com/news/articles2000/000224-4.shtml">
|
||
eSoft and Gateway</A> are partnering to advance Linux-based
|
||
Internet software and services to small and mid-sized businesses.
|
||
|
||
<P> <A HREF="http://www.manning.com/Grayson">
|
||
Python and Tkinter Programming</A> is a new book by
|
||
John E. Grayson, published by Manning Publications.
|
||
|
||
<P> <A HREF="http://www.whichrpm.com">www.whichrpm.com</A> is a site helping you
|
||
to find Linux software in the RPM format. Over 35 000 software packages are
|
||
indexed, allowing you to find, for instance, a package that lets you talk to
|
||
your PalmPilot.
|
||
|
||
<P> <A HREF="http://linuxdevices.com/cgi-bin/news_view.cgi?newsid=NS8830783548">
|
||
Using Linux in Embedded and Real-time System</A> is a white paper on why Linux
|
||
is ideal for this environment.
|
||
|
||
<P> <A HREF="http://www.extremeprogramming.org/">Extreme Programming</A> was
|
||
mentioned in <A HREF="steffler.html">Jason Steffler's article</A>, but I want
|
||
to mention it again because it's a cool site. It's "a gentle introduction to
|
||
Extreme Programming", which is one of those strategies for getting product
|
||
development synchronized with the client's expectations.
|
||
|
||
<P> Metran Technologies has updated the HTML version of
|
||
<A HREF="http://samba.he.net"><I>Using Samba</I></A>, and placed it on a
|
||
more reliable web server.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">The Linux-Net Project
|
||
</FONT>
|
||
</H3>
|
||
|
||
|
||
<P> The Linux-Net Project,
|
||
<A HREF="http://linux_net.tripod.com">http://linux_net.tripod.com</A>
|
||
(temporary URL), seeks to modify Linux to allow your household computing
|
||
devices to become intelligent "terminals".
|
||
For instance, your refrigerator may notice that milk is running low and,
|
||
being a termenal, asks the server to put "Milk" on the shopping list. Now
|
||
you get the shopping list off of your PDA, which is also a termenal, and see
|
||
that you should get milk. It could even be extended so that the server will
|
||
watch how much milk, or any other product, your family drinks and will
|
||
adjust the ammount you should get based on that.
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Cobalt Qube 2 and the Phoenix Adaptive Firewall
|
||
</FONT>
|
||
</H3>
|
||
|
||
|
||
<P> COLUMBUS, OH, (February 1, 2000)-Progressive Systems, Inc., a leading
|
||
provider of Linux-based network security solutions, and Cobalt Networks,
|
||
Inc., a leading developer of server appliances, today
|
||
announced a new firewall appliance solution based on Progressive's
|
||
Phoenix Adaptive Firewall, the only firewall for Linux to be both ICSA
|
||
and LinuxLabs certified, and Cobalt's award-winning Qube 2 server
|
||
appliance. The combination will allow small-to medium-sized businesses,
|
||
workgroups, branch offices, schools and government institutions greater
|
||
flexibility in establishing network security policy and design.
|
||
|
||
<P> With the Phoenix firewall on the Qube 2, Progressive extends both its
|
||
relationship with Cobalt and its existing offering of Linux-based
|
||
firewall appliances. The partnership with Cobalt allows Progressive to
|
||
deliver security solutions designed to meet a range of customer needs
|
||
and opens Cobalt's customer base to Progressive. The Phoenix firewall
|
||
on the Qube 2 joins the existing Phoenix firewall on the Cobalt RaQ 2, a
|
||
Linux-based firewall appliance that allows service providers and
|
||
resellers to deliver security products and managed services to
|
||
small-to-medium-sized businesses, branch offices, schools, and
|
||
government institutions. The addition of the Phoenix on the Qube gives
|
||
customers an easy-to-use, high functionality premise-based solution that
|
||
satisfies the needs of individual businesses and institutions.
|
||
Progressive and Cobalt enjoy synergies in their product and sales
|
||
organizations, allowing the companies to leverage their respective
|
||
channel and product strategies.
|
||
|
||
<P> The Phoenix Qube will retail for $2,495 with unlimited users.
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">OpenTape.org
|
||
</FONT>
|
||
</H3>
|
||
|
||
|
||
<P> Boulder, CO - January 31, 2000 - Ecrix Corporation and the Linux Fund
|
||
today announced <A HREF="http://www.opentape.org">OpenTape.org</A>, a new
|
||
nonprofit web site supporting the open source software movement. OpenTape.org
|
||
offers users access to technical information about data backup hardware and
|
||
software for the Linux operating system. All advertising and vendor
|
||
participation revenues generated by the site go to the Linux Fund, a non-profit
|
||
organization that supports Linux programmers with development grants and
|
||
university scholarships.
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">LinuxLinks.com launches free e-mail service to rival Hotmail
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> LinuxLinks.com is proud to announce the launch of a free web based
|
||
email service targeted specifically for the Linux community. This
|
||
service allows users to send and receive email on any computer that
|
||
offers a web browser. Now you can deal with email anywhere in the
|
||
world in a discreet and secure manner whilst at the same time
|
||
promoting the Linux cause.
|
||
|
||
<P> Some of the features provided include: a yourname@firstlinux.net email
|
||
address, lightning fast service, attachments, folders, address book,
|
||
spam filters and POP mail retrieval. There are many preference options
|
||
available too allowing users to enhance their messages with different
|
||
font styles, sizes and colors. A built-in help facility is also provided.
|
||
|
||
<P> To complement this rich number of features we also provide message
|
||
searches, personal signatures, aliases, and a personal profile to
|
||
make a complete FREE web email service.
|
||
|
||
<P> For more information and to sign up please visit
|
||
<A HREF="http://www.firstlinux.net/">http://www.firstlinux.net/</A>
|
||
|
||
<P> This service is the latest addition to the FirstLinux network,
|
||
which currently comprises of
|
||
<A HREF="http://www.linuxlinks.com/">LinuxLinks.com</A>
|
||
and <A HREF="http://www.firstlinux.com/">FirstLinux.com</A>.
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Lineo to appear in hotel/apartment set-top boxes
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> LINDON, UTAH-Jan. 18, 2000-Lineo, Inc, developer of embedded Linux system
|
||
software; Elitegroup Computing, manufacturer of system board products; and
|
||
Bast, Inc., provider of set-top hardware, today announced an agreement to use
|
||
Lineo Embedix Linux 1.0 and Embedix Browser for Bast's line of embedded
|
||
Linux-based set-top hardware. These devices will be installed in hotel rooms
|
||
and apartment buildings in the United States, Europe and Asia. This
|
||
Embedix-based Web browser is the first Internet appliance to provide hotel and
|
||
apartment managers a low-cost, convenient way to give customers easy access to
|
||
the Internet from an ordinary television set via a broadband network maintained
|
||
by the property owner.
|
||
|
||
Lineo:<A HREF="http://www.lineo.com">www.lineo.com</A><BR>
|
||
Elitegroup: <A HREF="http://www.ecsusa.com">www.ecsusa.com</A>,
|
||
<A HREF="http://www.ecs.com.tw">www.ecs.com.tw</A><BR>
|
||
Bast: <A HREF="http://www.bastinc.com">www.bastinc.com</A>.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">G.lite: Linux-based DSL modem
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> Silicon Automation Systems Limited today extended its Synapse range of
|
||
xDSL products by introducing a G.lite solution for Linux. This is the
|
||
world's first Linux based internal G.lite modem offering the end-user
|
||
enhanced data rates over the existing copper lines.
|
||
|
||
<P> Mr. Deepak Gupta, Vice President.,
|
||
SAS, says, "External ADSL modem solutions available in the market today are
|
||
expensive and bulky. They are not suitable for the Internet appliance
|
||
market where cost and size are critical. Synapse G.lite for Linux is an
|
||
extremely attractive solution for OEMs looking for providing ADSL access
|
||
to their Linux based appliances. Providing G.lite under Linux is a
|
||
pioneering step towards mass deployment of ADSL and in firmly establishing
|
||
it as the technology of choice in the Internet access market," he added.
|
||
|
||
<P> The Synpase G.lite for Linux modem provides data transfer rates of 1.5 Mb
|
||
/ s downstream and 512 Kb / s upstream while allowing simultaneous
|
||
access for analog voice telephony. It is fully compliant with the ITU-T
|
||
G.992.2 standard and has been interoperated with most major DSLAM vendors.
|
||
Moreover, the performance of the system exceeds those mandated by
|
||
standards.
|
||
|
||
<A HREF="http://www.sasi.com">www.sasi.com</A>
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">New Red Hat CTO to address system builders
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> Portland, OR, January 31, 2000 - Michael Tiemann, Chief Technical Officer
|
||
(CTO) of Red Hat, will address system builders and technology vendors from
|
||
North America and Europe at the Opening Reception of System Builder Summit on
|
||
Wednesday evening, March 8th. A technical leader in the industry, Tiemann
|
||
will provide strategic insight into the open source movement and the impact
|
||
it will have on current industry and channel models. System Builder Summit
|
||
takes place March 8-11th at the Desert Springs Marriott Resort and Spa, in
|
||
Palm Desert, California.
|
||
|
||
<P> Tiemann was named Chief Technical Officer of Red Hat on January 12th of
|
||
this year. Prior to this, he was co-founder and acting CTO of Cygnus Solutions,
|
||
which Red Hat acquired this month. In his new role, Tiemann is responsible for
|
||
communicating Red Hat's strategic direction to the company's customers and
|
||
ensuring that Red Hat technologies meet their long term business requirements.
|
||
|
||
<A HREF="http://www.systembuildersummit.com">www.systembuildersummit.com</A>
|
||
|
||
|
||
|
||
|
||
<a name="software"></a>
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<center><H3><font color="green">Software Announcements</font></H3></center>
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">C.O.L.A software news
|
||
</FONT>
|
||
</H3>
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Internet phone for Linux
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> <A HREF="http://www.linuxmotors.com/phone">Phone</A> is a linux client
|
||
program that lets you talk with other people on the internet using voice on a
|
||
full duplex connection. The requirements are:
|
||
|
||
<UL>
|
||
Linux
|
||
<LI> 24000 bits/second or better internet connection
|
||
<LI> Full duplex sound card (you can read and write audio data at the
|
||
same time)
|
||
<LI> Linux support for that sound card (many drivers have trouble in
|
||
full duplex mode)
|
||
<LI> Microphone
|
||
<LI> Speakers
|
||
</UL>
|
||
|
||
<P> Your identity is based on your email address. The
|
||
server maintains a database of who is online and
|
||
everyone's contact list. You can find out if your
|
||
friends are on line if they are in your contact list
|
||
and you're in their contact list. Similar to ICQ.
|
||
|
||
<P> The program is very new and is command line based.
|
||
Lots of improvements are planned, should it become
|
||
popular. The client is free and open source. The
|
||
matching service is free until further notice.
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">CodeCatalog and cyclic.com acquired by OpenAvenue
|
||
</FONT>
|
||
</H3>
|
||
|
||
|
||
<P> Scotts Valley, CA -- Paul Hessinger, chairman and chief executive
|
||
officer of OpenAvenue, Inc. (<A
|
||
HREF="http://www.openavenue.com">www.openavenue.com</A>), today announced that
|
||
the company has acquired CodeCatalog and Cyclic.com from SourceGear
|
||
Corporation. OpenAvenue is a privately-held, business-to-business company
|
||
specializing in Web-based hosting, management, and distribution of worldwide
|
||
collaborative software development projects. OpenAvenue hosts application
|
||
development content provided by individual and corporate content owners, and
|
||
makes it available to a worldwide community of software developers under open
|
||
source, community-based, and private licensing.
|
||
|
||
<P> A Web-based open-source code search engine, CodeCatalog
|
||
(<A HREF="http://www.codecatalog.com">www.codecatalog.com</A>) provides a fast
|
||
reference tool to search and browse a source code repository which currently
|
||
contains more than 20 million lines of open-source code from Linux, Mozilla,
|
||
KDE, GNOME, and others. All of the most popular open-source projects are
|
||
represented, searchable, browsable, and cross-referenced against each other.
|
||
CodeCatalog is built upon a variety of open source technologies, including
|
||
Linux. OpenAvenue will integrate CodeCatalog into its OAsis infrastructure.
|
||
|
||
<P> OpenAvenue also acquired SourceGear's
|
||
<A HREF="http://Cyclic.com">Cyclic.com</A>, a popular Web
|
||
destination for developers using the Concurrent Versions System (CVS),
|
||
the leading version control tool for open-source developers. OpenAvenue
|
||
will further SourceGear's initiative to support the open community
|
||
development of CVS, work to enhance its functionality, and remain
|
||
committed to its status as free software.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">e-speak.net
|
||
</FONT>
|
||
</H3>
|
||
|
||
|
||
<P> SAN FRANCISCO, CA--Collab.Net announced today that it has entered into an
|
||
agreement with Hewlett-Packard Company to build, host and maintain the Open
|
||
Source software development infrastructure and Web site (<A
|
||
HREF="http://www.e-speak.net">www.e-speak.net</A>) for e-speak technology.
|
||
E-speak, an HP-developed software that is now available as Open Source
|
||
software, dramatically simplifies the creation, composition, deployment,
|
||
management, and maintenance of e-services over the Internet.
|
||
|
||
<P> Collab.Net is providing Web-based development life-cycle management
|
||
services including code versioning, bug tracking, and email discussion
|
||
forums that are key to a well-run Open Source software community.<P> As a part of this effort, Collab.Net is providing a hosting platform
|
||
consisting of several major, well-known packages of Open Source
|
||
software combined into a cohesive offering:
|
||
|
||
<PRE>
|
||
- Code Version System (CVS) repositories
|
||
- Bug tracking using the BugZilla software from the Mozilla Project
|
||
- Mailing lists, archived and searchable
|
||
- Source code browsing tools
|
||
- An administrative interface for "admins" from the e-speak community
|
||
</PRE>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">iPlanet web server from the Sun-Netscape Alliance
|
||
</FONT>
|
||
</H3>
|
||
|
||
|
||
<P> MOUNTAIN VIEW, Calif. - January 19, 2000 - The Sun-Netscape
|
||
Alliance (Alliance) today announced iPlanet(TM) Web Server,
|
||
Enterprise Edition 4.1 and the new FastTrack Edition 4.1
|
||
software, both of which now include support for the Linux
|
||
operating system and the latest Java(TM) technologies. With
|
||
these additions, iPlanet Web Server software now gives users
|
||
an even wider degree of choice and flexibility in using
|
||
iPlanet Web Server software on the operating system - or
|
||
combination of operating systems - that best meets their
|
||
business and Internet system requirements.
|
||
|
||
<P> The new iPlanet Web Server, FastTrack Edition 4.1 software
|
||
was specifically designed to meet the needs of developers
|
||
and will be offered for free. FastTrack Edition 4.1
|
||
contains nearly all the core application development and
|
||
administrative features of Enterprise Edition 4.1 that
|
||
developers need to build rich, dynamic Web applications.
|
||
iPlanet Web Server, Enterprise Edition 4.1 software
|
||
continues to meet the needs of enterprises and service
|
||
providers who require a high performing, scalable Web server
|
||
to power their mission-critical Internet applications.
|
||
|
||
<P> CNN To Power Web Sites With iPlanet Web Server 4.1 Software
|
||
"The CNN Web sites have relied on Netscape Web Servers to
|
||
meet the world's tremendous demand for news ever since
|
||
CNN.com's initial launch in 1995. We have served billions of
|
||
pages with Netscape Enterprise Server 2.01, and now it is
|
||
time to move forward," said Sam Gassel, chief systems
|
||
engineer for CNN Internet Technologies. "Our initial
|
||
testing shows that iPlanet Web Server 4.1 software should be
|
||
a highly scalable and reliable release. As we offer a more
|
||
dynamic and personalized service, our users will benefit
|
||
from the improvements in core functionality and new features
|
||
such as integrated support for the latest Servlet and
|
||
JavaServer Pages(TM) (JSP) specifications."
|
||
|
||
<P>
|
||
A pre-release version of iPlanet Web Server, Enterprise
|
||
Edition 4.1 software on Linux is currently available on the
|
||
iPlanet Web site, at
|
||
<A HREF="http://www.iplanet.com/downloads/testdrive/index.html">
|
||
www.iplanet.com/downloads/testdrive/index.html</A>, for trial
|
||
use and feedback. iPlanet Web Server, Enterprise Edition
|
||
4.1 software on the Linux, NT and Solaris(TM) Operating
|
||
Environment is scheduled to be available for purchase in
|
||
early March, 2000. iPlanet Web Server, Enterprise Edition
|
||
4.1 software with support for HPUX, AIX and Tru64
|
||
(Compaq/DEC) is scheduled to be available in early April,
|
||
2000. iPlanet Web Server, FastTrack Edition 4.1 software is
|
||
scheduled to be available on all supported operating
|
||
systems--Linux, Solaris, NT, AIX, Tru64 and HPUX--for free
|
||
on the iPlanet Web site in early May, 2000.
|
||
iPlanet Web Server, Enterprise Edition 4.1 software is
|
||
priced at $1495 per CPU.
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<A NAME="cellphoneadmin"></A>
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Configure your network from a web cell phone
|
||
</FONT>
|
||
</H3>
|
||
|
||
|
||
<P> January 24, 2000 - Wayne, NE -
|
||
SPIRO-Linux announces the development of a Linux Administration
|
||
System, SPIRO-Linux WETMINtS, a powerful web-based administration
|
||
interface for Linux systems.
|
||
|
||
<P> Using WETMINtS, you can configure DNS, Samba, NFS, local/remote
|
||
filesystems and more using your web-enabled cellular phone.
|
||
WETMINtS is simple web-enabled cellular phone software, and
|
||
consists of a number of CGI programs which directly update
|
||
system files. WETMINtS supports all SPIRO-Linux and other Linux
|
||
operating systems. Standard operations available with WETMINtS
|
||
include:
|
||
|
||
<PRE>
|
||
<LI> Creating and editing Unix users and groups
|
||
<LI> Log in to your system with telnet
|
||
<LI> List, Kill and Renice running processes on your system
|
||
<LI> Manage WETMINtS configuration
|
||
<LI> Perform network diagnostics (ping, traceroute, port scanning)
|
||
<LI> List currents logins
|
||
</PRE>
|
||
|
||
<P> About SPIRO-Linux
|
||
|
||
<P> <A HREF="http://www.spiro-linux.com">SPIRO-Linux</A> is the only
|
||
distribution that comes with five easy-to-use Server installations (Mega
|
||
Server, Web Server, Application Server, Name Server, File and Print Server) and
|
||
three Workstation installations (General Purpose, Development and Graphics),
|
||
plus an upgrade path and a custom install. SPIRO-Linux includes an Office Suite
|
||
which contains a word processor, spreadsheet that is built into the product.
|
||
In addition, SPIRO-Linux has the capability to import Microsoft Word documents
|
||
into Linux.
|
||
|
||
<P> Currently, SPIRO-Linux is pursuing relationships with different OEM
|
||
manufacturers in need of a more robust and easier to use version of
|
||
Linux. SPIRO-Linux is published under the GNU general public license.
|
||
|
||
<P>
|
||
|
||
|
||
<BLOCKQUOTE> <EM>
|
||
[Just before press time, I couldn't get to www.spirolinux,com.
|
||
It could be on <A HREF="http://www.openshare.net">
|
||
http://www.openshare.net</A> according to a web search, but that
|
||
site is under renovation. However, Walnut Creek has a version of
|
||
SPIRO-Linux for download at
|
||
<A HREF="ftp://ftp.cdrom.com/pub/linux/sunsite/distributions/spiro/i386/SPIRO/RPMS/">
|
||
ftp://ftp.cdrom.com/pub/linux/sunsite/distributions/spiro/i386/SPIRO/RPMS/</A> .
|
||
If anybody at SPIRO-Linux reads this, please send the correct URL
|
||
to <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A>. -Ed.]
|
||
</EM> </BLOCKQUOTE>
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Xi Graphics Product Line for Linux
|
||
</FONT>
|
||
</H3>
|
||
|
||
|
||
<P> Denver - XI Graphics Inc.
|
||
has announced a new web-based product line of graphics hardware drivers for
|
||
Linux. In making the announcement, Xi Graphics' National Sales Manager, Lee
|
||
Roder, said the company would continue to offer its existing Accelerated-X
|
||
Display Server line of products for Linux and Unix operating systems.
|
||
|
||
<P> "Desktop Linux is coming fast, and we're going to be there," said
|
||
Roder. "We produce higher quality drivers more efficiently than anyone
|
||
else in the business. Linux gamers and developers alike can easily
|
||
download, demo and purchase our drivers from the Web site at
|
||
affordable pricess -- it's good for us and it's good for Linux."
|
||
|
||
<P> The 3D Linux drivers are OpenGL 1.1.1-compliant, support libGLU
|
||
and libGL, and are available for download from Xi Graphics' web site
|
||
(<A HREF="http://www.xig.com">www.xig.com</A>) starting at $29 each. A limited
|
||
number of drivers are currently available, but more are being added weekly.
|
||
|
||
<P> Roder said each driver is priced according to a numbe of factors
|
||
such as hardware capabilities of the card, the degree of difficulty
|
||
developing and testing the driver and the likely volume of sales
|
||
of the driver.
|
||
|
||
<P> "Our new line of graphics support for Linux in desktop installations
|
||
is a result of requests from our customers," said Roder. "It gives them
|
||
the ability to very quickly get superb graphics support for their
|
||
specific hardware at a price that is quite economical."
|
||
|
||
<P> The new 3D Linux driver products are sold only over the Web and are
|
||
available as freely downloadable, limited-run-time demos. The demos
|
||
can be run on the customers' hardware to confirm compatibility and
|
||
performance before purchasing. Customers use a registration system
|
||
to purchase a key through Xi Graphics' web site. The key is e-mailed
|
||
back to the customer, unlocks the demo product and converts it into
|
||
standard product.
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!-- =================================================================== -->
|
||
<H3><IMG ALT=" " SRC="../gx/bolt.gif">
|
||
<FONT COLOR="green">Other software
|
||
</FONT>
|
||
</H3>
|
||
|
||
<P> <A HREF="http://www.magicsoftware.com">Magic eDeveloper for Linux</A> is a
|
||
toolkit to build e-commerce and enterprise software directly on Linux.
|
||
|
||
<P> <A HREF="http://www.accessnt.com.au/~jsno/clobberd">clobberd 4.16</A> is a
|
||
daemon that monitors user activity and network interface activity. Available
|
||
at Linux FTP sites.
|
||
|
||
<P> <A HREF="http://www.etnus.com">TotalView 4.0</A> is the first parallel
|
||
debugger to support multiple development platforms for both traditional UNIX
|
||
and Linux.
|
||
|
||
<P> <A HREF="http://babylon.spellcast.com/">Babylon remote-access software</A>
|
||
from Spellcaster is now open-source.
|
||
|
||
<P> <A HREF="http://www.cycladescard.com">Cyclades</A> has released version
|
||
6.5.5 of the Cyclom-Y and Cyclades-Z Linux driver. (In the Tech support
|
||
section of the web site.)
|
||
|
||
<P> <A HREF="http://www.csvtech.com">EZHTML</A> makes the arcane art of HTML
|
||
accessible to everyone with an easy to use interface and well thought out
|
||
design. Tags are arranged in categories and are grouped with other related
|
||
tags. The built in search function makes it easy to find that one tag you are
|
||
looking for and save time. A free 14-day trial is available.
|
||
|
||
<P> <A HREF="http://www.littleigloo.org">Igloo FTP</A> has released a beta
|
||
version of their commercial FTP client, IglooFTP-PRO Beta 1.0.0pre1. Binaries
|
||
for this, and the source for an earlier version (IglooFTP 0.6), are on the web
|
||
site.
|
||
|
||
<P> The <A HREF="http://www.wolfram.com/applications/parallel">
|
||
Parallel Computing Toolkit</A> from Wolfram Research, Inc.
|
||
is a Mathematica application
|
||
package that brings parallel computation to anyone having
|
||
access to more than one computer on a network or to a
|
||
multiprocessor computer.
|
||
|
||
<P> Easy Software Products announces
|
||
<UL>
|
||
<LI> <A HREF="http://www.easysw.com/printpro">ESP Print Pro</A>, a
|
||
printing package for Linux with over 1600 printer drivers (free 45-day trial)
|
||
<LI> <A HREF="http://www.easysw.com/cups">CUPS</A>, the Common UNIX
|
||
Printing System (GPL, the basis for ESP Print Pro, without printer drivers).
|
||
</UL>
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <P>
|
||
<H5 ALIGN=center>
|
||
This page written and maintained by the Editor of the <I>Linux Gazette</I>.
|
||
Copyright © 2000, <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A><BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
||
<H4>"The Linux Gazette...<I>making Linux just a little more fun!</I>"</H4>
|
||
<P> <hr> <P>
|
||
<!-- ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: -->
|
||
<center>
|
||
<H1><A NAME="answer">
|
||
<img src="../gx/dennis/qbubble.gif" alt="(?)"
|
||
border="0" align="middle">
|
||
<font color="#B03060">The Answer Guy</font>
|
||
<img src="../gx/dennis/bbubble.gif" alt="(!)"
|
||
border="0" align="middle">
|
||
</A></H1>
|
||
<BR>
|
||
<H4>By James T. Dennis,
|
||
<a href="mailto:linux-questions-only@ssc.com">linux-questions-only@ssc.com</a><BR>
|
||
LinuxCare,
|
||
<A HREF="http://www.linuxcare.com/">http://www.linuxcare.com/</A>
|
||
</H4>
|
||
</center>
|
||
|
||
<p><hr><p>
|
||
<H3>Contents:</H3>
|
||
<p><a href="#tag/greeting"
|
||
><img src="../gx/dennis/bbub.gif" alt="(!)" border="0"
|
||
align="middle"><strong>Greetings From Jim Dennis</strong></A></p>
|
||
|
||
<DL>
|
||
<!-- index_text begins -->
|
||
<dt><A HREF="#tag/1"
|
||
><img src="../gx/dennis/bbub.gif" height="28" width="50"
|
||
alt="(!)" border="0"
|
||
></a>linux ether16 support --or--
|
||
<dd><A HREF="#tag/1"
|
||
><strong>isapnptools</strong></a>
|
||
|
||
<dt><A HREF="#tag/2"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>Need Help!!! --or--
|
||
<dd><A HREF="#tag/2"
|
||
><strong>Removing an OS</strong></a>
|
||
|
||
<dt><A HREF="#tag/3"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>uninstallshield --or--
|
||
<dd><A HREF="#tag/3"
|
||
><strong>InstallShield: Netscape 4.7</strong></a>
|
||
|
||
<dt><A HREF="#tag/4"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>redhat linux problem --or--
|
||
<dd><A HREF="#tag/4"
|
||
><strong>Console Goes Comatose After a Few Days</strong></a>
|
||
|
||
<dt><A HREF="#tag/5"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>Routing a Linux Subnet --or--
|
||
<dd><A HREF="#tag/5"
|
||
><strong>Subnetting</strong></a>
|
||
|
||
<dt><A HREF="#tag/6"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>soho linux network --or--
|
||
<dd><A HREF="#tag/6"
|
||
><strong>Two Node Network: How</strong></a>
|
||
|
||
<dt><A HREF="#tag/7"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>Problem --or--
|
||
<dd><A HREF="#tag/7"
|
||
><strong>Informix/SCO SE version 5.0 under iBCS</strong></a>
|
||
|
||
<dt><A HREF="#tag/8"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>Hub restriction --or--
|
||
<dd><A HREF="#tag/8"
|
||
><strong>Do Your Homework: IEEE 802.3</strong></a>
|
||
|
||
<dt><A HREF="#tag/9"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>question about ProxyArp --or--
|
||
<dd><A HREF="#tag/9"
|
||
><strong>ProxyARP</strong></a>
|
||
|
||
<dt><A HREF="#tag/10"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>Is there any.. --or--
|
||
<dd><A HREF="#tag/10"
|
||
><strong>Syslog Events from a Particular Host to a Particular File</strong></a>
|
||
|
||
<dt><A HREF="#tag/11"
|
||
><img src="../gx/dennis/bbub.gif" height="28" width="50"
|
||
alt="(!)" border="0"
|
||
><strong>Id "x" respawning too fast: Murdered Mysteriously</strong></a>
|
||
|
||
<dt><A HREF="#tag/12"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>windows 2000 --or--
|
||
<dd><A HREF="#tag/12"
|
||
><strong>First Win/2000 Question!</strong></a>
|
||
|
||
<dt><A HREF="#tag/13"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>drive space --or--
|
||
<dd><A HREF="#tag/13"
|
||
><strong>What to Delete from Drive C</strong></a>
|
||
|
||
<dt><A HREF="#tag/14"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
><strong>Linux as a SOCKS client</strong></a>
|
||
|
||
<dt><A HREF="#tag/15"
|
||
><img src="../gx/dennis/bbub.gif" height="28" width="50"
|
||
alt="(!)" border="0"
|
||
></a>Lost Password --or--
|
||
<dd><A HREF="#tag/15"
|
||
><strong>Simpler Way to Recover From a Lost Password</strong></a>
|
||
|
||
<dt><A HREF="#tag/16"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>Re: "harden" Linux DNS server --or--
|
||
<dd><A HREF="#tag/16"
|
||
><strong>"Hardening" a Red Hat (into a Helmet?)</strong></a>
|
||
|
||
<dt><A HREF="#tag/17"
|
||
><img src="../gx/dennis/bbub.gif" height="28" width="50"
|
||
alt="(!)" border="0"
|
||
></a>Kermit --or--
|
||
<dd><A HREF="#tag/17"
|
||
><strong>A bit more about C-Kermit</strong></a>
|
||
from its author.
|
||
|
||
<dt><A HREF="#tag/18"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>problem with bash/vi editing mode --or--
|
||
<dd><A HREF="#tag/18"
|
||
><strong>ksh Keybindings (vi Keys)</strong></a>
|
||
|
||
<dt><A HREF="#tag/19"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
><strong>Weird Mount Permissions & Where's a Word Processor</strong></a>
|
||
<dt><A HREF="#tag/20"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>.max files --or--
|
||
<dd><A HREF="#tag/20"
|
||
><strong>.max extension on an e-mail attachment</strong></a>
|
||
|
||
<dt><A HREF="#tag/21"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>lots of linux questions --or--
|
||
<dd><A HREF="#tag/21"
|
||
><strong>Accupuncturist Filmaker Hates Fascist MS Products</strong></a>
|
||
|
||
<dt><A HREF="#tag/22"
|
||
><img src="../gx/dennis/qbub.gif" height="28" width="50"
|
||
alt="(?)" border="0"
|
||
></a>IMAP/POP daemon on RH 6.0 and 6.1 --or--
|
||
<dd><A HREF="#tag/22"
|
||
><strong>Installing a POP Daemon on Red Hat Linux</strong></a>
|
||
|
||
<!-- index_text ends -->
|
||
</DL>
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/greeting"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<H3 align="left"><img src="../gx/dennis/bbubble.gif"
|
||
height="50" width="60" alt="(!) " border="0"
|
||
>Greetings from Jim Dennis</H3>
|
||
<!-- begin greeting -->
|
||
<p>Many people have been known to quote Blaise Pascal:<p>
|
||
<blockquote>
|
||
"I have made this letter longer than usual because I
|
||
lack the time to make it shorter."
|
||
</blockquote>
|
||
|
||
<p>In this month's Answer Guy, the Answer Guy himself learns some solid
|
||
lessons in recovery planning. In the case of his editor, to hit the Save
|
||
key combination every once in a while. You never know when you're
|
||
accidentally going to hit the key assigned to "quit this session without
|
||
prompting". Thus </p>
|
||
|
||
<blockquote>
|
||
"I have made this blurb shorter than usual because I
|
||
lack the time do it over."
|
||
</blockquote>
|
||
|
||
<p>Sorry folks! And I wouldn't be the Answer Guy if I didn't have the answer
|
||
for this. Emacs users, make sure to turn auto-save-mode on for your important
|
||
buffers <em>before</em> you get rolling, amd set your auto-save-interval to
|
||
something other than NIL. Screen users, make sure to update -- the newer
|
||
versions now ask before completely shutting down screen itself. And try not
|
||
to use a keyboard with \ too close to ] so you're less likely to backwack
|
||
that fascinating article you were writing.</p>
|
||
<!-- end greeting -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/1"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 1 -->
|
||
<H3 align="left"><img src="../gx/dennis/bbubble.gif"
|
||
height="50" width="60" alt="(!) " border="0"
|
||
>isapnptools</H3>
|
||
|
||
|
||
<p><strong>From David B. Sarraf on Sun, 30 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
isapnptools
|
||
~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
James:
|
||
</STRONG></P>
|
||
<P><STRONG><BlockQuote>
|
||
I recently read this question regarding the ethernet card. You mentioned
|
||
that the card may be configured to a base address which autoprobe was not
|
||
looking at. I agree that this may be a problem. You advised the reader to
|
||
use boot-time parameters. That is a workable approach however I try to
|
||
avoid it whenever possible.
|
||
</BlockQuote></STRONG></P>
|
||
<P><STRONG>
|
||
I have had very good results using isapnptools, which came with my RedHat
|
||
5.1 distro. I used it to configure a modem card and a network card.
|
||
Between the well engineered software and the excellent documentation the
|
||
process was quite painless and eminently successful. Now I have cards that
|
||
work and which run at well-defined and well-known addresses and IRQs and I
|
||
don't need the boot parameters.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
That's probably very good advice.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I've never used isapnptools and I usually forget that they
|
||
even exist. Could you give an example of HOW you use them?
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I recently ran into a similar situation with a 3-com card. It had been
|
||
taken out of a PNP system and put into a stock ISA system. I knew it to be
|
||
a PNP card but I did not realize that it had been set to use the same IRQ
|
||
as the floppy drive controller and isapnptools would not detect this card.
|
||
This caused much head scratching until I put it back in a PNP system and
|
||
ran 3Com's "disable PNP mode" software. Still, I was successfull at using
|
||
the card without boot parameters.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
None of this is meant as a criticism of your initial advice. It is just my
|
||
experience with an alternative method.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Dave Sarraf
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Actually I think I could use more criticism.
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 1 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/2"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 2 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Removing an OS</H3>
|
||
|
||
|
||
<p><strong>From Paully0529 on Sun, 30 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
Removing an OS
|
||
~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
I recently received a laptop which has <A HREF="http://www.redhat.com/">Red Hat</A> 5.1 installed on it. I would
|
||
like to remove this OS but have no idea what the login password is.
|
||
Is there any way around this?
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
You don't need a user/account password to remove any
|
||
operating system. So long as you can control the boot
|
||
sequence of the system (i.e. boot from floppy or CD)
|
||
then you can boot up into something that will wipe out
|
||
all that nasty stuff that you don't want on your new
|
||
laptop's hard disk.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
There are also ways for you do force a password change
|
||
on a Linux box. I've described it several times
|
||
--- but the basic sequence is something like this:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
At the LILO: prompt type:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><code>
|
||
linux init=/bin/sh rw
|
||
</code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... this will boot the system using the "linux" LILO
|
||
stanza, and force the kernel to bypass the normal
|
||
bootup process (by loading a command shell instead of
|
||
the usual init process). It will also force the kernel
|
||
to mount it's "root" filesystem in "read/write" mode.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You can then type:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><code>
|
||
mount /usr
|
||
</code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... which might not be necessary, and thus might
|
||
give a (harmless) error message.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Then type:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><code>
|
||
/usr/bin/passwd
|
||
</code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... and provide a new password (which you'll need to
|
||
repeat twice).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Next you can type the following commands (ignoring
|
||
some possible, harmless warnings and errors):
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><pre>
|
||
sync
|
||
umount /usr
|
||
mount -o remount,ro /
|
||
exec /sbin/init 6
|
||
</pre></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Of course those directions are for people who want
|
||
to take over a Linux system and preserve the
|
||
programs, configuration and data on it. In your case
|
||
you could do something more like the following at the
|
||
LILO prompt:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><code>
|
||
linux init=/bin/sh rw
|
||
</code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... and when you get a shell prompt just use:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><code>
|
||
dd if=/dev/zero of=/dev/hda
|
||
</code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... (assuming that Linux is on your primary IDE drive).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
NOTE: This last command example will WIPE OUT EVERYTHING
|
||
ON YOUR PRIMARY IDE DRIVE! It will scribble strings
|
||
of binary zeros (ASCII NUL characters) all over the
|
||
drive wiping out everything. Don't use this unless that's
|
||
really what you want to do!
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Note: one some systems you might have to use some
|
||
other "stanza" name other than "linux" --- hit a
|
||
[Tab] key at the LILO prompt to see a list of options).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
SysAdmins Note: If you want to prevent users from
|
||
doing these sorts of things to their desktop systems
|
||
(as a matter of policy for example) then you can set
|
||
up a LILO password and mark the system as "restricted"
|
||
in the <TT>/etc/lilo.conf</TT> file.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Of course this by itself will not be much "protection" --
|
||
you'll also have to mark the file as not readable by users
|
||
other than root, restrict root access to the system, change
|
||
the CMOS boot sequence to prevent booting from floppies, CD
|
||
discs and other removable media, and set a CMOS/NVRAM
|
||
password to prevent the users from changing the boot
|
||
sequences back. On top of all that you'll have to pick a
|
||
brand of PC/BIOS that doesn't have any known "backdoor" CMOS
|
||
passwords and you'll have to lock the cases so that the
|
||
users can't open them up to short the battery to clock chip
|
||
leads, or otherwise reset the CMOS registers to their
|
||
factory state. Those are all hardware security limitations
|
||
of PCs, Macintosh and many of the other workstations. They
|
||
are not OS specific issues.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
With most operating systems, you can boot up off their
|
||
installation media and readily wipe out whatever happens
|
||
to be sitting on the system by simply answer some silly
|
||
install program warning. (Early versions of MS-DOS were
|
||
pretty stupid in that they would refuse to remove or
|
||
overwrite "foreign" or "unknown" partitions in FDISK
|
||
regardless of a users wishes. I don't know if they
|
||
ever fixed that. I haven't installed any MS operating
|
||
system on anything for several years).
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 2 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/3"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 3 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>InstallShield: Netscape 4.7</H3>
|
||
|
||
|
||
<p><strong>From Dr.S.Vatcha on Sun, 30 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
InstallShield: Netscape 4.7
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Dear answerguy
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Everytime I attempt to set up netscape4.7 version a browser error
|
||
432 comes up saying close uninstallshield and resatrt the setup.
|
||
i have not to my knowledge opened uninstallshield or that it
|
||
exists on any files on my pc.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
help
|
||
shahrookh.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
The problem here is probably that you are running
|
||
MS-Windows or some derivative thereof. Last I heard
|
||
InstallShield is a program for installing software
|
||
on MS Windows systems. I've never heard of a version
|
||
for Linux.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I presume also that your copy of Netscape (Navigator,
|
||
Communicator, whatever you've got) is trying to
|
||
launch "UninstallShield" to remove the older version
|
||
of the NS software that you are trying to upgrade from.
|
||
There's probably some sort of temp or "lock" file that is
|
||
confusing their uninstaller.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Pretty pathetic programming, really. That sort of thing
|
||
is one of the reasons I stopped using and supporting
|
||
MS Windows so many years ago.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(BTW: I'm the Linux Gazette Answer Guy).
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 3 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/4"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 4 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Console Goes Comatose After a Few Days</H3>
|
||
|
||
|
||
<p><strong>From kodancha on Sun, 30 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
Console Goes Comatose After a Few Days
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
sir
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
i have installed redhat linux 6.1 on piii hardware with fire
|
||
walls.IT works fine.But every 3-4 days i have to reboot the system
|
||
because of the following.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Sytems will not take any command.When i type any thing cursor
|
||
moves but no char appears on the screen.Even cntrl-alt-del is also
|
||
not working.But all oher clients connected this server has got no
|
||
problem.I tryied stty sane ,cntrl -c etc but it is not
|
||
respondig.Can u help me
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
gjkodancha
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Well, you description doesn't give me much to go on.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Is this in X? Are you using a kernel with frame buffer
|
||
(graphics driven text mode) console support?
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Try building a new kernel. Leave the system in
|
||
text mode and disable any "VESA VGA Graphics" support
|
||
in the kernel (in menuconfig under the "Console Drivers"
|
||
menu). Be sure to enable the "Magic SysRq Key" under
|
||
"Kernel Hacking." Read the docs about this "Magic SysRq"
|
||
in the <TT>/usr/src/linux/Documentation/sysrq.txt</TT> file.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Now, after you've built and installed the new kernel,
|
||
when you reboot with it, use runlevel 3 (<A HREF="http://www.redhat.com/">Red Hat</A>:
|
||
text mode multi-user mode) rather than runlevel 5
|
||
(multi-user with GUI/xdm login mode).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
If the console seems to go comatose again, try
|
||
using some of the Magic SysRq keys, particularly
|
||
the p (processor status), t (task list) and m (memory
|
||
status) diagnostics, and the k and r keys to kill
|
||
everything on a given console and to "reset" the
|
||
keyboard driver.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
A couple of other things you can do:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Edit <TT>/etc/syslog.conf</TT> and add a line like:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><Code>
|
||
*.* <TT>/dev/tty12</TT>
|
||
</Code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... (and restart your syslog daemon). This will
|
||
copy all syslog messages to your twelfth virtual
|
||
console. When you leave your system unattended,
|
||
switch to that VC. If it appears comatose when
|
||
you get back, look at the messages at the end.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
When you restart your system, look at the tail
|
||
of the <TT>/var/log/messages</TT> file. That's where most
|
||
system warnings and errors are logged.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Also you can try logging in via ssh (or telnet,
|
||
rlogin or some other insecure protocol) and using
|
||
the commands: chvt 1 or chvt 2
|
||
... to force the console to switch to another VC.
|
||
See if that works.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You can also run commands like
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><Code>
|
||
stty sane < <TT>/dev/tty1</TT>
|
||
</Code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
And:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BLOCKQUOTE><CODE>
|
||
setterm -reset > <TT>/dev/tty1</TT>
|
||
</CODE></BLOCKQUOTE></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(note: the redirection operator on my stty
|
||
command is NOT backwards. stty performs<TT> ioctl()</TT>
|
||
calls on it's input device while setterm
|
||
words on it's output file descriptor. It looks
|
||
weird but stty was written a long time ago and
|
||
it actually made sense back then).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I've had cases where I could revive a console (from a
|
||
crashed X session or a wacked out SVGAlib program failure)
|
||
by running startx (from a remote session, even from a serial
|
||
login. That works sometimes (since the X server has to
|
||
reset quite a bit of the video and keyboard state as it
|
||
starts).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
These kinds of console oddities are pretty rare.
|
||
It's usually the result of some buggy program that's
|
||
running with root privileges or some buggy driver
|
||
(which naturally is running with system/kernel
|
||
level access to the hardware). It could be a bit
|
||
of flaky hardware, too. It would be good to
|
||
figure out what is doing this. However, if this
|
||
is set up as a server, it may be that you don't
|
||
need the console all that much. You can treat it
|
||
like a "headless" system if you need to.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
If you do decide to switch out hardware, try a
|
||
cheap replacement video card. Under Linux, in
|
||
server applications there is no point to using a
|
||
high end video card. Meanwhile the high end video
|
||
cards are most likely to have the cutting edge
|
||
technology and the highest chance of conflict with
|
||
other system components. Also make sure that any
|
||
"Plug and Pray" (PNP) settings are disabled in your
|
||
ISA peripherals and BIOS/CMOS.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
If you think it's software then try attaching
|
||
strace to various processes that are bound to
|
||
your console. See if there's some oddity to
|
||
the system calls they're making before the lockup.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Read the strace man page to understand a bit more
|
||
about this. Don't even bother if you don't know
|
||
the difference between a system call and a library
|
||
function. There's a pile of learning curve in
|
||
that direction).
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 4 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/5"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 5 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Subnetting</H3>
|
||
|
||
|
||
<p><strong>From Berlin Tokugawa on Sun, 30 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
Subnetting
|
||
~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
I have a LAN in our office connected to the Internet using a
|
||
subnet (240) for 16 IP numbers. Our office actually use only 4
|
||
computers to assign IP numbers from the said IP pool. One of
|
||
those computer in our office LAN is a Linux box configured as a
|
||
PPP server so I could dial-in from home (and get a static IP
|
||
number from the office IP pool assigned to the ppp interface) and
|
||
connect my small home LAN using a subnet of 248. I used eight(8)
|
||
IP numbers at home (using those unused, contiguous IP numbers from
|
||
the office IP pool) but I'm having problems.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
The other computers at home (not the dial-out computer) can not
|
||
ping the dial-out computer when I'm PPP-connected to the office
|
||
LAN. Unconnected via PPP to the office LAN, all my home computers
|
||
can ping each other. All the other computers at home have the
|
||
home dial-out computer as their gateway to the outside world,
|
||
while the office computers have their gateway set to our office
|
||
router connected via leased-line to an ISP. I am wondering if the
|
||
cause of the problem is the re-use of the IP numbers at home that
|
||
are already subnetted in the office --regardless of their
|
||
assignment or non-assignment to working computers.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
BTW, I do not want to use private IP addresses, IP aliasing,
|
||
firewalling, etc., as there is a need for my home computers at
|
||
home to be referenced by the outside world via valid IP numbers
|
||
directly. Any thoughts on this problem is greatly
|
||
appreciated. Thanks.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Berlin Tokugawa
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
You should really draw an ASCII diagram of
|
||
your network and include the IP addresses (even
|
||
a fake set of <EM>consistent</EM> IP addresses) when you
|
||
ask a question like this.
|
||
</BLOCKQUOTE>
|
||
|
||
<blockquote><pre> +-----------------------+
|
||
| The Internet |
|
||
+-------+---------------+
|
||
| (A)
|
||
+---+----------+
|
||
| Your Office +-----------+
|
||
+--------------+ (B) | +-----------+
|
||
+--+ Home |
|
||
(C) +-----------+
|
||
</pre></blockquote>
|
||
<BLOCKQUOTE>
|
||
The routers here are:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
A you office's end of your link from your ISP,
|
||
<br>B your offices end of the link between your
|
||
office and your home,
|
||
<br>C your home's end of the link to your office
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
So there are five routing tables you care about.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Let's assume that they've given you 123.45.67.176
|
||
through 123.45.67.192 (a.k.a. the 123.45.67.176/240
|
||
network).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Let's presume that you and your ISP have followed common
|
||
conventions and assigned the first usable IP address
|
||
in your block to your router (A). That means that
|
||
(A) is 123.45.67.177. Therefore it would make sense
|
||
for the office to use the lower subnet (from 177 to 182)
|
||
Thus that subnet will have a netmask of 255.255.255.248
|
||
and a broadcast address of 123.45.67.183 (add 7 to
|
||
176) Remember, you only get six usable addresses out
|
||
of that mask since one is reserved for the network
|
||
(the "zero offset from your base) and the last address
|
||
(your base net address with a trailing sequence of
|
||
binary 1's).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
So you pick an IP address for (B): lets call that
|
||
123.45.67.182 (the last usable address in your
|
||
lower subnet). You'll also need an address for (C)
|
||
123.45.67.185 (the first usable address in the
|
||
upper subnet). Actually all of these routers
|
||
will have multiple interfaces. The PPP (exterior)
|
||
interface to your ISP at (A) will usually have one
|
||
of the ISP's addresses. You can actually use any
|
||
RFC1918 address for your PPP link from (B) to (C)
|
||
since only B and C will use those addresses in
|
||
their routing tables. Let's call those PPP
|
||
endpoints 10.1.1.1 and 10.1.1.2
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(I'm not sure but I think there's a way around
|
||
that in some TCP stacks but this should work).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Now the home system have to have a default route that
|
||
points to (C). (C) has a default route that points
|
||
to (B), and a network route that point to eth0
|
||
(the home network). That network route corresponds
|
||
to our upper subnet so it looks like:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BLOCKQUOTE><CODE>
|
||
route add -net 123.45.67.84 netmask 255.255.255.248 eth0
|
||
</CODE></BLOCKQUOTE></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(A) and (B) also each a route that look similar. In
|
||
(B)'s case it looks like:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BLOCKQUOTE><CODE>
|
||
route add -net 123.45.67.84 netmask 255.255.255.248 gw 10.1.1.2
|
||
</CODE></BLOCKQUOTE></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... (B) is listing (C) as the gateway to the upper
|
||
subnet. (C) lists ppp0 as its default route.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Finally there's (A) which lists (B) as its gateway
|
||
to the upper subnet and the ISPs address as its
|
||
default route.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
The only tricky part is that all of the machines on
|
||
the office subnet should also know about the
|
||
subnet route to (B).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
This is simplified slightly if (B) is actually
|
||
not a separate router, but merely an extra interface
|
||
on (A).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Of course there are many ways to do all of this.
|
||
When asking questions about routing --- draw a picture
|
||
and then go to each network and router (connecting point)
|
||
and ask what the routing tables must look like
|
||
from that location!
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 5 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/6"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 6 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Two Node Network: How</H3>
|
||
|
||
|
||
<p><strong>From Rich on Sun, 30 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
Two Node Network: How
|
||
~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Answer guy
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I have looked everywhere for some basic instructions on setting up a two
|
||
system soho network and can't seem to find any information.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I am currently running linux-mandrake 7.0. Basically all I want to do
|
||
is have the two machines talk to one another in a network
|
||
configuration. Any help would be greatly appreciated.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Thanks
|
||
Rich
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Let's assume that you have ethernet cards
|
||
in your two machines. You can then hook them up
|
||
with a "crossover" cable or you can get a hub and
|
||
plug both of your systems into that. Most ethernet
|
||
cards and hubs have little lights on them. Some
|
||
combination of these lights being on should reassure
|
||
you that you've successfully connected to two systems.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
That takes care of the physical layer. If you don't
|
||
get that far then you'll need some phone or in person
|
||
support.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Next you have to configure the two systems to talk
|
||
to one another.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I'm going to guess that they are both Linux boxes.
|
||
I'm also going to guess that you don't have a block
|
||
of "real" IP addresses assigned to you. Therefore
|
||
you're going to use a couple of addresses from one
|
||
of the special "reserved blocks" that are set aside
|
||
for this situation. The reserved blocks are defined
|
||
in RFC 1918 (an Internet standards document). They
|
||
are:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><code>
|
||
192.168.*.*
|
||
<br>10.*.*.*</code>
|
||
<br>and: <tt>172.16.*.*</tt> through <tt>172.31.*.*</tt>
|
||
</BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... that's a lot of addresses to choose from. I'm
|
||
going to choose 192.168.130.17 and 192.168.130.18 for
|
||
deeply mystical reasons. (192.168 are the "class C"
|
||
address blocks, which are normally used by small to
|
||
medium offices, and this is 1/30/2000, so I picked 130
|
||
for the next digit. The 17 and 18 are chosen because
|
||
it is common convention to reserve the bottom and top
|
||
16 or so IP addresses in any class C block for
|
||
routers, servers, etc).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
So on one one of these twins (let's call it pollux)
|
||
we'll log in as root and type the command:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><Code>
|
||
ifconfig eth0 192.168.130.17
|
||
</Code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... and, on the other (which we'll call it castor)
|
||
we'd issue the command:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><Code>
|
||
ifconfig eth0 192.168.130.18
|
||
</Code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
For a temporary connection that's all we have to do.
|
||
If we these two systems to be persistently configured for
|
||
this we edit some file under <TT>/etc/sysconfig/network-scripts</TT>
|
||
... or we use one of Mandrake's little configuration
|
||
"helper" programs.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I haven't been using Mandrake (or recent versions of
|
||
<A HREF="http://www.redhat.com/">Red Hat</A>) and
|
||
I've never been a fan of GUI configuration
|
||
tools. So I can't help you with the latter of these.
|
||
If you are familar with basic text editing then look at
|
||
the <TT>/etc/sysconfig/network-scripts/ifcfg-eth0</TT> script
|
||
and see if you can guess what needs to be put in there.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You can use a netmask of 255.255.255.0 and a broadcast
|
||
address of 192.168.130.255 on both of the twins. In
|
||
fact there are many values you could use for these
|
||
--- so long as they were consistent with one another and
|
||
some other arcane rules that I won't cover this morning.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I't also possible for you to connect these to system
|
||
over a null modem or a "Laplink" (parallel link) cable.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
If you were using a serial/null modem cable you'd
|
||
run the PPP program (direct connection). I definitely
|
||
don't have time to explain configuring PPP right now;
|
||
that's the most complicated option. If you connected
|
||
the two boxes with a parallel link cable you'd use
|
||
commands roughly like this:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><Code>
|
||
modprobe plip
|
||
<Br>ifconfig plip1 192.168.130.17
|
||
</Code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(on pollux) and
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><Code>
|
||
modprobe plip
|
||
<br>ifconfig plip1 192.168.130.18
|
||
</Code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... for castor.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Notice that we can use the same IP addresses for
|
||
our two boxes regardless of what sort of physical
|
||
connection we use between them. That's the whole
|
||
point of TCP/IP networking. That was the breakthrough
|
||
that it made before any of the other networking
|
||
protocols did.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Once you've done this you should be able to
|
||
use any standard networking service between your
|
||
twins.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I'm pretty sure this is covered in the "Linux Installation
|
||
and Getting Started Guide" (Linux Documentation Project)
|
||
<A HREF="http://www.linuxdoc.org"
|
||
>http://www.linuxdoc.org</A>.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Hope that helps.
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 6 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/7"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 7 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Informix/SCO SE version 5.0 under iBCS</H3>
|
||
|
||
|
||
<p><strong>From Alvaro Gonzalez on Sun, 30 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
Informix/SCO SE version 5.0 under iBCS
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Hi.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I need your help. I have <A HREF="http://www.caldera.com/">Caldera</A>
|
||
OpenLinux version 2.2 and i have
|
||
problems using Informix-SE version 5.0 for SCO UNIX.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
This software run with iBCS 2.1-1 without problems, but i have a
|
||
limit in the size of the database files, 1 Giga.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I think that limits is for the variable ULIMIT of SCO UNIX, set on
|
||
1 Giga for default, and if this is true I need to set iBCS with a
|
||
value greater than 1 Giga.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Thanks.
|
||
Alvaro
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I'll be the first to admit that I just don't know
|
||
as much as I want about the big SQL DBMS packages.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
However the question that immediately comes to mind
|
||
is:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote>
|
||
Why don't you use the Linux version of
|
||
Informix?
|
||
</BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://www.informix.com/informix/products/linux/lx.html"
|
||
>http://www.informix.com/informix/products/linux/lx.html</A>
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I have an evaluation copy for IDS (Informix Dynamix Server)
|
||
version 7.30.UC7.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Is the problem here that upgrading to this will be
|
||
too expensive? Is it that there are enough upgrade issues
|
||
that your code and tables will take too much effort to
|
||
upgrade for operations under the new server?
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Assuming that upgrading/migrating to the Linux version of
|
||
Informix is not an option doesn't Informix 5.0 allow you
|
||
to define database file "extents" (1Gb Linux/UNIX files
|
||
that their server internal manages as blocks of the large
|
||
tables. I was under the impression that all of the major
|
||
DBMS packages did this before the LFS (large file summit)
|
||
brought support for large files to most of the 32-bit
|
||
UNIX implementations. (Linux hasn't implemented LFS, though
|
||
there are exerimental patches floating about to do so).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
There is a ulimit command (shell built-in) and there
|
||
are Linux facilities for managing the ulimit settings.
|
||
These vary from one distribution to another and based
|
||
on some of the packages you might have installed.
|
||
For example some use the <TT>/etc/login.defs</TT> (stock
|
||
Shadow suite) or the PAM pam_limits module or
|
||
<TT>/etc/lshell.conf</TT> (my
|
||
<A HREF="http://www.debian.org/">Debian</A> system). However the limit
|
||
you're bumping into might be with your iBCS support.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Current Linux ext2 filesystems have a 2Gb filesize limit
|
||
on 32-bit systems. This is likely to change in 2.4 or 2.6
|
||
(over the next year or so). However, that's not likely to
|
||
help you in the near term.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Personally I suggest that you look into the Linux native
|
||
Informix server, and into the table segmenting features
|
||
for that. If those don't to the trick, maybe you should
|
||
contact a DBMS specialist. (We have some people at
|
||
<A HREF="http://www.linuxcare.com/">Linuxcare</A>, where I work
|
||
for my day job; that know far more about these things than I do).
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
<em><p>[ Sadly, Informix' FAQ,
|
||
<a href="http://www.informix.com/informix/products/linux/lxfaq.html"
|
||
>http://www.informix.com/informix/products/linux/lxfaq.html</a>
|
||
notes they took out several cool features when releasing
|
||
their SE suite for Linux. Perhaps they were in a rush
|
||
to market, or perhaps they don't think we're really
|
||
"the enterprise" so we don't care, or maybe they're
|
||
merely uncertain (they say they're evaluating Linux needs).
|
||
Among the features taken out were raw device support (which
|
||
probably would allow use of larger spaces) and backups (!? WHat
|
||
good is a big server without backups? You mean I have to turn it OFF
|
||
to back it up? Ow!).</p>
|
||
|
||
<p>They also claim we're missing a feature I'm not entirely sure we
|
||
lack (asynchronous I/O -- a
|
||
<a href="http://www.google.com/linux?q=asynchron*&num=30&site=search&sa=Google+Search">Google! linux search on "asynchron*"</a> yields plenty of info, seeming
|
||
to implicate a particular flamer in the land of tainted benchmarks).
|
||
If you are among those who'd hope to use it for real work, make
|
||
sure to let them know your <strong>real</strong> needs at
|
||
<a href="mailto:linux@informix.com">linux@informix.com</a>).
|
||
<br>-- Heather ]</p></em>
|
||
|
||
|
||
<!-- end 7 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/8"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 8 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Do Your Homework: IEEE 802.3</H3>
|
||
|
||
|
||
<p><strong>From Farhad Saberi on Sun, 30 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
Do Your Homework: IEEE 802.3
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Hello,
|
||
my situation is this::
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
"provide a wiring diagram of an Ethernet (802.3) 100 Mbps network
|
||
for the following application:
|
||
</STRONG></P>
|
||
<P><STRONG><BlockQuote>
|
||
Company A has two offices located 1km apart. Each office has
|
||
about 40 computers. All the computers will need to be interconnected
|
||
on the same LAN. "
|
||
</BlockQuote></STRONG></P>
|
||
<P><STRONG>
|
||
Apparently, I have to use full-duplex fiber optics because of the
|
||
distance
|
||
of 1 km.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
My problem is that I don't know how many hubs I can use. Is there a
|
||
restriction on the number of hubs, according to some standards ?
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Thanks,
|
||
Farhad.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
This sounds suspiciously like a homework assignment
|
||
rather than a problem you are actually having around
|
||
the house, office or campus.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Personally I think you should refer to whatever
|
||
textbooks or lecture notes that you should have
|
||
seen before this question was posed to you.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
The standards that govern ethernet are maintained by
|
||
the IEEE (Institute of Electrical and Electronics
|
||
Engineers). You're interested in the 802 series of
|
||
documents (Maybe you wondered what those funny numbers
|
||
in that question were about). Not that I'm actually
|
||
suggesting that you slog through an IEEE draft standards
|
||
document. I wouldn't do it for a question like this
|
||
(those are written for engineers who are designing the
|
||
hardware to implement the standards).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
The info you're looking for should be in any good
|
||
networking text book.
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 8 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/9"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 9 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>ProxyARP</H3>
|
||
|
||
|
||
<p><strong>From Jinquan Luo on Mon, 31 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
ProxyARP
|
||
~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Dear James,
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I have been tring to set up Proxy ARP using the ARP commands in
|
||
Linux (<A HREF="http://www.redhat.com/">Red Hat</A> 6.1), but they do not seem to work for me. I
|
||
wonder if you would give me some advice as to how to fix the
|
||
problem. Here is my problem.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I have a CISCO router that connects to the internet. From that
|
||
ONE link comes into a hub. Two computers are connected to the
|
||
hub. One of the computer is our bastion host which is our web
|
||
server and mail host. The e-mail messages are immediately relayed
|
||
to our internal network through the other computer, which is the
|
||
firewall. So here is the setup:
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
The firewall has ip# xx.xx.xx.2, MAC 00:20:AF:A2:9E:58 The bastion
|
||
host has xx.xx.xx.3
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
The Firewall has a second NIC which is connected to the internal
|
||
network. So the e-mail also goes through it. Now The email
|
||
received by the bastion host is forwarded to xx.xx.xx.149, which
|
||
is a phony address. So I tried to arp .149 to the MAC of the
|
||
firewall like:
|
||
</STRONG></P>
|
||
<P><STRONG><BlockQuote><Code>
|
||
arp -i eth0 xx.xx.xx.149 00:20:AF:A2:9E:58 pub.
|
||
</Code></BlockQuote></STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
This command doesn't look quite right to me.
|
||
Try something a bit more like:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BLOCKQUOTE><CODE>
|
||
arp -i eth0 -Ds ${NETWORK} eth1 netmask ${NETMASK} pub
|
||
</CODE></BLOCKQUOTE></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
This example is taken right out of the ProxyARP
|
||
mini-HOWTO (*)
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><UL><LI>
|
||
(<A HREF="http://www.linuxdoc.org/HOWTO/mini/Proxy-ARP-Subnet.html"
|
||
>http://www.linuxdoc.org/HOWTO/mini/Proxy-ARP-Subnet.html</A>)
|
||
</UL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(NOTE: the 2.2.x kernel doesn't allow the netmask
|
||
option. Apparently you must issue a separate command
|
||
for each of the intended IP addresses you which to
|
||
publish. I don't know what the state of this will
|
||
be for version 2.4. I've copied one of my more
|
||
expert associates; perhaps he'll jump in with more info).
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
The command appears to work so the arp shows xx.xx.xx.149 <EM> </EM> MP
|
||
eth0 as advertised. The firewall is functiong and does translate
|
||
the .149 address into an internal number 192.168.1.52, which is
|
||
our internal mail server. the problem is that if I ping
|
||
xx.xx.xx.149 on the bastion host it show this:
|
||
</STRONG></P>
|
||
|
||
<pre><strong> $ ping mickey
|
||
\PING mickey.tbc.com (xx.xx.xx.149): 56 data bytes
|
||
|
||
|
||
--- mickey.xx.xx ping statistics ---
|
||
3 packets transmitted, 0 packets received, 100% packet loss.
|
||
</strong></pre>
|
||
<P><STRONG>
|
||
In another window I have
|
||
</STRONG></P>
|
||
|
||
<pre><strong> $ tcpdump -n arp
|
||
12:33:06.979376 arp who-has xx.xx.xx.149 tell xx.xx.xx.3
|
||
12:33:07.969471 arp who-has xx.xx.xx.149 tell xx.xx.xx.3
|
||
12:33:08.969470 arp who-has xx.xx.xx.149 tell xx.xx.xx.3
|
||
|
||
3 packets received by filter
|
||
0 packets dropped by kernel.
|
||
</strong></pre>
|
||
<P><STRONG>
|
||
This continues forever.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
My Kernel routing table looks like this:
|
||
</STRONG></P>
|
||
|
||
<pre><strong>bash# route -n
|
||
Kernel IP routing table
|
||
Destination Gateway Genmask Flags Metric Ref Use Iface
|
||
xx.xx.xx.3 0.0.0.0 255.255.255.255 UH 0 0 0 eth0
|
||
xx.xx.xx.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
|
||
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
|
||
0.0.0.0 xx.xx.xx.1 0.0.0.0 UG 0 0 0 eth0
|
||
</strong></pre>
|
||
<P><STRONG>
|
||
Apparently there is something missing in setup that ARP is not
|
||
providing the right link_addr.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
The arp command doesn't affect your routing tables.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
When I added a static route such as:
|
||
</STRONG></P>
|
||
|
||
<pre><strong> route add -net xx.xx.xx.0 netmask 255.255.255.0 gw xx.xx.xx.2
|
||
</strong></pre>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
[where xx.xx.xx.2 is the firewall]
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
then the tcpdump shows this : 12:40:52.120385 arp who-has
|
||
xx.xx.xx.149 tell xx.xx.xx.2.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Apparently PROXY ARP is not working because it is not responding
|
||
to requests.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Try reading the ProxyARP mini-HOWTO and using a
|
||
command that's closer to their example.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Yes, you do need to make sure that the routing table
|
||
on the proxyarp host has entries for both subnets.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I am really not sure what is wrong with my set-up. If you can
|
||
spare a moment please take a look and give me some clues.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Thanks very much.
|
||
<br>Jinquan
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
If this doesn't help, draw up an ASCII art diagram
|
||
to help me figure it out. It takes along time to
|
||
guess what you mean based on this text. Be sure to
|
||
include the routing tables on each of the routers
|
||
(and proxyarp hosts) and a sample routing table from
|
||
representative non-router hosts on each subnet.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Usually the process of creating this diagram will
|
||
make your problem obvious.
|
||
</BLOCKQUOTE>
|
||
|
||
<EM><p>[
|
||
There's a reasonable example of such art in another message this
|
||
month, subject "Subnetting".
|
||
<br>-- Heather. ]</P></EM>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 9 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/10"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 10 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Syslog Events from a Particular Host to a Particular File</H3>
|
||
|
||
|
||
<p><strong>From Nathan Keeter on Sat, 19 Feb 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
Syslog Events from a Particular Host to a Particular File
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Is there any way to specify that syslog log all events from a particular
|
||
host to a particular file?
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
That depends.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
First I'd have to understand what you mean by "events" (and
|
||
what you mean by "from" actually).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
There are several sorts of "events" that can logged
|
||
"from" a host. For example the TCP Wrappers (tcpd) that is
|
||
pre-installed and configured for use by all major Linux
|
||
distributions will log each access attempt to each wrapper
|
||
protected service.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You can figure out most of the "wrappered" services by
|
||
reading the <TT>/etc/inetd.conf</TT> and looking for references to
|
||
tcpd on each of the active lines therein. Also note that
|
||
the portmapper, rcp.mountd and some other "standalone"
|
||
services might also be "wrappered." They would generally
|
||
be compiled with and linked to "libwrap" (the TCP Wrappers
|
||
libraries).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Anyone interested in this should read the <tt>hosts_allow(5)</tt>
|
||
and <tt>tcpd(8)</tt> man pages).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Another source of log messages "from" a host might be your
|
||
kernel packet filtering tables. There are options to
|
||
ipfwadm and ipchains to allow you to output/log messages
|
||
about packets that match certain packet filtering rules.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Anyone interested in more details on this should read the
|
||
<tt>ipfwadm(8)</tt> and/or <tt>ipchains(8)</tt> man pages, looking for the -o
|
||
and -l option respectively).
|
||
</BLOCKQUOTE>
|
||
|
||
<em><p>[ For those of you keeping up with the newer kernel
|
||
series, Rusty is trying to encourage people to use
|
||
and debug the new netfiler code. See the homepage
|
||
<a href="http://netfilter.kernelnotes.org/"
|
||
>http://netfilter.kernelnotes.org/</a>
|
||
for the latest scoreboard.
|
||
<br>-- Heather.]</p></em>
|
||
|
||
<BLOCKQUOTE>
|
||
Yet another source of syslog messages "from" a given
|
||
host might be that you've configured your syslogd to
|
||
accept remote (UDP) messages (by adding the appropriate
|
||
command option to its <tt>rc*</tt> script), and you've configured
|
||
the hosts in question to forward their messages to that
|
||
loghost (using appropriate "<tt>@</tt>" directives in the
|
||
<TT>/etc/syslog.conf</TT> files of the loghost clients).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Anyone interested in these topics should read the
|
||
<tt>syslogd(8)</tt> and <tt>syslog.conf(5)</tt> man pages).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Obviously any other services my have their own logging
|
||
features in addition to these.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Thus you see what I mean by "it depends on what you
|
||
mean by 'from.'" Do you mean: "log messages from
|
||
localhost services that involve (stem from interactions
|
||
with) a host" or do you mean "log messages received by
|
||
my syslog daemon that were purportely issued from
|
||
the hosts in question").
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Anyway, it is not possible to configure the normal syslog
|
||
daemon to separate the messsages into separate files based
|
||
on the hosts from which they were received. The normal
|
||
configuration directives allow separation and filtering
|
||
based on the "facility" and "severity" (read that
|
||
syslog.conf man page for an explanation and lists of
|
||
these).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
One way to do what you want would be to feed the messages
|
||
into a processing script (awk, or PERL). It's even possible
|
||
to do this "in real time" by configuring your loghost to
|
||
feed messages into one or more FIFOs (named pipes) and
|
||
running your processing script(s) to read from that
|
||
(or them). Again, the details should be in your
|
||
syslog.conf man page but the short form would be
|
||
something like this:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Add a line to <TT>/etc/syslog.conf</TT> like:
|
||
</BLOCKQUOTE>
|
||
|
||
<blockquote><pre>*.* |/dev/myloggingnode
|
||
</pre></blockquote>
|
||
<BLOCKQUOTE>
|
||
Create "myloggingnode" (conventionally in
|
||
the <TT>/dev/</TT> directory, though a <TT>/var/run</TT> or
|
||
other suitable place might be better). Use
|
||
a command like:
|
||
</BLOCKQUOTE>
|
||
|
||
<blockquote><pre> mkfifo /dev/myloggingnode
|
||
</pre></blockquote>
|
||
<BLOCKQUOTE>
|
||
or with:
|
||
</BLOCKQUOTE>
|
||
|
||
<blockquote><pre> mknod -m 0600 p /dev/myloggingnode
|
||
</pre></blockquote>
|
||
<BLOCKQUOTE>
|
||
(You'll need to make this writable by your syslog daemon,
|
||
of course).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Then you just run your PERL or awk script on that.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Another option is to check out one of the alternative
|
||
syslog systems. I've read a bit about syslog-ng (next
|
||
generation), and I think it can be configured for what
|
||
you want. Have a look at:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote>
|
||
<A HREF="http://www.balabit.hu/products/syslog-ng"
|
||
>http://www.balabit.hu/products/syslog-ng</A>
|
||
</BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... or at:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote>
|
||
<A HREF="http://www.freshmeat.net/appindex/1999/02/17/919286467.html"
|
||
>http://www.freshmeat.net/appindex/1999/02/17/919286467.html</A>
|
||
</BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
For more on that.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
For those interested in other aspects of network system
|
||
logging and event monitoring across Linux and UNIX systems,
|
||
I suggest looking at the "secure syslog" (which uses
|
||
cryptographic techniques to authenticate that messages came
|
||
from the host that purports to have sent them, etc) and
|
||
I also recommend "<tt>colortail</tt>" as a great tool for those
|
||
who like monitor their systems with '<tt>tail -f</tt>' logging.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You can find those at:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote>
|
||
<A HREF="http://www.core-sdi.com/english/slogging/ssyslog.html"
|
||
>http://www.core-sdi.com/english/slogging/ssyslog.html</A>
|
||
</BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
... and
|
||
<DD><A HREF="http://www.freshmeat.net/appindex/1999/02/20/919554599.html"
|
||
>http://www.freshmeat.net/appindex/1999/02/20/919554599.html</A>
|
||
</DL></BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 10 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/11"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 11 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Id "x" respawning too fast: Murdered Mysteriously</H3>
|
||
<h4 align="center">Helpful hints from days gone by.</h4>
|
||
|
||
<p><strong>From Timothy Roloff on Sun, 20 Feb 2000
|
||
</strong></p>
|
||
<P><STRONG>
|
||
I am responding to information posted about
|
||
<A HREF="http://www.gnome.org/">GNOME</A> on your website at
|
||
<A HREF="http://www.linuxgazette.com/issue46/tag/5.html"
|
||
>http://www.linuxgazette.com/issue46/tag/5.html</A> .
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Someone was getting this message from Linux just before the log-in screen:
|
||
</STRONG></P>
|
||
<Pre><STRONG>According to <TT>/var/run/gdm.pid</TT>, gdm was already running (process id)
|
||
but seems to have been murdered mysteriously.
|
||
INIT: Id "x" respawning too fast: disabled for 5 minutes
|
||
</STRONG></Pre>
|
||
<P><STRONG>
|
||
I ran into the same problem myself in RedHat 6. I tried all your
|
||
suggestions, which I appreciate because they gave me somewhere
|
||
to start. But none of them worked. Finally, on a whim I ran df I found that
|
||
my drive was full. Freeing up some space solved the problem.
|
||
</STRONG></P>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 11 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/12"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 12 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>First Win/2000 Question!</H3>
|
||
|
||
|
||
<p><strong>From Dr. Firyal Bou-Rabee on Sun, 20 Feb 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
First Win/2000 Question!
|
||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<BLOCKQUOTE>
|
||
[From Kuwait].
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
hi,
|
||
I have windows 2000 professional edt.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
My condolences.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Q1. How to get ride of pop window for asking about user name and password?
|
||
<br>Q2. How to reinstall windows 2000?
|
||
<br>thank you
|
||
<br>MAB
|
||
</STRONG></P>
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Try calling Microsoft or reading their manual. Didn't they
|
||
sell you some documentation and/or support with that?
|
||
If not, what exactly are you getting for your money?
|
||
</BLOCKQUOTE>
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 12 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/13"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 13 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>What to Delete from Drive C</H3>
|
||
|
||
|
||
<p><strong>From steve eckard on Sun, 20 Feb 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
What to Delete from Drive C
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
I would appreciate some advice on what to delete off my C drive. I seem
|
||
to be just about out of space and know that there's plenty of junk
|
||
there, but I'm not sure which is which. Are there any guidelines on what
|
||
is not needed. Thanks for your help.
|
||
My email address is <em>[snipped]</em>
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
The fact that you refer to it as your "C" drive suggests
|
||
that it is running MS-DOS and probably MS-Windows ('95,
|
||
'98, or whatever).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Personally I'd start by removing that and putting in Linux.
|
||
However that's based purely on my personal bias. It's what
|
||
most people would expect from the "Linux Gazette Answer
|
||
Guy."
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Presumably you'd like to be a bit more selective.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
This is one of the long-standing problems with MS-Windows in
|
||
all its many flavors (3.0 through 3.11, WfW, '9x, and NT).
|
||
It is customary for software to scatter their files all over
|
||
your drive(s) and to embed drive/path information throughout
|
||
their configuration files (or "registry" trees).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
That leads to two problems:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><ol>
|
||
<li> You don't know which files belong to which
|
||
packages.
|
||
<li> Adding a new drive and trying to move data
|
||
and programs into the additional free space
|
||
leads to "transplant shock" or requires removal
|
||
and re-installation/configuration of some
|
||
software.
|
||
</ol></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
These lead to other problems. Proper function of your
|
||
system can be dependent on the order in which some of your
|
||
software was installed. Re-installation of some software
|
||
can result in the replacement of some DLLs with older
|
||
versions, which can cause other software to fail.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Basically the whole design is like a house of cards.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You could try some programs like "Uninstaller" or
|
||
"Cleansweeper." I don't remember the actual names of any of
|
||
these but you can find a list of them in the TUCOWS
|
||
(<A HREF="http://www.tucows.com"
|
||
>http://www.tucows.com</A>) "Win '95/98 Disk Cleaner
|
||
Utilities" category at: <A HREF="http://www.tucows.com/diskc95.html"
|
||
>http://www.tucows.com/diskc95.html</A>
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Of course you should use these programs with caution and
|
||
only after you've backed up any data (particularly that
|
||
thesis that you might need to graduate). Of course my
|
||
favorite disk cleaner for MS-Windows partitions is the
|
||
Linux command:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><Code>
|
||
dd if=/dev/zero of=/dev/hda?
|
||
</Code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... which will WIPE OUT WHOLE FILESYSTEMS without so much as
|
||
a "Are you sure?" warning prompt!
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
TUCOWS is self-proclaimed to be "The Ultimate Collection of
|
||
Windows Software." If you're going to continue using
|
||
MS-Windows you might was well have a decent selection of
|
||
shareware and freeware to make it more tolerable.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
They also run Linuxberg (<A HREF="http://www.linuxberg.com"
|
||
>http://www.linuxberg.com</A>)
|
||
(or <A HREF="http://linux.tucows.com/index.html"
|
||
>http://linux.tucows.com/index.html</A>) which is a
|
||
good source of free and shareware Linux software.
|
||
They are arranged in categories and each is rated
|
||
with one to five "penguins" (stars).
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 13 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/14"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 14 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Linux as a SOCKS client</H3>
|
||
|
||
|
||
<p><strong>From Phoenix_II on Sun, 20 Feb 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
Linux as a SOCKS client
|
||
~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Hey answerguy!!
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I have a problem here. First of all, I am brand spanking new to
|
||
Linux. I have a Win98SE box and a Linux Mandrake 6.0 box. The
|
||
Win98 box has two network cards, one is connected to a LAN and the
|
||
other to the Linux box via crossover cable. I just installed
|
||
winproxy on the win box and am trying to get the Linux box to
|
||
"notice" the proxy so I can get HTTP, FTP and so forth, to the
|
||
internet through the win box. the winproxy has "CERN HTTP," FTP,
|
||
Telnet, "SOCKS 4 & 5," DNS, DHCP, and Transparent Proxy
|
||
capabilities and all the instruction is for if I want to connect
|
||
another win box to it. Do you think you can help me out? Thanks,
|
||
Phoenix
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Well, that's a backwards way to do it. Usually
|
||
you'd use the Linux box as a proxy server and use
|
||
the MS-Windows boxes as the clients. That's because Linux
|
||
is much more stable, and secure, requires much less system
|
||
overhead, and has much more flexible IP filtering, routing
|
||
and masquerading control.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
However, to make your Linux system into a SOCKS client
|
||
you can install the socks-client RPMs and modify
|
||
the <TT>/etc/libsocks5.conf.</TT> Once this is done all of the
|
||
normal TCP/IP client software on your system should
|
||
automatically use the proxy according to the configuration.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I did provide a more extensive discussion of this process
|
||
and the many other options available back in issue 36
|
||
<dl><dt>
|
||
"Linux as Router and Proxy Server: HOWTO?"
|
||
<dd><A HREF="http://www.linuxgazette.com/issue36/tag/21.html"
|
||
>http://www.linuxgazette.com/issue36/tag/21.html</A>
|
||
</dl></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
That contains a sample <tt>libsocks5.conf</tt> file and
|
||
a bit of explanation on what the fields mean.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Some software, notably your Netscape Navigator/Communicator
|
||
will have to be separately configured to use the proxy.
|
||
Just hunt down the appropriate dialog boxes through the
|
||
program's UI --- Edit, Preferences for Netscape, etc).
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 14 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/15"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 15 -->
|
||
<H3 align="left"><img src="../gx/dennis/bbubble.gif"
|
||
height="50" width="60" alt="(!) " border="0"
|
||
>Simpler Way to Recover From a Lost Password</H3>
|
||
|
||
|
||
<p><strong>From mjschack on Mon, 21 Feb 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
Simpler Way to Recover From a Lost Password
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Hello,
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
In reference to your explanation of how to recover a lost password in the
|
||
current issue of the Linux Gazette, there is a simpler method.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
For instance, if your kernel is labeled "linux," you could reboot (assuming
|
||
your currently using the system), type "<tt>linux 1</tt>" at the boot prompt,
|
||
boot to
|
||
single-user mode, type "<tt>passwd</tt>" when at the prompt and then enter a new
|
||
password. To get it all in one logical sequence, the next command could be
|
||
"<tt>telinit 3</tt>" or if XDM is running the show, "<tt>telinit 5</tt>."
|
||
"<tt>Telinit 6</tt>" in this
|
||
scenario wouldn't be necessary, since no volatile changes to the disk have
|
||
been made.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Just my two cents.
|
||
Sincerely,
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
That will work on some Linux distributions under some
|
||
configurations. However, most modern distributions use
|
||
an "sulogin" utility to password protect the single user
|
||
mode.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
The steps I gave will handle most systems. Two cases
|
||
that are likely to interfere with the procedure I
|
||
outlined would be:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><ol>
|
||
<li> System has a LILO password enabled to prevent
|
||
passing over-ride parameters to the kernel
|
||
<br>AND
|
||
<br> System has CMOS password in place to prevent booting
|
||
from floppy and other removable media.
|
||
<br>
|
||
OR
|
||
<li> System has ppdd (privacy protected disk driver) installed
|
||
and the root filesystem is encrypted.
|
||
</ol></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
There are ways to get around the second part of problem #1 ---
|
||
(which bypasses the LILO password). However, scenario #2
|
||
would be VERY difficult to get around.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
The number of system that are actually secured to this
|
||
degree is way less than 1%. This is actually a bit of a
|
||
pity in some ways, since users don't REALLY know if their
|
||
computer workstation, left unattended in their open cubicle
|
||
is trustworthy when they sit down at it in the morning and
|
||
type their passwords into it. Ultimately this means that
|
||
most businesses have somewhat limited accountability ---
|
||
they can't definitely assert that a given user was the one
|
||
who used a particular account to violate some policy. This
|
||
is a limitation of PCs (and most other commonly available
|
||
workstations) that has nothing to do with the OS.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
As I've described, it's possible to lock down a PC running
|
||
Linux so that it takes some pretty studly work to get into
|
||
them. However, it's pretty rare.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Incidentally, the MBR in recent
|
||
<A HREF="http://www.debian.org/">Debian</A> Potato releases may
|
||
be insecure from scenario #1. There was a feature added
|
||
that allows one to bypass CMOS boot restrictions and boot
|
||
from floppy by pressing the apropriate key sequence in
|
||
the MBR boot loader.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
This was discussed a couple of weeks ago one the Bugtraq
|
||
security mailing list. It is possible to over-ride this
|
||
default using options to the Debian install-mbr command.
|
||
See its man page for details.
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 15 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/16"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 16 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>"Hardening" a Red Hat (into a Helmet?)</H3>
|
||
|
||
|
||
<p><strong>From Judith M. Bride on Tue, 15 Feb 2000
|
||
</strong></p>
|
||
<p><strong>
|
||
Thank you for the response, Jim. Sorry to take so long to acknowledge!
|
||
Judith
|
||
</strong></p>
|
||
<P><STRONG><FONT COLOR="#000066"><EM>
|
||
Mr. Dennis,
|
||
Can you direct me to a source that will tell me how to secure our
|
||
RHLinux 6.0 DNS server. I am new to Linux. We only use it for DNS, so
|
||
we want to make sure we've closed all unnecessary services.
|
||
</EM></FONT></STRONG></P>
|
||
<P><STRONG><FONT COLOR="#000066"><EM>
|
||
Thanks.....
|
||
Judith
|
||
</EM></FONT></STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
><dl><dt>
|
||
You could start with Bastille Linux at
|
||
<DD><A HREF="http://www.bastille-linux.org"
|
||
>http://www.bastille-linux.org</A>
|
||
</DL></BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
<em><p>[ Plain thanks don't always get published, but it's worth
|
||
noting that Bastille just released a new version of their
|
||
scripts a few days ago. To stay secure, it's worth keeping up.
|
||
The mailing lists at <a href="http://www.securityfocus.com/">SecurityFocus</a>
|
||
are worth watching, too.
|
||
<br>-- Heather]</p></em>
|
||
|
||
<!-- end 16 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/17"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 17 -->
|
||
<H3 align="left"><img src="../gx/dennis/bbubble.gif"
|
||
height="50" width="60" alt="(!) " border="0"
|
||
>A bit more about C-Kermit</H3>
|
||
<h4 align="center">From its author.</h4>
|
||
|
||
|
||
<p><strong>From Frank da Cruz on Mon, 21 Feb 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
A bit more about C-Kermit
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
I notice you've got a lot about Kermit in your page:
|
||
</STRONG></P>
|
||
<P><STRONG><BlockQuote>
|
||
<A HREF="http://www.linuxprogramming.com/mirrors/LDP/LDP/LG/issue32/tag_modem.html"
|
||
>http://www.linuxprogramming.com/mirrors/LDP/LDP/LG/issue32/tag_modem.html</A>
|
||
</BlockQuote></STRONG></P>
|
||
<P><STRONG>
|
||
Including:
|
||
</STRONG></P>
|
||
<P><STRONG><FONT COLOR="#000066"><EM><BlockQuote>
|
||
Another simple testing trick is to use 'minicom' to dial the phone and
|
||
establish your connection (log in). Then use the "Quit without Resetting
|
||
the Line" option (using the [Ctrl]+[A], [Q] key sequence). This should
|
||
dump you out of minicom and back to a shell prompt without disconnecting
|
||
your modem. (It is then possible to invoke pppd on that line --- using an
|
||
alternative version of the ISP options file without any "connect"
|
||
directive).
|
||
</BlockQuote></EM></FONT></STRONG></P>
|
||
<P><STRONG><FONT COLOR="#000066"><EM>
|
||
That trick doesn't work with kermit --- it won't exit without resetting
|
||
the communications line. From what Frank de la Cruz tells me you can't use
|
||
C-Kermit as a replacement for 'chat' because of this. Basically he says it
|
||
violates some programming standards to do this. (I still don't understand
|
||
that --- but it's not currently a priority to me. If someone understands
|
||
it and wants to explain --- write an article and send me a copy).
|
||
</EM></FONT></STRONG></P>
|
||
<P><STRONG>
|
||
The explanation is that when a UNIX process exits, all the files that it
|
||
opened (and in UNIX, devices count as files) are closed by UNIX itself.
|
||
There's nothing the application can do to prevent it. The only way Minicom
|
||
could keep the connection open when it exits is by configuring the modem to
|
||
ignore DTR, but you could do that with Kermit too.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
But the open device was passed to chat by the parent
|
||
process, pppd, which is still running. I guess that's what
|
||
chat (or the PPP daemon) is doing.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Anyway, C-Kermit 7.0, which was announced 1 Jan 2000:
|
||
</STRONG></P>
|
||
<P><STRONG><BlockQuote>
|
||
<A HREF="http://www.columbia.edu/kermit/ckermit.html"
|
||
>http://www.columbia.edu/kermit/ckermit.html</A>
|
||
</BlockQuote></STRONG></P>
|
||
<P><STRONG>
|
||
now incorporates a built-in method for PPP dialing, which you can read about
|
||
here:
|
||
</STRONG></P>
|
||
<P><STRONG><BlockQuote>
|
||
<A HREF="http://www.columbia.edu/kermit/case13.html"
|
||
>http://www.columbia.edu/kermit/case13.html</A>
|
||
</BlockQuote></STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I didn't see that, though I know that I did mention
|
||
something about the new Kerberos features in one of my
|
||
recent issues.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
It doesn't require any kludges with the modem or cables.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
- Frank
|
||
P.S. Also note spelling of name: "da Cruz".
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Sorry. I should have double checked that. I simply
|
||
mis-remembered it.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
PS: I'm the same guy that wrote an article for
|
||
sysadmin Magazine about C-Kermit as a replacement for
|
||
telnet, rlogin et al, back in about '97
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You and I corresponded several times back then.
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 17 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/18"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 18 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>ksh Keybindings (vi Keys)</H3>
|
||
|
||
|
||
<p><strong>From Robert Lynch on Sun, 20 Feb 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
ksh Keybindings (vi Keys)
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Hi-
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
My wife is an SCO sys admin whose business bought her a Dell
|
||
pre-configured RH 6.0 box for home use. She's used to ksh on SCO, with
|
||
default vi setting. She finds this broken with bash. I have tried
|
||
to fix it, including installing pdksh, but no joy.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Say she types:
|
||
</STRONG></P>
|
||
<Pre><STRONG>$ ls
|
||
$ who
|
||
</STRONG></Pre>
|
||
<P><STRONG>
|
||
then hits ESC + up arrow. Instead of moving through the command
|
||
history, a "[A" character appears. I tried re-mapping the arrow keys
|
||
but nada.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Please NOTE: I've been working on this for a while, and have seen
|
||
several postings, to the effect "just set -o vi". Ain't this!
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
TIA. Bob L.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
<tt>set -o vi</tt> under bash works fine for me. I've used it
|
||
occasionally and I've had students use it for years.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
However, vi normally uses the letters h,j,k, and l for its
|
||
cursor controls. The [Up Arrow] and other keys are not
|
||
traditional vi key bindings (though most modern versions of
|
||
vi will also accept them if your terminal is properly
|
||
configured using the appropriate <tt>TERM</tt> variable in
|
||
association with a decent terminfo or termcap entry).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Can you run '<tt>vi</tt>' (the editor) and/or emacs or xemacs from
|
||
this command prompt? Is it in an xterm or from a text
|
||
console? Are you (and she) accessing this through telnet?
|
||
What terminal emulation is this going through?
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
If you can run '<tt>vi</tt>' or '<tt>emacs</tt>' within that terminal window,
|
||
or console/terminal session then your <tt>TERM</tt> environment
|
||
setting should be sufficient to support the vi keybindings
|
||
used by bash, pdksh and ksh). My quick tests with pdksh, ksh
|
||
'93, and bash all show that the [Up Arrow] key IS recognized
|
||
by the vi keys handlers in any of them. I tested this from
|
||
a text console with <tt>TERM=linux</tt>, from under the '<tt>screen</tt>'
|
||
utility with <tt>TERM=screen</tt>, and from an xterm with <tt>TERM=xterm</tt>.
|
||
This is all on a <A HREF="http://www.debian.org/">Debian</A>/Potato system
|
||
with all recent updates applied for all software (yesterday).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
So I don't know what is wrong. You'll want to play with the
|
||
'k' (vi up key) to see if that works, and play with the TERM
|
||
variable (especially if you're connecting through your net
|
||
using some MS-DOS or MS-Windows telnet client). You might
|
||
also want to check if you are using some unusual key
|
||
mappings on your Linux console (the loadkeys command) or in
|
||
your copy of X (the xmodmap command). Again, if you have
|
||
vi and emacs working normally, then these should not be
|
||
problems for you.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Moving on to the larger issues of making your wife feel at
|
||
home on here new system. If she's used to SCO's ksh then
|
||
she might find some of the minor differences between it and
|
||
GNU bash (the default Linux shell, from the Free Software
|
||
Foundation --- <A HREF="http://www.gnu.org"
|
||
>http://www.gnu.org</A>). There are even
|
||
differences between pdksh and ksh '93, and even more minor
|
||
ones between pdksh and ksh '88.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I don't know which ksh ships with SCO UNIX nor even which
|
||
version of SCOnix that your wife is using. I'll assume
|
||
she's using a recent copy, and that it shipped with the most
|
||
recent Korn shell.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I suppose the best advice would be to get the real Korn
|
||
Shell (ksh '93) from David G. Korn's web site:
|
||
<A HREF="http://www.kornshell.com"
|
||
>http://www.kornshell.com</A>. Just follow a couple of obvious
|
||
links (Software, "Official AT&T Release...") and fill out
|
||
the little form.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Note that this is NOT free for commercial use. It is also
|
||
NOT open source. You can read their license agreement for
|
||
all of the details.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
If your use will be within those restrictions than you can
|
||
get this for your wife. If she's used to subtle nuances of
|
||
ksh --- and especially if she does serious shell scripting
|
||
involving associative arrays, co-processes, and floating
|
||
point mathematics then she'll be happier with the "real
|
||
thing" then she will be with bash or pdksh.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Most shell users wouldn't know the difference. However, ksh
|
||
'93 (the most recent major release of the package) is the
|
||
"king" of Unix command shells. It has a number of features
|
||
which are unique to it (particularly in support of
|
||
associative arrays).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
There's a pretty good, and short, article co-authored by the
|
||
creator of the Korn shell that discusses some of the
|
||
features that make ksh '93 unique which was published by the
|
||
Linux Journal and can be read on their web site at:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote>
|
||
<A HREF="http://www2.linuxjournal.com/cgi-bin/frames.pl/lj-issues/issue27/korn.html"
|
||
>http://www2.linuxjournal.com/cgi-bin/frames.pl/lj-issues/issue27/korn.html</A>
|
||
</BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
More information about pdksh can be found at the web site of
|
||
its current maintainer, Michael Rendell at:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote>
|
||
<A HREF="http://www.cs.mun.ca/~michael/pdksh"
|
||
>http://www.cs.mun.ca/~michael/pdksh</A>
|
||
</BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
As far as I know pdksh and ksh are the only shells to
|
||
support co-processes. So, if your wife uses those she'll
|
||
definitely want to use one of them. Bash doesn't seem to
|
||
support co-processes, yet. I think it's on their wishlist.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(For those that don't know: Co-processes work something
|
||
like this:
|
||
</BLOCKQUOTE>
|
||
|
||
<blockquote><pre> $ bc |&
|
||
[1] 12345
|
||
$ print -p '1234 * 4567890'
|
||
$ read -p result
|
||
$ echo $result
|
||
|
||
...
|
||
|
||
$ print -p quit
|
||
$
|
||
[1] + Done bc
|
||
$
|
||
</pre></blockquote>
|
||
<BLOCKQUOTE>
|
||
I started a copy of the "big calculator" (bc). The |&
|
||
operator makes it a "co-process" --- running with its
|
||
stdin (standard input file stream) connected to one
|
||
pipe from ksh/pdksh and its stdout (standard output
|
||
file stream) connected to another. Then I printed
|
||
a value into that special co-process pipe (print -p)
|
||
and read that value back out (using read -p). I can
|
||
then print other transactions into this co-process and
|
||
read other results from it. This allows me to have
|
||
one process loaded, maintaining state, and available
|
||
for work. In shells that don't support co-processes
|
||
I'd have to maintain my own state, and keep re-executing
|
||
this command (possibly with quite a bit of extra
|
||
over-head in providing my intermediate results/state
|
||
back to the new instance of the program).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
So, co-processes are one of the more interesting innovations
|
||
of the Korn shell. Such things are relatively easy to do
|
||
from C, but ksh and pdksh are the only shells that
|
||
interactively provide these at a high level shell prompt.)
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 18 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/19"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 19 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Weird Mount Permissions & Where's a Word Processor</H3>
|
||
|
||
|
||
<p><strong>From Ilan Tal on Sun, 23 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
Weird Mount Permissions & Where's a Word Processor
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Hi Jim,
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
This morning your answer on getting started with Samba was the
|
||
best thing I've seen to date on Linux. It answered the questions I
|
||
didn't know how to ask. I still haven't implemented it, but at
|
||
least now I know which direction to go.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Glad it helped. I have no idea which comment on
|
||
Samba you're referring to --- after three years and
|
||
over a thousand questions answered on this column
|
||
they tend to all be a blur.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I have another couple questions which you might be able to
|
||
answer. I have a multiple boot machine with win95, win98, win2k
|
||
and Linux 6.1. Naturally I want Linux to talk to EVERYTHING,
|
||
including across the LAN (the Samba part).
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I have hooked up win95 (fat16) and win98 (fat32), but each time when I boot
|
||
up and look in the <TT>/mnt</TT> folder I see both icons with a red band around them
|
||
(meaning that I can't open the folder).
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I go into the terminal, open up a super user and do: <tt>ls -ld win98</tt>. The
|
||
result I get back is <tt>d----w-w-</tt>. That explains why I can't open them.
|
||
Then I
|
||
do a umount win98 and immediately mount it back again. Now <tt>ls -ld win98</tt>
|
||
gives me <tt>drwxrwxr-x</tt>, and I can open the folders. Under linuxconf I have
|
||
myself as the owner.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
The problem is if I reboot, it again goes into the mode where I can't open
|
||
the folder. My question is: what do I have to do to convince it to boot up
|
||
with drwxrwxr-x and NOT <tt>d---w-w-</tt>?
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Well that is odd. The initial (boot time) mount fails in
|
||
a way that marks the permissions absurdly and a remount
|
||
succeeds and shows sane permissions.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
The diagnostics you're giving are pretty sparse. The
|
||
most useful information in this case would be:
|
||
</BLOCKQUOTE>
|
||
|
||
<blockquote><ul><li>Relevant excerpt from your <tt>/etc/fstab</tt>
|
||
<li>Output of the '<tt>mount</tt>' and '<tt>df</tt>' commands
|
||
before and after the failure.
|
||
<li>Output of the '<tt>lsmod</tt>'command before and
|
||
afer the failure.
|
||
</ul></blockquote>
|
||
<BLOCKQUOTE>
|
||
I suspect that the problem is related to your
|
||
loadable kernel modules and your kmod (kernel module
|
||
autoloading subsystem). It could be that there is
|
||
something subtly wrong with your start up sequence
|
||
so that the <tt>vfat.o</tt>, <tt>msdos.o</tt>, and related modules are
|
||
not properly loading.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Tracking down the problem could be interesting. Basically
|
||
you'd read through the <TT>/etc/rc.d/*</TT> scripts to find out
|
||
where kmod is activated (<TT>/etc/rc.d/rc.sysinit?</TT>) and
|
||
where your filesystems are mounted (<tt>find /etc/rc.d | xargs
|
||
grep "mount.*-a"</tt>).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
This is made somewhat more entertaining by the amount of
|
||
cruft that's accumulated in the
|
||
<A HREF="http://www.redhat.com/">Red Hat</A> rc scripts. Some of
|
||
the other distributions have somewhat cleaner, more elegant
|
||
rc scripts and some of them have it even worse. When I
|
||
teach classes in Linux administration, I spend about a half
|
||
day on <TT>/etc/inittab</TT> and the <tt>rc*</tt> scripts.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Read those after digesting _Learning_the_bash_Shell_ (*) by
|
||
Cameron Newham and Bill Rosenblatt (O'Reilly and Associates)
|
||
and you'll be well prepared to troubleshoot most Linux
|
||
configuration problems.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><UL><LI>
|
||
(<A HREF="http://www.oreilly.com/catalog/bash2"
|
||
>http://www.oreilly.com/catalog/bash2</A>)
|
||
</UL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
A workaround might be easier than a real fix. One work
|
||
around would be to simply add the commands:
|
||
</BLOCKQUOTE>
|
||
|
||
<blockquote><pre> umount /mnt/win98 ; mount /mnt/win98
|
||
umount /mnt/win95 ; mount /mnt/win95
|
||
</pre></blockquote>
|
||
<BLOCKQUOTE>
|
||
... to your <TT>/etc/rc.d/rc.local</TT> script. If that
|
||
doesn't work try using something like:
|
||
</BLOCKQUOTE>
|
||
|
||
<blockquote><pre> ( sleep 120
|
||
umount /mnt/win98 ; mount /mnt/win98
|
||
umount /mnt/win95 ; mount /mnt/win95
|
||
) &
|
||
</pre></blockquote>
|
||
<BLOCKQUOTE>
|
||
This encapsulates the previous commands into a
|
||
subshell (the parentheses), inserts a two minute
|
||
delay at the beginning of that subshell, and runs
|
||
the subshell in the background (the ampersand).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
The overall effect of this would be that the
|
||
troublesome mount would be left alone for a couple
|
||
of minutes, and then cleared up in the background.
|
||
Obviously, your win '9x filesystems wouldn't be
|
||
available until after that delay.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
As I say. This is a WORKAROUND. Normally installations
|
||
should NOT have to do this.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Another approach would be to ensure that the modules
|
||
are loaded BEFORE the mount command occurs. Usually
|
||
the kmod automatic module loading system is reliable
|
||
enough. However, we can always add our own '<tt>insmod</tt>'
|
||
or '<tt>modprobe</tt>' commands commands to <TT>/etc/rc.d/rc.sysinit</TT>
|
||
or to some other point in the rc scripts. Indeed we
|
||
could even insert a custom rc invocation into the
|
||
<TT>/etc/inittab</TT> file --- which would run before ALL of the
|
||
other rc scripts.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Yet another approach is to link the requisite modules
|
||
statically into your kernel. You don't have to do this
|
||
with all of the modules you use (and that might result in
|
||
kernels that are two big for LILO to use). However, you
|
||
should statically link in your primary disk controller,
|
||
primary filesystem, any ethernet driver and then the
|
||
other drivers that you really care about. This is
|
||
done by simply building a new kernel from sources.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Which segues into one of your other questions).
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
The other question has to do with hooking up to win2k with NTFS. I
|
||
understand that I have to recompile my kernel, which is a bit
|
||
scary. My question is: is there a good source of directions on how
|
||
to do this? If there is something similar to what you showed me
|
||
for Samba, it would be great!
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Well the usual answer for this is to head over to
|
||
"The Linux Kernel HOWTO" at
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
<A HREF="http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html"
|
||
>http://www.linuxdoc.org/HOWTO/Kernel-HOWTO.html</A>
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... and if that seems to shoot over your head then
|
||
go back to basics by reading the "Installation and
|
||
Getting Started" guide by Matt Welsh et al:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
The Linux Documentation Project Works
|
||
<DD><A HREF="http://www.linuxdoc.org/docs.html#guide"
|
||
>http://www.linuxdoc.org/docs.html#guide</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... this guide is the first link in the guides section
|
||
of the LDP (the Linux Documentation Project).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Of course every Linux user should start with the LDP
|
||
guides and HOWTOs. Every general purpose Linux distribution
|
||
should have links to the LDP <A HREF="http://www.linuxdoc.org"
|
||
>http://www.linuxdoc.org</A> web site
|
||
prominently evident on their own web sites, in their
|
||
documentation and installation scripts, in the sample
|
||
HTML that's installed on any localhost web server, etc.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Incidentally the Linux Gazette is a part of the LDP.
|
||
This is relatively obscured by the fact that we run
|
||
completely autonomously).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
If the "Installation and Getting Started" doesn't seem
|
||
to be quite enough then I'd suggest looking at
|
||
Henry White's "Basic Linux Training"
|
||
(<A HREF="http://basiclinux.hypermart.net/info-basic.html"
|
||
>http://basiclinux.hypermart.net/info-basic.html</A>)
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
That's a highly structured online class. Although it
|
||
requires registration (and a password) to access the
|
||
content of this course --- the registration seems to be
|
||
free. This class uses the Getting Started guide as
|
||
a text book.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Another question is: where can I obtain a decent word processor
|
||
for Linux? The Redhat 6.1 didn't have anything on the CD. There
|
||
are all sorts of editors, and even a spread sheet, but no word
|
||
processor. It is difficult for me to return to the dark ages where
|
||
I had no control over the font size, or which font I was using,
|
||
which are the minimum goodies for a word processor.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Thanks,
|
||
<br>Ilan
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
There are several word processors for Linux. However,
|
||
I should note that the whole word processor paradigm is
|
||
not the only way to have control over font size and
|
||
selection. It's also important to understand that
|
||
word processors existed for years before GUIs and "WYSIWIG"
|
||
(what you see is what you (hope to) get) were feasible.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
One of the earliest uses of UNIX was document preparation
|
||
and typesetting using the roff (nroff, and troff) system.
|
||
This is still the format used by Linux and UNIX man pages,
|
||
and some people still create and maintain their resumes
|
||
in troff. A troff document consists of text with embedded
|
||
"dot commands" which identify the document parts (titles,
|
||
headings, sections, etc) and desired typesettings (font,
|
||
face, weight, etc).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Another typesetting system which is geared for technical
|
||
publications and academic work (particularly for
|
||
dissertations in mathematics, physics, Klingon linguistics,
|
||
etc) is Donald Knuth's TeX system (pronounced "tech" as in
|
||
"tau epsilon chi"). TeX is a typesetting language.
|
||
Many TeXnicians actually use the LaTeX macro package which
|
||
is built around "plain" TeX. There are hundreds of packages
|
||
which plug into LaTeX and dozens of TeX alternatives to it.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You can learn far more than you ever wanted to know
|
||
about this approach to document preparation by browsing
|
||
around the TUG (TeX Users Group) website <A HREF="http://www.tug.org"
|
||
>http://www.tug.org</A>
|
||
and by perusing the CTAN (Comprehensive TeX Archive Network)
|
||
website at <A HREF="http://www.ctan.org"
|
||
>http://www.ctan.org</A>.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(If you need to typeset a dissertation comparing
|
||
Elvish, Goblinoid, and Klingon literature, perhaps with
|
||
diagrams of their respective approachs to chess, and
|
||
perhaps you want to have barcode footnotes of your
|
||
bibliographic references --- if you need that then
|
||
CTAN is the place to go!)
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I've never written anything in *roff. However I do
|
||
like LaTeX, and I did use it to write my first book.
|
||
It does represent a significant learning curve, but you
|
||
do get very good control over the project as a whole.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
So, I suggest that you look back into the "dark ages"
|
||
a bit and see what arcane wisdom might be found thereby.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Now, back to your question:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
The most obvious commercial and closed source choices
|
||
for your word processing needs are:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
Word Perfect by Corel software
|
||
<DD><A HREF="http://www.corel.com"
|
||
>http://www.corel.com</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(I'd give a more specific URL, but they use
|
||
nasty Javascript redirections to access their
|
||
products listings so you'll just have to
|
||
hunt for it yourself).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Star Office by Star Division at
|
||
<A HREF="http://www.stardivision.com"
|
||
>http://www.stardivision.com</A> which was purchased by
|
||
Sun Microsystems <A HREF="http://www.sun.com"
|
||
>http://www.sun.com</A> last year
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
Applixware for Linux
|
||
<DD><A HREF="http://www.applix.com/applixware/linux/main.cfm"
|
||
>http://www.applix.com/applixware/linux/main.cfm</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... note that you might want to wait a couple
|
||
weeks for their upcoming release of 5.0
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Then again you might want to also have another
|
||
word processor handy for that first couple of
|
||
months after you get Applixware 5.x --- since it
|
||
is a major commercial sofware release and a ".0"!).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I've used Applix (a couple of minor versions ago) and
|
||
StarOffice. In fact I decided to install the Sun release
|
||
of StarOffice 5.1 while I was writing this message.
|
||
(I'd had a small stack of the free CDs that were given out
|
||
at some LUG around here sitting next to my computer for
|
||
about two months, and one of those was sitting in my
|
||
workstation's CD tray for the last couple of weeks).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
So, it's copying files now ... done.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
StarOffice does install pretty easily. This workstation
|
||
(canopus) is on a <A HREF="http://www.debian.org/">Debian</A> (Potato) distribution. Here's
|
||
how:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><ol>
|
||
<li> mount the CD
|
||
<li> startx as root
|
||
<li> open an xterm
|
||
<li> changed to the <TT>/mnt/cdrom/linux/office51</TT> directory
|
||
<li> run '<TT>./setup</TT> <TT>/net</TT>'
|
||
<li> follow the on screen instructions;
|
||
<br> especially: select an installation path.
|
||
(I used <TT>/opt/StarOffice51/</TT>)
|
||
</ol></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... this creates the base system installation (about 150Mb).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Then each local user who intends to use the package must:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><ol>
|
||
<li> login
|
||
<li> startx (if necessary)
|
||
<li> cd to a (site dependant) directory such as
|
||
/opt/StarOffice51/bin
|
||
<li> run <TT>./setup</TT> (without the <TT>/net</TT> option)
|
||
<li> follow the instructions and fill out the
|
||
forms; pick a personal installation path
|
||
(I used ~/.Office51/)
|
||
</ol></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Note: the CD doesn't seem to be required for the user
|
||
installations).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
This seems to install about 3Mb under my home directory. It
|
||
seems to me that quite a bit of that could be replaced with
|
||
symlinks but...
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Anyway, StarOffice comes with word processing, spreadsheet,
|
||
database, scheduler, presentation, and drawing programs. It
|
||
also seems to have some features for accessing your Palm
|
||
Pilot PDA.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Overall I think the whole StarOffice suite works O.K. but
|
||
is a bit too cluttered. There are too many tool bars, icon
|
||
ribbons, rulers, scroll bars, menu bars, status lines etc.
|
||
Some, possibly most of that could be configured away, but it
|
||
is not clear how you access those functions without having
|
||
the various widgets constantly in your face and taking up
|
||
valuable screen real estate.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
When you start StarOffice it creates one window/frame into
|
||
which all of the others must fit. Thus your document,
|
||
dialog, spread sheet and other windows don't float on your
|
||
desktop co-existing with your other X applications. They
|
||
are "boxed in" and visually isolated from the rest of your
|
||
desktop. This isn't much of a problem to me. I tend to
|
||
give each application its own virtual screen in my window
|
||
manager (mostly I've been using icewm recently --- it's very
|
||
modest and mostly unobtrusive). So I have no objection to
|
||
sizing StarOffice to "full screen" and let it take over
|
||
almost all of my screen. I just leave my icewm menu bar at
|
||
the bottom (taking up valuable screen real estate) and I use
|
||
it's little screen buttons to switch to my xterm screen
|
||
(O.K., I cheat! I have a couple of xterms open on that
|
||
one), my Navigator screen, or to my "other" (xdvi, gv,
|
||
whatever) screens.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Of course one of my xterms has a copy of 'screen' (the text
|
||
mode terminal multiplexer) running in it. This is running
|
||
my copy of xemacs, with my mailer and most of my other
|
||
editing buffers. Other screen sessions have shell prompts,
|
||
root shell prompts, and my lynx sessions. I regularly
|
||
detach this screen session, yanking it over to whichever
|
||
terminal session I happen to be on. So it makes rounds from
|
||
text console, to xterm, to ssh session as I keep
|
||
re-attaching from various locations and under various modes.
|
||
(Understanding how I work my help you decide that you don't
|
||
want to listen to my advice about GUI programs).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Anyway, I consider StarOffice to be acceptable, and
|
||
certainly no worse then what I've seen of MS Office.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
There is a free alternative. StarOffice is free as in "beer"
|
||
not free as in "speech" -- you can use it around the house
|
||
without paying any money but you can get the sources (yet),
|
||
modify it, or redistribute it without a license from Sun).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Abiword is the premier GPL'd GUI word processor. The
|
||
current version is 0.7.7.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Since you're a Red Hat user you can download the RPM file
|
||
from the AbiSource web site:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
AbiSource -- Linux <TT>/</TT> Intel Install
|
||
<DD><A HREF="http://www.abisource.com/dl_linux_intel.phtml"
|
||
>http://www.abisource.com/dl_linux_intel.phtml</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You can learn lots more about this project and the company
|
||
that's undertaken it at:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote>
|
||
<A HREF="http://www.abisource.com"
|
||
>http://www.abisource.com</A>
|
||
</BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Under Debian you could install the latest Abiword using the
|
||
command:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote><Code>
|
||
apt-get install abiword
|
||
</Code></BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... assuming you have your <TT>/etc/apt/sources.list</TT> configured
|
||
correctly. Debian will then handle all of the downloading,
|
||
installation and dependency resolution for you.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I've played with Abiword and it is pretty nice. However it
|
||
is missing some fairly key pieces (such as the dialogs to
|
||
control your margins and page layout. It does seem less
|
||
cluttered than StarOffice's "writer" and when you use the
|
||
option to turn of the "ruler" display then you can still
|
||
find all the options it offered on the pull down menus.
|
||
(Now if they just offered options to display the display of
|
||
the tool and menu bars and offered options to pop those up
|
||
with middle and "other" mouse buttons on the main text
|
||
display, then we might have a really clean interface).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
One of the most aggressive projects to create a new office
|
||
suite for Linux is KOffice (<A HREF="http://koffice.kde.org"
|
||
>http://koffice.kde.org</A>) by the
|
||
<A HREF="http://www.kde.org/">KDE</A> folks. I haven't gotten this running yet. I did try to
|
||
grab the RPMs and use alien to install pre-compiled binaries
|
||
in the background as I was writing this message --- but I'm
|
||
missing a few libraries that it wants, so I'll have to get
|
||
the sources and build it all in order to test it. That will
|
||
have to happen later.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
There are lots of other word processing packages for Linux.
|
||
Some are under development, others are commercial, some seem
|
||
to be half done and abandonned projects (like Maxwell, and
|
||
Papyrus). Here's a couple of URLs to browse some of them:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
[freshmeat] X11/Office Applications
|
||
<DD><A HREF="http://www.freshmeat.net/appindex/x11/office%20applications.html"
|
||
>http://www.freshmeat.net/appindex/x11/office%20applications.html</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
Christopher B. Browne's Linux Word Processing
|
||
<DD><A HREF="http://www.hex.net/~cbbrowne/wp.html"
|
||
>http://www.hex.net/~cbbrowne/wp.html</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
Goob:Software:Office
|
||
<DD><A HREF="http://www.linuxlinks.com/Software/Office"
|
||
>http://www.linuxlinks.com/Software/Office</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(This last one appears as "Goob" in my book marks
|
||
file --- so I think that is a historical name for the site).
|
||
</BLOCKQUOTE>
|
||
<em><p>[ Yes, it used to be called "Linux Links by Goob!" and
|
||
I always assumed it started life as his personal bookmarks.
|
||
<br>-- Heather ]</p></em>
|
||
|
||
<BLOCKQUOTE>
|
||
That should keep you busy for awhile.
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 19 -->
|
||
<!-- . . . . . . . . . . . . . . . . . . . -->
|
||
<HR WIDTH="40%" ALIGN="center">
|
||
<!-- begin 19 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>thanks</H3>
|
||
|
||
|
||
<p><strong>From Ilan Tal on Sun, 30 Jan 2000
|
||
</strong></p>
|
||
<P><STRONG>
|
||
Hi Jim,
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
The diagnostics are pretty sparse because I don't know what I'm
|
||
doing!
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I'm coming from the Windows world, but I'm in unfamiliar territory
|
||
with Linux.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Don't feel bad. When I was supporting MS Windows users
|
||
full time I often got sketchy symptomology.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
The thing that makes it more frustrating these days
|
||
is that I'm doing it via e-mail. So the questions I
|
||
want to ask and the data I need to gather in order
|
||
to treat the problem involve long delays in both
|
||
directions.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
As Linux increases in popularity there will be many
|
||
people in the same boat with you. I'll have to refer
|
||
more people to interactive phone support (which is
|
||
NOT free). Sometimes that will be the only sane
|
||
approach.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
It will take me a few days to digest your letter. I will look into
|
||
the problem and see if I can solve it, with the hopes of learning
|
||
something along the way. If I can't solve it, then I'll go for a
|
||
work around. In any case, I hope to learn something in the process
|
||
- and maybe as a result next time my diagnostics won't be quite so
|
||
sparse.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I VERY much appreciate all the effort you put into your
|
||
answer. Now I've got to digest it by trying out all the things you
|
||
suggested.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Thanks again,
|
||
Ilan
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Many people feel a bit overwhelmed by my responses.
|
||
I'm used to it. Obviously you are motivated and
|
||
interested in learning more.
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 19 -->
|
||
<!-- . . . . . . . . . . . . . . . . . . . -->
|
||
<HR WIDTH="40%" ALIGN="center">
|
||
<!-- begin 19 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>More on Strange Mount Permissions</H3>
|
||
|
||
|
||
<p><strong>From Ilan Tal on Sun, 30 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
More on Strange Mount Permissions
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Hi Jim,
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I don't want to bother you without doing my homework, but I have run into a
|
||
couple of questions which I just don't know how to solve. You answered my
|
||
question about the weird file permissions when I log on, which become normal
|
||
when I umount and then mount again.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
First of all, my fstab is:
|
||
</STRONG></P>
|
||
|
||
<pre><strong>/dev/hda6 / ext2 defaults 1 1
|
||
/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0
|
||
/dev/hda5 swap swap defaults 0 0
|
||
/dev/fd0 /mnt/floppy ext2 noauto,owner 0 0
|
||
none /proc proc defaults 0 0
|
||
none /dev/pts devpts gid=5,mode=620 0 0
|
||
/dev/hda4 /mnt/win98 vfat exec,dev,suid,rw,conv=auto,uid=500,gid=500,umask=755 1 1
|
||
/dev/hda1 /mnt/win95 msdos exec,dev,suid,rw,conv=auto,uid=500,gid=500,umask=755 1 1
|
||
</strong></pre>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Doh! [self: slaps forehead!]
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I should have guessed!
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Your problem is with those UMASK settings. I see
|
||
what you intended but that not how the UMASK works.
|
||
UMASK is a list of the bits to strip OFF (mask away from)
|
||
the default 666 file creation permissions (777 for
|
||
directories).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
So a UMASK of 022 is actually what you want!
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Basically consider each of the digits in the permissions
|
||
set to be an octal value (three binary bits). To get
|
||
the sequence rwx you have to use 4 + 2 + 1 (or
|
||
1 * 2 ^ 2 + 1 * 2 ^ 1 + 1 * 2 ^ 0 if you were to look at
|
||
the binary exponents). 777 in octal is 111 111 111, and
|
||
022 is 000 010 010. The complement of your UMASK (each
|
||
bit is inverted) is 111 101 101. If you and that against
|
||
your default permissions (777 for directories and 666
|
||
for files) then you "strip out" the write permissions for
|
||
groups and "others."
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I know that this is confusing. It's one of those things
|
||
that makes perfect sense to the programmers who used
|
||
UNIX early one; and is something that many sysadmins and
|
||
UNIX users just learn (umasks of 022 or 027 are good,
|
||
most others are bad) without really understanding the
|
||
underlying bit manipulations.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
The easy way to calculate the effects of a
|
||
umask are to subtract the desired permissions (755)
|
||
from 777. That you can do in your head: 777 - 755 = 022.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Anyway, just change those 755's to 022 and everything
|
||
should be fine.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
The other thing which I noticed about the ls -ld win98 with d----w-w- is
|
||
that the owner is ilan. After I umount and mount again the owner is root.
|
||
Your message actually gave me a very important clue. If, in fact, I do a
|
||
simple
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
umount <TT>/mnt/win98;</TT> mount <TT>/mnt/win98</TT>
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Of course that wouldn't work. The mount command has been
|
||
working right all along. It's doing exactly what the
|
||
options in the fstab are saying.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
then nothing good happens! I am still stuck with the same garbage
|
||
permissions. However if I mount as: mount <TT>/dev/hda4</TT> <TT>/mnt/win98</TT>, THEN the
|
||
permissions are OK (and the owner is root, not ilan).
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Of course. When you specify the device and the mount
|
||
point then the 'mount' command doesn't perform a lookup
|
||
in the <TT>/etc/fstab.</TT> It just mounts the filesystem according
|
||
to your arguments and its compiled in defaults.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I tried to extend your command (find <TT>/etc/rc.d</TT> | xargs grep "mount. *-a") to
|
||
something to find the mount win98 string, but I couldn't make it work
|
||
correctly. What I tried was find <TT>/etc</TT> | xargs grep "mount. win98", but aside
|
||
from telling me that every entry was a directory, I didn't get anything
|
||
useful. Thus I don't know where or how it mounts win98.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
While I'm at such questions, I tried sending you the output of the commands
|
||
(like ls -ld win98). What I found for redirection was rather complicated:
|
||
</STRONG></P>
|
||
<P><STRONG><BlockQuote>
|
||
(command) 2>&1 | tee (output file)
|
||
</BlockQuote></STRONG></P>
|
||
<P><STRONG>
|
||
I did all that, but each new command erased the output file. In the DOS
|
||
days, I used to use (command) > (output file), or (command) >> (output file)
|
||
to append to an existing file. I'm sure there must be something similar in
|
||
Linux.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
You can use the >> operator under Linux. (Actually the
|
||
operators are part of the syntax of your shell, bash, or
|
||
tcsh. Theoretically someone could write a UNIX/Linux
|
||
shell that used completely different syntax).
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Finally I tried recompiling the kernel to accommodate NTFS (read only). Your
|
||
suggested source helped a lot in adding information to what I had from the
|
||
official Linux documentation. Still it keeps coming back at me, at the
|
||
compile stage, telling me the kernel is too big and it can't compile it.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Use the 'make bzImage' option rather than the 'make zImage'
|
||
choice. This is a bit of a historical artifact.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You can read the Linux Kernel Mailing List (LKML) FAQ
|
||
at Tux.org (<A HREF="http://www.tux.org/lkml"
|
||
>http://www.tux.org/lkml</A>) for more on that.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I suspect that this is a red herring, so I simply had to ask your opinion. I
|
||
have 926 Mbyte on my Linux partition, of which no less than 95% is in use!
|
||
This blew my mind, and I have 41 Mbyte free. I suspect that the real problem
|
||
may be that the disk space just isn't big enough.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
No. That's now a problem. You should clear up
|
||
some space but that's now causing the symptoms you've
|
||
described to me.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
If this be the case, either I have to somehow exploit my win98 disk, which
|
||
has loads of free space, or I need to figure out what I can dump from my
|
||
Linux partition.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
You can symlink your home and <TT>/usr/src/linux</TT> directories
|
||
into directories on one of your MS Windows partitions,
|
||
though you should use the uvfat filesystem type rather
|
||
than just vfat. That will impose some UNIX/Linux semantics
|
||
on your MS FAT filesystems using some hidden files that
|
||
the Linux uvfat filesystem driver will transparently create
|
||
and maintain for you.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You might want to hunt around for information on uvfat and
|
||
it's predecessor/ancestore UMSDOS. I haven't used these in
|
||
years and haven't read about them recently.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Another very useful suggestion in your letter was to sign up for the Linux
|
||
course. This I did yesterday. Hopefully it may fill in some of the huge
|
||
holes in my background. Knowing Windows just isn't enough, not by a long
|
||
shot!
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I just saw an interesting link to Linux training providers
|
||
at:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
LinTraning:
|
||
<DD><A HREF="http://www.lintraining.com"
|
||
>http://www.lintraining.com</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... which is currently just a redirection to:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
LinSight: Training
|
||
<DD><A HREF="http://training.linsight.com"
|
||
>http://training.linsight.com</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I'm just mentioning that for the benefit of my other
|
||
readers, though you can check it out if you want to
|
||
shop around.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I thought about referring you to <A HREF="http://www.linuxcare.com/">Linuxcare</A> (which does
|
||
do some training). Howevever I see from our web site
|
||
that we don't currently have any classes for individuals
|
||
scheduled. Our focus at Linuxcare is more on training
|
||
the instructors of the training facilities, and on
|
||
corporate training. So we only occasionally offer
|
||
classes to the general public.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Many of the facilities listed in LinTraining are
|
||
coming to Linuxcare for their materials).
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Thanks,
|
||
Ilan
|
||
</STRONG></P>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 19 -->
|
||
<!-- . . . . . . . . . . . . . . . . . . . -->
|
||
<HR WIDTH="40%" ALIGN="center">
|
||
<!-- begin 19 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>100% correct!</H3>
|
||
|
||
|
||
<p><strong>From Ilan Tal on Mon, 21 Feb 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
100% correct!
|
||
~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
Hi Jim,
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
It took me a couple of days before I could get rid of my Windows obligations
|
||
and return to the fun stuff of Linux. In any case I must report to you that
|
||
YOU are right and the Linux documentation is WRONG. I am referring to your
|
||
letter:
|
||
</STRONG></P>
|
||
|
||
<pre><strong>>>> /dev/hda4 /mnt/win98 vfat >>> exec,dev,suid,rw,conv=auto,uid=500,gid=500,umask=755 1 1
|
||
>>> /dev/hda1 /mnt/win95 msdos >>> exec,dev,suid,rw,conv=auto,uid=500,gid=500,umask=755 1 1
|
||
</strong></pre>
|
||
<P><STRONG><FONT COLOR="#000066"><EM>
|
||
Doh! [self: slaps forehead!]
|
||
</EM></FONT></STRONG></P>
|
||
<P><STRONG><FONT COLOR="#000066"><EM>
|
||
I should have guessed!
|
||
</EM></FONT></STRONG></P>
|
||
<P><STRONG><FONT COLOR="#000066"><EM>
|
||
Your problem is with those UMASK settings. I see
|
||
what you intended but that not how the UMASK works.
|
||
UMASK is a list of the bits to strip OFF (mask away from)
|
||
the default 666 file creation permissions (777 for
|
||
directories).
|
||
</EM></FONT></STRONG></P>
|
||
<P><STRONG>
|
||
Where in hell would I know what permissions to use? I must have read it
|
||
somewhere, because I know NOTHING. First of all I took your suggestion, went
|
||
into linuxconf and changed 755 to 22. That solved my problem COMPLETELY! No
|
||
more problems with logging on, IT WORKS!
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
The next problem was to figure out where I got the bum steer. I went to the
|
||
Linux documentation, "Getting started". I wanted to get started, right?
|
||
There is a section about mounting Windows devices. That is what I needed,
|
||
right? Well it says to use 755, so that is what I did. I didn't know nothin'
|
||
about any UMASK, and I didn't change any UMASK. I took YOUR suggestion (in
|
||
linuxconf) about using 22, and guess what? It works!
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Someone should either fix linuxconf, or they should fix the documentation.
|
||
One of them is simply wrong. Without your telling me where the problem was,
|
||
I didn't have the chance of a snowball in hell of finding it.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Thanks,
|
||
Ilan
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Hmm. If you could find the passage in "Installation and
|
||
Getting Started" to which you are referring, we could
|
||
look up the current maintainer of that LDP guide and suggest
|
||
a clarification.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Matt Welsh, the original author of GS, knows at least as
|
||
much about UNIX as I do (probably more). So if the
|
||
passage was incorrect, it was probably an accident in the
|
||
wording, or something confusing about the sentence
|
||
structure. I presume that he was trying to say that you
|
||
should set your umask value such that the resulting
|
||
directories end up with mode 755.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
As for linuxconf, don't get me started about it. I've tried
|
||
it a couple of times and it just does things WRONG! I
|
||
refuse to use it on my systems. I'd like a mode in
|
||
linuxconf that would just "edit the files" and show me
|
||
what needs to be put where. In other words it would be nice
|
||
if it had interactive help, and forms to put the right stuff
|
||
into the right places in things like zone, hosts, passwd,
|
||
and other files. Some of these conf files can be pretty
|
||
picky.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(I once let crackers create directories on a public FTP site
|
||
and upload "warez" --- pirated software --- all because I
|
||
had a space following a common in a WU-FTPd ftpaccess file;
|
||
I was saved by some other settings that prevented them and
|
||
their ilk from get back into to retrieve the warez --- but
|
||
that's still a slightly spooking experience).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I suppose I should quit my kvetching and get in there to fix
|
||
it, or to help with the COAS (<A HREF="http://www.caldera.com/">Caldera</A> Open Admin System).
|
||
One problem with UNIX and Linux is that those of us who get
|
||
good at managing the system with text conf. files have
|
||
little interest in or incentive to make easier interfaces
|
||
for those who don't know that a man page that specifies
|
||
a syntax of "opt1,opt2,opt3..." really MEANS that there
|
||
should be no spaces after those commas, etc.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Anyway, if you can find the places that lead you astray,
|
||
please feel free to e-mail the maintainers of those
|
||
documents and packages (linuxconf included) and let them
|
||
know.
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 19 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/20"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 20 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>.max extension on an e-mail attachment</H3>
|
||
|
||
|
||
<p><strong>From Paul Todd on Sun, 30 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
.max extension on an e-mail attachment
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
I have been sent a document with a .max extension.
|
||
What software do I need to be able to open and print it?
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Regards
|
||
Paul Todd
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I have no idea. If you look at it with a text
|
||
text/hex editor is there any sort of hint among
|
||
the gibberish?
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I'd bounce a message to your correspondent
|
||
and ask that he or she provide the attachment
|
||
in a format you can support or point you to
|
||
the necessary tools to use it.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(.max is not any sort of standard or convention
|
||
I've ever heard of).
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 20 -->
|
||
<!-- . . . . . . . . . . . . . . . . . . . -->
|
||
<HR WIDTH="40%" ALIGN="center">
|
||
<!-- begin 20 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>RE: .max files</H3>
|
||
|
||
|
||
<p><strong>From Paul Todd on Mon, 31 Jan 2000
|
||
</strong></p>
|
||
<BLOCKQUOTE>
|
||
Hi Jim
|
||
Thanks for your note.
|
||
The person who sent me the file thought it was a "Paperport" file.
|
||
If I use Wordpad to look at it is just gibberish - random characters.
|
||
If I use something like Quickview I get the same but it is possible to see
|
||
the odd word
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- end 20 -->
|
||
<!-- . . . . . . . . . . . . . . . . . . . -->
|
||
<HR WIDTH="40%" ALIGN="center">
|
||
<!-- begin 20 -->
|
||
<H3 align="left"><img src="../gx/dennis/bbubble.gif"
|
||
height="50" width="60" alt="(!) " border="0"
|
||
>RE: .max files</H3>
|
||
|
||
|
||
<p><strong>From Paul Todd on Mon, 31 Jan 2000
|
||
</strong></p>
|
||
<BLOCKQUOTE>
|
||
Jim,
|
||
I found a viewer for Paperport files on the web and sure enough .max files
|
||
are Paperport format and having downloaded the viewer I have printed the
|
||
manual out.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Sorry to have wasted your time so some extent but at least you know what
|
||
.max files are!!!!
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
regards
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Paul
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- end 20 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/21"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 21 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Accupuncturist Filmaker Hates Fascist MS Products</H3>
|
||
|
||
|
||
<p><strong>From Zombewolf on Mon, 31 Jan 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
Accupuncturist Filmaker Hates Fascist MS Products
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<P><STRONG>
|
||
dear answer guy
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
I'm a keep it simple, I dont like to waste time on computers kind
|
||
of guy. I do very little with a computer because the learning
|
||
curve is too high and software changes version far too frequently
|
||
to allow me to use what I just learned.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
In 1993 I edited many films, commercials, infomertials on AVID
|
||
proprietary mac based machines. Now I'm an accupuncturist with
|
||
minimal computer usage. I draft bills and do some research. Some
|
||
day, when I get rich, I'll make films again ( maybe in 5 or 10
|
||
years).
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
That's an interesting background.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I HATE MICROSOFT AND IT'S FASCIST WINDOWS PRODUCTS.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
This sentiment seems a mite strong for a casual
|
||
computer user. Usually it's the professionals who
|
||
spend 80 hours a week working on this stuff that
|
||
have such seething vehemence.
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I'll buy a computer in March - can I do well with linux or am I
|
||
the wrong profile?
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I hate to see some one driven so much by hatred.
|
||
(O.K. I know that sounded funny, but I mean it).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I'd rather you use Linux because it offered you
|
||
what you wanted, rather than out of unadulterated
|
||
revulsion.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
How to you feel about MacOS?
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
It sounds like Linux or MacOS might fill the bill for
|
||
you. However, you might have a bit of a trick to
|
||
find Linux applications that meet your needs and user
|
||
interface preferences.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
The <A HREF="http://www.gnome.org/">GNOME</A> project is working on GNOfin and GNUcash
|
||
for personal accounting. However I doubt those are
|
||
ready for use as general purpose accounting and
|
||
billing applications. There is the AppGen commercial
|
||
accounting package for Linux (*) which might be
|
||
overkill for your needs.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><UL><LI>
|
||
(<A HREF="http://www.appgen.com/linux.html"
|
||
>http://www.appgen.com/linux.html</A>)
|
||
</UL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Unfortunately there isn't a "Quickbooks" for Linux,
|
||
yet. Here's one place to look for some of the
|
||
financial applications that exist for Linux:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
LinuxStart
|
||
<DD><A HREF="http://www.linuxstart.com/applications/finance.html"
|
||
>http://www.linuxstart.com/applications/finance.html</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... and a couple of my favorites:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
Christopher B. Browne's
|
||
<DD><A HREF="http://www.hex.net/~cbbrowne/finances.html"
|
||
>http://www.hex.net/~cbbrowne/finances.html</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... and
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
Linas Vepstas
|
||
<DD><A HREF="http://linas.org/linux"
|
||
>http://linas.org/linux</A>
|
||
</DL></BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I dont know anyone who uses the os and want to know how to make an
|
||
informed decision.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Thank You
|
||
William Daniels
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
I see by your phone number that you're in the
|
||
415 area code. (As always I've removed all addressing
|
||
and personal information beyond your name from the
|
||
quoted portions of your e-mail; I don't let those get
|
||
published in my column).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You're in the perfect location to visit Linux user's
|
||
groups to meet lots of people who use Linux. You can
|
||
visit SVLUG (<A HREF="http://www.svlug.org"
|
||
>http://www.svlug.org</A>) and BALUG
|
||
(<A HREF="http://www.balug.org"
|
||
>http://www.balug.org</A>) to find out the details about
|
||
when and where the have their meetings.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
SVLUG meets next Wednesday (first Wednesday of every
|
||
month). The February meeting will probably be a bit
|
||
less well attended than usual --- many bay area Linux
|
||
users will be in New York at the LinuxWorld Expo.
|
||
However, there will probably still be over 100 people
|
||
there. (Their meetings are usually twice that).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
BALUG is held on the third Thursday of the month
|
||
at the Four Seas restaurant in San Francisco's
|
||
chinatown.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
You can find out more than you'd ever want to know
|
||
about Bay Area (and Silicon Valley) Linux events at
|
||
<A HREF="http://www.linuxmafia.com/bale"
|
||
>http://www.linuxmafia.com/bale</A>
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Note: Installfests are events where Linux geeks like
|
||
me get together and help new users install Linux
|
||
unto their systems and configure them for your use.
|
||
That's one of the nice benefits of using a free
|
||
operating system --- we can help one another without
|
||
concerns about software piracy interfering with our
|
||
fun).
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 21 -->
|
||
<!-- . . . . . . . . . . . . . . . . . . . -->
|
||
<HR WIDTH="40%" ALIGN="center">
|
||
<!-- begin 21 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Tuesday, Thursday...</H3>
|
||
|
||
|
||
<p><strong>From Tim Moss on Sun, 20 Feb 2000
|
||
</strong></p>
|
||
<P><STRONG>
|
||
Jim Dennis wrote:
|
||
</STRONG></P>
|
||
<!-- ::<BlockQuote>
|
||
Accupuncturist Filmaker Hates Fascist MS Products
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
</BlockQuote>:: -->
|
||
<P><STRONG><FONT COLOR="#000066"><EM>
|
||
BALUG is held on the third Thursday of the month
|
||
at the Four Seas restaurant in San Francisco's
|
||
chinatown.
|
||
</EM></FONT></STRONG></P>
|
||
<P><STRONG>
|
||
Tim Moss says:
|
||
<br>Shouldn't that be 3rd Tuesday?
|
||
</BlockQuote></STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Yep! 3rd Thursday is <a href="http://www.baylisa.org/">BayLISA</a>
|
||
(Bay Area Large Installation Systems Administration: a predecessor
|
||
to <a href="http://www,usenix.org/sage/">SAGE</a>, the SysAdmin's Guild).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I sometimes get them confused, though my PalmPilot
|
||
reminds me of the right meeting dates. I have
|
||
a pair of periodic reminder for each (previous and
|
||
same day for each).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
That's two you've caught me on this month. Want
|
||
a job as "assistant editor"?
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(The pay is non-existent, but we have the benefits to
|
||
match!)
|
||
</BLOCKQUOTE>
|
||
|
||
<em><p>[ Tight deadlines R us! For those who may be wondering who
|
||
this fellow is, he's a work colleague of Jim's who has
|
||
had a chance to see some of these ahead of time. I do
|
||
attempt to clean up little details like that during
|
||
processing. <img src="../gx/dennis/smily.gif" alt=":)"
|
||
align="top">
|
||
<br>-- Heather ]</p></em>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 21 -->
|
||
<!-- .~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~.~~. -->
|
||
<A NAME="tag/22"><HR WIDTH="75%" ALIGN="center"></A>
|
||
<!-- begin 22 -->
|
||
<H3 align="left"><img src="../gx/dennis/qbubble.gif"
|
||
height="50" width="60" alt="(?) " border="0"
|
||
>Installing a POP Daemon on Red Hat Linux</H3>
|
||
|
||
|
||
<p><strong>From Hongwei Li on Mon, 31 Jan 2000
|
||
</strong></p>
|
||
<P><STRONG>
|
||
Hi Jim,
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Thank you very much! I did the following as you advised, but still failed:
|
||
</STRONG></P>
|
||
<!-- ::<BlockQuote>
|
||
Installing a POP Daemon on <A HREF="http://www.redhat.com/">Red Hat</A> Linux
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
</BlockQuote>:: -->
|
||
<P><STRONG><FONT COLOR="#000099"><EM>
|
||
<BR>Hi,
|
||
</EM></FONT></STRONG></P>
|
||
<P><STRONG><FONT COLOR="#000099"><EM>
|
||
<BR>I recently installed RedHat 6.0 and 6.1 on two machines,
|
||
<BR>respectively. Everything looks working except that users can not
|
||
<BR>access their e-mail accounts on these two servers from PC Windows
|
||
<BR>using Netscape Mail or MS Outlook Express although they can access
|
||
<BR>the e-mails using telnet, pine. Apparently, POP3 daemon is not
|
||
<BR>working on these two RH Linux boxes.
|
||
</EM></FONT></STRONG></P>
|
||
<P><STRONG><FONT COLOR="#000099"><EM>
|
||
<BR>Somebody said I can retrieve POP3 daemon from IMAP package. But,
|
||
<BR>I don't know where it is and how to do it. Could you help me?
|
||
<BR>How to check the system if POP3 daemon is installed and working?
|
||
<BR>Where can I get IMAP package and retrieve POP3 daemon, then
|
||
<BR>installed it and let it run? or should I get something else?
|
||
</EM></FONT></STRONG></P>
|
||
<P><STRONG><FONT COLOR="#000099"><EM>
|
||
<BR>I would greatly appreciate your help!
|
||
<BR>Hongwei Li
|
||
</EM></FONT></STRONG></P>
|
||
<blockquote><strong><FONT COLOR="#000066"><EM>
|
||
Your "somebody" is a smart cookie. You sould listen
|
||
to him or her. However, you might ask him (or her) for
|
||
a wee bit more detail.
|
||
</EM></FONT></STRONG></blockquote>
|
||
<P><STRONG>
|
||
-- He/she sent me the first advice, but didn't explain further after I asked
|
||
in more detail. So, I could not do anything until I received your help.
|
||
</STRONG></P>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM>
|
||
Red Hat inexplicably puts their POP and IMAP daemons
|
||
in the same file. You can install them using
|
||
something like the following procedure:
|
||
</EM></FONT></STRONG></blockquote>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM>
|
||
1) Mount your RH Linux CD (disc #1?) using
|
||
a command like:
|
||
</EM></FONT></STRONG></blockquote>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM><BlockQuote><Code>
|
||
mount /mnt/cdrom
|
||
</Code></BlockQuote></EM></FONT></STRONG></blockquote>
|
||
<P><STRONG>
|
||
-- I did it.
|
||
</STRONG></P>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM>
|
||
2) Go to RPM directory using something like:
|
||
</EM></FONT></STRONG></blockquote>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM><BlockQuote><Code>
|
||
cd /mnt/cdrom/Redhat/RPMS
|
||
</code></blockquote></EM></FONT></STRONG></blockquote>
|
||
<P><STRONG>
|
||
-- then, this.
|
||
</STRONG></P>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM>
|
||
3) Install the imap....rpm package using a
|
||
command like:
|
||
</EM></FONT></STRONG></blockquote>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM><BlockQuote><Code>
|
||
rpm -Uvh imap*
|
||
</Code></BlockQuote></EM></FONT></STRONG></blockquote>
|
||
<P><STRONG>
|
||
-- then this as:
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
<tt>rpm -Uvh imap-4.5.3.i386.rpm</tt> (on a RH 6.0 system)
|
||
<br>the screen shows:
|
||
<br><tt>imap ##....#</tt>
|
||
</BlockQuote></STRONG></P>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM>
|
||
... or:
|
||
</EM></FONT></STRONG></blockquote>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM><BlockQuote>
|
||
rpm -i imap*
|
||
</BlockQuote></EM></FONT></STRONG></blockquote>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM>
|
||
That's basically all there is to it. You can
|
||
test for POP installlation/accessibility using a
|
||
command like:
|
||
</EM></FONT></STRONG></blockquote>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM><BlockQuote><Code>
|
||
telnet $TARGET 110
|
||
</Code></BlockQuote></EM></FONT></STRONG></blockquote>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM>
|
||
... where $TARGET is replaced with the hostname or
|
||
IP address of the system on which you hope to find
|
||
a POP server.
|
||
</EM></FONT></STRONG></blockquote>
|
||
<blockquote><STRONG><FONT COLOR="#000066"><EM>
|
||
If you get a "connection refused" or a "connection
|
||
closed by remote host" then you don't have POP installed
|
||
properly on the $TARGET system (or you have a firewall,
|
||
packet filter, or <TT>/etc/hosts.deny</TT> rule between your client
|
||
and the server).
|
||
</EM></FONT></STRONG></blockquote>
|
||
<P><STRONG>
|
||
-- then I try this:
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
<tt>telnet elyback.wustl.edu 110</tt> from that machine (elyback) and another
|
||
Linux system, but got:
|
||
</STRONG></P>
|
||
<Pre><STRONG> Trying 128.252.85.78...
|
||
telnet: Unable to connect to remote host: Connection refused
|
||
</STRONG></Pre>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
It sounds like you have a more basic networking
|
||
problem. Are you sure that you have your IP addresses
|
||
and routes set up correctly?
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Then, I reboot the machine (maybe I don't need to reboot, but enter some
|
||
other command else?), try it again and still get the same message from that
|
||
machine and from another system. I check the <TT>/etc/service</TT> file, it shows
|
||
</STRONG></P>
|
||
|
||
<pre><strong> pop-3 110/tcp # POP version 3
|
||
pop-3 110/udp
|
||
</strong></pre>
|
||
<P><STRONG>
|
||
and the <TT>/etc/hosts.deny</TT> file is empty. We don't have firewall.
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
It's good that you checked that. Actually it's
|
||
possible to put deny rules in the <TT>/etc/hosts.allow</TT>
|
||
file (or vice versa). When I asked Wietse why he
|
||
didn't just change that to <TT>/etc/tcpd.conf</TT> instead of
|
||
having two different files who's names are obviously
|
||
derived from the name of the utility that references
|
||
them (<TT>/sbin/tcpd</TT>).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Remember to ensure that you have valid <TT>/etc/hosts</TT>
|
||
entries for your two systems. Do a search on my
|
||
FAQ or in the Linux Gazette Archives on the string:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BlockQuote>
|
||
"double reverse lookup"
|
||
</BlockQuote></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... for some long explanations on why this is important.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(My first guess would be that you don't have
|
||
proper <TT>/etc/hosts</TT> or DNS PTR records for these, and that
|
||
your copy of TCP Wrappers may be configured (compiled)
|
||
with the -DPARANOID option. Possibly that your
|
||
<TT>/etc/hosts.allow</TT> has a PARANOID directive in it).
|
||
</BLOCKQUOTE>
|
||
<P><STRONG><IMG SRC="../gx/dennis/qbub.gif" ALT="(?)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
So, it seems that the pop3 daemon is still not working. Is there any other
|
||
way to check if it is installed and running after I did the above things?
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Could you give me more advice? Thank you!
|
||
<br>Hongwei
|
||
</STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
The fastest way to get an answer would be to call
|
||
<A HREF="http://www.linuxcare.com/">Linuxcare</A>'s tech support number. However, that is not
|
||
free. You could keep trying to get me enough information
|
||
so that I could find the answer --- but I'm sure you
|
||
understand that this might take a long time (I'll be
|
||
gone in New York all next week, and in Arizona the
|
||
week after that).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
So, if you need this quickly, and are willing to pay
|
||
a little bit to get some handholding consider calling
|
||
888-LIN-GURU. Otherwise I'll need to see the output
|
||
from the following commands:
|
||
</BLOCKQUOTE>
|
||
|
||
<blockquote><pre> script /tmp/answerguy.capture
|
||
ifconfig -a
|
||
route -n
|
||
netstat -an --inet | grep LISTEN
|
||
tail /var/log/messages
|
||
exit
|
||
cd /tmp
|
||
col -b < answerguy.capture > answerguy.txt
|
||
</pre></blockquote>
|
||
<BLOCKQUOTE>
|
||
If you do that correctly you should see a message
|
||
like: "Script done, file is <TT>/tmp/answerguy.capture"</TT>
|
||
and you should find a reasonably clean copy of the
|
||
the captured information in <TT>/tmp/answerguy.txt</TT>
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(The 'script' or "typescript" command is what
|
||
students use to capture there interactive sessions to
|
||
files, so they can print their homework assignments.
|
||
The col -b command "collates out" the backspaces
|
||
and other control characters that might have been
|
||
captured along with the text. The other commands are
|
||
diagnostics and information gathering, ended by the
|
||
exit command to end the typescript session).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I'd need these for both of the machines involved.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Also see if each system can "ping" the other, and
|
||
try running the command:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><BLOCKQUOTE><CODE><BlockQuote>
|
||
tcpdump -n
|
||
</BlockQuote></CODE></BLOCKQUOTE></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... on the server while you are trying to access
|
||
the POP service. You should be able to see the
|
||
packet headers that tcpdump "sees" as the connection
|
||
attempts are made.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
As I say, if you decide to stick with me it could be
|
||
a few weeks before I get back to you (two weeks out
|
||
of town and more time to get caught up with my
|
||
e-mail backup after that.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Of course you can also post this to netnews
|
||
(<a href="news:comp.os.linux.networking">comp.os.linux.networking</a>)
|
||
or you could subscribe to L.U.S.T. (Linux Users Support Team) which
|
||
has a web page at:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
L.U.S.T. Home Page:
|
||
<DD><A HREF="http://www.ch4549.org/lust"
|
||
>http://www.ch4549.org/lust</A>
|
||
</DL></BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
... you can find a list of other support options
|
||
at:
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE><DL><DT>
|
||
Netpedia Linux: Support
|
||
<DD><A HREF="http://smalllinux.netpedia.net/links/support.html"
|
||
>http://smalllinux.netpedia.net/links/support.html</A>
|
||
</DL></BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 22 -->
|
||
<!-- . . . . . . . . . . . . . . . . . . . -->
|
||
<HR WIDTH="40%" ALIGN="center">
|
||
<!-- begin 23 -->
|
||
<H3 align="left"><img src="../gx/dennis/bbubble.gif"
|
||
height="50" width="60" alt="(!) " border="0"
|
||
>More on: Installing a POP Daemon on Red Hat Linux</H3>
|
||
|
||
|
||
<p><strong>From Tim Moss on Sun, 20 Feb 2000
|
||
</strong></p>
|
||
<!-- ::
|
||
More on: Installing a POP Daemon on <A HREF="http://www.redhat.com/">Red Hat</A> Linux
|
||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
:: -->
|
||
<BLOCKQUOTE>
|
||
Tim Moss commented on one reader's apparently unresolved
|
||
problem:
|
||
</BLOCKQUOTE>
|
||
<P><STRONG>
|
||
Have him uncomment pop-3 in his <TT>/etc/inetd.conf.</TT> I believe it is
|
||
commented out by default in current Red Hat distros.
|
||
</STRONG></P>
|
||
<P><STRONG>
|
||
Hongwei wrote:
|
||
</STRONG></P>
|
||
<P><STRONG><FONT COLOR="#000099"><EM>
|
||
Hi Jim,
|
||
<BR>Thank you very much! I did the following as you advised, but still failed:
|
||
<BR>Installing a POP Daemon on Red Hat Linux
|
||
</EM></FONT></STRONG></P>
|
||
<BLOCKQUOTE><IMG SRC="../gx/dennis/bbub.gif" ALT="(!)"
|
||
HEIGHT="28" WIDTH="50" BORDER="0"
|
||
>
|
||
Of course I should have added a "check your inetd.conf"
|
||
check to my instructions.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
I have mixed feelings about this change to Red Hat's
|
||
default <TT>/etc/inetd.conf.</TT>
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
On the one hand I applaud the advance towards better
|
||
security. It's long been a problem in the UNIX world that
|
||
companies leave services enabled and insecurely configured
|
||
in their call avoidance efforts. Doing the "right thing"
|
||
can often result in getting a very large number of technical
|
||
support calls, which translates to EXPENSE for the
|
||
commercial software vendor.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
So it's nice that Red Hat is in a business where they can
|
||
fix problems like this and not worry about the
|
||
consequences.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
On the other hand I think that it is absurd that they
|
||
haven't enhanced their RPM's and package management to
|
||
resolve the issue of configuring (and re-configuring)
|
||
packages as they are installed and/or after the fact.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
This is one of those respects in which I prefer <A HREF="http://www.debian.org/">Debian</A>. If
|
||
I install a Debian POP server it makes sure that the
|
||
inetd.conf is configured to use it. It might ask me if I
|
||
want to add an entry to limit the hosts.allow that are
|
||
allowed to access this service.
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
Of course Red Hat couldn't simply adopt the Debian strategy.
|
||
The Red Hat distributions are geared for an "install
|
||
everything" approach. When I try to make an initial
|
||
"minimal" installation in Red Hat I find that later efforts
|
||
to add packages "as needed" are frought with trips into
|
||
"dependency hell."
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
By contrast Debian excels at the minimal installation.
|
||
Later addition (and removal) of packages is more robust than
|
||
I've seen under any other OS. Dependencies and conflicts
|
||
are handled (mostly automatically).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(At the same time Debian has room for improvement as well.
|
||
I'll save my choice comments for a review of their next
|
||
major release).
|
||
</BLOCKQUOTE>
|
||
<BLOCKQUOTE>
|
||
(Incidentally, any reader that writes to suggest using
|
||
Linuxconf will get an e-raspberry! I won't even comment on
|
||
my experiences with Linuxconf. Ugh!).
|
||
</BLOCKQUOTE>
|
||
|
||
<!-- sig -->
|
||
|
||
|
||
<!-- end 23 -->
|
||
<H4>"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
<P> <hr> <P>
|
||
|
||
<!-- QUICK TIPS SECTION ================================================== -->
|
||
<center>
|
||
<H1><A NAME="tips"><IMG ALIGN=MIDDLE ALT="" SRC="../gx/twocent.gif">
|
||
More 2¢ Tips!</A></H1> <BR>
|
||
Send Linux Tips and Tricks to <A HREF="mailto:gazette@ssc.com">
|
||
gazette@ssc.com
|
||
</A></center>
|
||
|
||
|
||
<!-- BEGIN tips -->
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
<FONT COLOR="navy">Get a weather report on your desktop
|
||
</FONT> </H3>
|
||
Sat, 12 Feb 2000 13:08:03 -0500 (EST)
|
||
<BR>From: Matthew Willis <<A HREF="mailto:matt@optimus.cee.cornell.edu">matt@optimus.cee.cornell.edu></A>
|
||
|
||
<P> On my KDE desktop, I have semi-live satellite images on several of
|
||
the pages. I used cron and wget to get the latest weather for my
|
||
desktop background. Here's how. First I made a couple of directories
|
||
<PRE>
|
||
mkdir ~/weather ~/bin/cron
|
||
</PRE>
|
||
Then in the file ~/bin/cron/hourly.job I did this
|
||
<PRE>
|
||
#!/bin/sh
|
||
W=$HOME/weather
|
||
wget http://www.cis.ec.gc.ca/goes/huron_f.jpg \
|
||
-O $W/goes_huron_f.jpg
|
||
wget http://www.cis.ec.gc.ca/goes/gulf_f.jpg \
|
||
-O $W/goes_gulf_f.jpg
|
||
wget http://sgiot2.wwb.noaa.gov/COASTWATCH/GOES/G8CWNEVS.GIF \
|
||
-O $W/G8CWNEVS.GIF
|
||
</PRE>
|
||
|
||
<P> Then, I made it executable
|
||
<PRE>
|
||
chmod +x ~/bin/cron/hourly.job
|
||
</PRE>
|
||
and set up a crontab entry like this, using
|
||
<PRE>
|
||
crontab -e
|
||
</PRE>
|
||
and creating this line:
|
||
<PRE>
|
||
10 * * * * $HOME/bin/cron/hourly.job >> /tmp/out.h 2>&1
|
||
</PRE>
|
||
then I saved the file and exited.
|
||
|
||
<P> I used 10 minutes after the hour to avoid a race on the hour.
|
||
Finally, you're ready. Give a test with the command:
|
||
<PRE>
|
||
~/bin/cron/hourly.job
|
||
</PRE>
|
||
Did it work? If so, let's set up the window manager. If not, you may
|
||
not have wget installed. (Note- you can snag wget at
|
||
<A HREF="ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/">
|
||
ftp://gnjilux.cc.fer.hr/pub/unix/util/wget/</A>)
|
||
|
||
<P> Setting up your WM:
|
||
|
||
<DL>
|
||
<DT> KDE
|
||
<DD> Use kcontrol to change the wallpaper to ~/weather/*****
|
||
whatever. You probably want "Centred" arrangement, or "maxpect". If
|
||
you uncheck "Common background" you can have different pictures on
|
||
each page.<P>
|
||
|
||
<DT> GNOME
|
||
<DD> With GNOME, use gnomecc to set the background image to
|
||
something in ~/weather/****.<P>
|
||
|
||
<DT>Windowmaker
|
||
<DD> With windowmaker, you can use wmsetbg ~/weather/*****
|
||
to sync a new picture. I'm not too sure you want to do this if you're
|
||
logged out though. You could put the line in your cron job if you
|
||
want. <P>
|
||
</DL>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
<FONT COLOR="navy">Tip: kfmhere
|
||
</FONT> </H3>
|
||
Mon, 21 Feb 2000 22:15:11 -0500
|
||
<BR>From: Pierre Abbat <<A HREF="mailto:phma@oltronics.net">phma@oltronics.net></A>
|
||
|
||
<P> Here's a shell script to do the opposite of kfm's File|Open Terminal.
|
||
|
||
<PRE>
|
||
#!/bin/sh
|
||
# Opens a kfm window in the current directory.
|
||
kfmclient openURL `pwd`
|
||
</PRE>
|
||
|
||
<P> I put it in /opt/kde/bin/kfmhere .
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
<FONT COLOR="navy">Info-search tips for Midnight Commander users
|
||
</FONT> </H3>
|
||
Mon, 31 Jan 2000 14:57:13 -0800
|
||
<BR>From: Ben Okopnik <<A HREF="mailto:fuzzybear@pocketmail.com">fuzzybear@pocketmail.com></A>
|
||
|
||
<P> Funny thing; I was just about to post this tip when I read Matt Willis' "HOWTO searching script" in LG45. Still, this script is a good bit more flexible (allows diving into subdirectories, actually displays the HOWTO or the document whether .gz or .html or whatever format, etc.), uses the Bash shell instead of csh (well, _I_ see it as an advantage <grin>...), and reads the entire /usr/doc hierarchy - perfect for those times when the man page isn't quite enough. I find myself using it about as often as I do the 'man' command.
|
||
|
||
<P> You will need the Midnight Commander on your system to take advantage of this (in my opinion, one of the top three apps ever written for the Linux console). I also find that it is at its best when used under X-windows, as this allows the use of GhostView, xdvi, and all the other nifty tools that aren't available on the console.
|
||
|
||
<P> <A HREF="misc/tips/doc.sh.txt">Here's the script.</A>
|
||
|
||
<P> To use it, type (for example)
|
||
|
||
<PRE>
|
||
doc xl
|
||
</PRE>
|
||
|
||
<P> and press Enter. The script will respond with a menu of all the /usr/doc subdirs beginning with 'xl' prefixed by menu numbers; simply select the number for the directory that you want, and the script will switch to that directory and present you with another menu. Whenever your selection is an actual file, MC will open it in the appropriate manner - and when you exit that view of it, you'll be presented with the menu again. To quit the script, press 'Ctrl-C'.
|
||
|
||
<P> A couple of built-in minor features (read: 'bugs') - if given a nonsense number as a selection, 'doc' will drop you into your home directory. Simply 'Ctrl-C' to get out and try again. Also, for at least one directory in '/usr/doc' (the 'gimp-manual/html') there is simply not enough scroll-back buffer to see all the menu-items (526 of them!). I'm afraid that you'll simply have to switch there and look around; fortunately, MC makes that relatively easy!
|
||
|
||
<P> Oh, one more MC tip. If you define the 'CDPATH' variable in your .bash_profile and make '/usr/doc' one of the entries in it, you'll be able to switch to any directory in that hierarchy by simply
|
||
typing 'cd <first_few_letters_of_dir_name>' and pressing the Tab key for completion. Just like using 'doc', in some ways...
|
||
|
||
<P> Hope this is of help.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Triple booting
|
||
</FONT> </H3>
|
||
Mon, 14 Feb 100 11:51:22 Australia/NSW
|
||
<BR>From: Harry <<A HREF="mailto:hfphillips@iname.com">hfphillips@iname.com></A>
|
||
|
||
<P> In a recent two cent tip there was a suggestion to use NT loader to triple
|
||
boot, I have another method use lilo.
|
||
|
||
<P> Install all three OS'es, the order I did it, Win95(FAT32), NT4(NTFS) then linux
|
||
(ext2).
|
||
|
||
<P> Edit lilo.conf and add the following sections:
|
||
|
||
<PRE>
|
||
# Windows 95 stanza
|
||
other=/dev/hda1
|
||
table=/dev/hda
|
||
label=windows
|
||
# End Windows 95 stanza
|
||
|
||
# Windows NT stanza
|
||
other=/dev/hda2
|
||
table=/dev/hda
|
||
loader=/boot/os2_d.b
|
||
label=NT
|
||
# End Windows NT stanza
|
||
</PRE>
|
||
|
||
<P> Then run lilo and when you can select between the three of them. If you select
|
||
NT it then comes up with the NT loader. I have set this to appear for 0 seconds
|
||
so that it starts straight away instead of having a menu.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- END tips -->
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<H4><font color="maroon">
|
||
Tips in the following section are answers to questions printed in the Mail
|
||
Bag column of previous issues.
|
||
</font></H4>
|
||
|
||
<!-- BEGIN tips.answers -->
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Re: Driver for ATI Xpert @ Work PCI card (from LinuxGazette)
|
||
</FONT> </H3>
|
||
Tue, 2 Feb 1999 09:25:01 +0000
|
||
<BR>From: Jan-Hendrik Terstegge <<A HREF="mailto:helge@jhterstegge.de">helge@jhterstegge.de></A>
|
||
|
||
<P> Hi Mike!
|
||
|
||
<P> In LinuxGazette #50 you wrote:
|
||
<BLOCKQUOTE>
|
||
I'm new user and believer of the Linux OS and I need help badly. I'm
|
||
looking for a driver for an ATI Xpert@Work 8Mb PCI card. Where can I get it?
|
||
I'm using a RedHat 5.2 and my monitor is a Mitsubishi Diamond Scan model
|
||
FA3415AT4 [...]
|
||
</BLOCKQUOTE>
|
||
Configure your display with the help of 'XF86Setup' (you have to write it as
|
||
I do, with upper and lower cased letters), or, if it doesn't run the
|
||
'xf86config' program.
|
||
Try to find your ATI Card, and if you don't, use simply SVGA. Most of cards
|
||
which are not listed are standard SVGA Cards (my Matrox Millenium G200 also),
|
||
and they run very well with the SVGA driver.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Overclocking a Motherboard? 233Mhz to 450Hmz? (AnswerGuy Gazette issue
|
||
50)
|
||
</FONT> </H3>
|
||
Wed, 02 Feb 2000 10:54:51 -0500
|
||
<BR>From: R. Smith <<A HREF="mailto:rsmith13@tampabay.rr.com">rsmith13@tampabay.rr.com></A>
|
||
|
||
<BLOCKQUOTE>
|
||
<P> Overclocking a Motherboard? 233Mhz to 450Hmz?
|
||
|
||
<P> From Steve on Fri, 07 Jan 2000
|
||
|
||
<P> I have a motherboard in my PC that says it has a max processor speed of 233mhz, i did'nt know this when i resently purchased a 450mhz CPU. Is
|
||
there any way i can override this issue, my max bus speed is 66.
|
||
|
||
<P> I wouldn't recommend it. Bare motherboards are not very expensive so you should be able to pick up one for about a $100 or less
|
||
that will take the CPU that you got and still allow you to pull in your old DIMMs, and adapter cards from the existing system.
|
||
|
||
<P> Of course I'd double check the RAM (DIMMs, SIMMs or whatever you've got) and make sure it is fast enough that you aren't wasting the
|
||
investment in the new CPU.
|
||
|
||
<P> Personally I don't recommend CPU upgrades at all. I suggest that people buy the CPU, motherboard, and RAM together, and get them
|
||
matched to one another. Also it is quite unlikely that you applications are actually CPU bound. Your CPU investment would probably have
|
||
been better spent in extra RAM or a faster controller.
|
||
|
||
<P> As you say your current motherboard's bus speed is only 66Mhz. You probably want a motherboard that runs at closer to 100Mhz (at least
|
||
PC100 RAM). You don't want the CPU sitting there waiting for its own RAM all the time.
|
||
|
||
</BLOCKQUOTE>
|
||
<P> Sometimes it can be done! I just managed to get my old DFI 586STC Rev
|
||
D+ motherboard to run an AMD k6-2/400.
|
||
|
||
<P> The jumper settings for the cpu voltage only went down to 2.5v The K6-2
|
||
needs 2.2v. There are three jumpers used to set voltage. I noticed a
|
||
binary pattern to the settings suggesting that there are undocumented
|
||
settings for: 2.4-2.0v. Following this pattern, I set the jumper for
|
||
what should be 2.2v. I installed a K6/300 and turned on the computer.
|
||
It fired up fine. I let it run a while and the cpu stayed cool. I now
|
||
had a K6/300 running but the bios was saying it was a MMX processor at
|
||
50mhz. It was running at 300mhz: Bogomips was 597 which is what it
|
||
should be for a K6/300. The K6-2/400 will run at 6x (66mhz times 6x 396mhz) when the multiplier jumpers are set to 2x. I tried that and it
|
||
was no go. She wouldn't boot. I put the K6/300 back in and reset the
|
||
multiplier jumpers to 4.5x. I went to DFI's web page and downloaded the
|
||
latest bios. I flashed the new bios and success, the cpu was now
|
||
recognized as a K6/300. So, I put the K6-2/400 back in and set the
|
||
jumpers back to 2x. Success again! My old DFI motherboard is now
|
||
running at 400mhz. I have SUSE 6.3 on it and it seems rock stable. With
|
||
a K6-2/400 selling for under $50 I don't see this as a bad day's work.
|
||
However, I WAS prepared to suffer the consequences if this project had
|
||
failed! The motherboard was old, retired from service and failure
|
||
wouldn't have been that great a lost.
|
||
|
||
<P> -- <BR>
|
||
Rick in Tampa
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Re: Help request send to Linux Gazette
|
||
</FONT> </H3>
|
||
Wed, 2 Feb 2000 17:21:23 -0600 (CST)
|
||
<BR>From: Michael P. Plezbert <<A HREF="mailto:plezbert@cs.wustl.edu">plezbert@cs.wustl.edu></A>
|
||
|
||
|
||
<P> These are not strictly linux questions, but I'll answer them anyway. :)
|
||
|
||
<P> On Sun, 16 Jan 2000, Wei Huang wrote
|
||
<A HREF="../issue50/lg_mail50.html">(in issue50)</A>:
|
||
|
||
<BLOCKQUOTE>
|
||
<P> sir, I need some help.
|
||
|
||
<P> Question1,
|
||
|
||
<P> I wrote a program of showing the contents of other program on the
|
||
platform of LINUX,the compiler is g++, but got problems in statement 1
|
||
and statement 2.
|
||
|
||
<P> First,I want to show the sentence in statement 1 ahead of the body
|
||
of file being showed,but it can't appear in the proper position.I mean
|
||
I want the program running like this:
|
||
|
||
|
||
</BLOCKQUOTE>
|
||
<P> This is caused by buffering being done in the C++ stream library. To get
|
||
the result you desire, you just need to flush the stream before writing
|
||
directly to stdout. In other words, just put the statement
|
||
"cout.flush();" right after statement 1.
|
||
|
||
|
||
<BLOCKQUOTE>
|
||
<P> I don't why,how can it be corrected. Second,I had believed the
|
||
statement 2 is illegal in grammar.Because if you define an array, char
|
||
buffer[BufferSize] ,the BufferSize indicate the number of elements in
|
||
array and should be a constant or at least be a const variable,and it
|
||
can't be a variable, otherwise the program cann't be compiled. But the
|
||
fact is this program is compiled smoothly and functions normally. What
|
||
is wrong?
|
||
</BLOCKQUOTE>
|
||
<P> ANSI C++ does not allow this, but g++ does. If you run g++ with the
|
||
"-pedantic" flag, it will issue a warning about that statement.
|
||
|
||
|
||
<BLOCKQUOTE>
|
||
<P> Question 2, I write a c program. But when compiling, gcc reports
|
||
that all the functions with "vga_" profix are undefined,what is the
|
||
problem? I had included "vga.h" in my programe as indicated in "man"
|
||
help on the usage of either "vga_" function.
|
||
</BLOCKQUOTE>
|
||
<P> You need to link with the vga library. Just include the flag "-lvga" when
|
||
running g++.
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">C Programming hints
|
||
</FONT> </H3>
|
||
Mon, 14 Feb 2000 10:27:02 -0500
|
||
<BR>From: Curly <<A HREF="mailto:ocurtin@usa.net">ocurtin@usa.net></A>
|
||
|
||
<P> Wei Huang did write an email asking:
|
||
|
||
<BLOCKQUOTE>
|
||
<P> I want to show the sentence in statement 1 ahead of the body
|
||
|
||
</BLOCKQUOTE>
|
||
<P> The two statements in your code:
|
||
<PRE>
|
||
cout<<"\nThis is the body of file.\n";
|
||
</PRE>
|
||
and
|
||
<PRE>
|
||
write(1,buffer,sizeof(buffer));
|
||
</PRE>
|
||
|
||
<P> are using two different methods of writing to the terminal.
|
||
|
||
<P> The C++ statement "cout" uses a buffer inside your program to
|
||
collect individual output statements into a larger block. When
|
||
your program writes "\nThis is the body of file.\n" the first
|
||
time, it goes into the buffer. When it writes the same line
|
||
again,
|
||
it gets added to the buffer. Finally, when your program ends (or
|
||
if the buffer gets full) then the contents of the buffer are sent
|
||
to the screen.
|
||
|
||
<P> The kernel call "write" has very different behavior. This uses
|
||
the method that cout uses when it writes the buffer to the screen.
|
||
When you call "write", your program does not continue until the
|
||
data has been written.
|
||
|
||
<P> Since the "cout" library call buffers data inside your program
|
||
and the "write" kernel call does not, then the strings you "write"
|
||
will usually arrive on your screen before the strings you "cout".
|
||
|
||
<P> The solution is to use one method for writing strings throughout
|
||
your program rather than mix different methods. For almost all
|
||
programs, "cout" is a better choice than "write". Do some more
|
||
reading about the C/C++ library. A good place to start is your
|
||
Linux system, where you can type `info libc`.
|
||
|
||
<P> In your second question:
|
||
|
||
<BLOCKQUOTE>
|
||
gcc reports that all the functions with "vga_"
|
||
profix are undefined,
|
||
|
||
</BLOCKQUOTE>
|
||
<P> the message "undefined reference to ..." comes from the linking
|
||
phase of the compile. That is, the compiler has already
|
||
translated your code into machine language, and is now trying
|
||
to find the library routines needed to run the program. Vga
|
||
programming is not a standard thing, so you have to tell the
|
||
compiler which library to look into. Add the compiler option
|
||
"-lvga" to your command line.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Re: Upgrading to shadow passwords
|
||
</FONT> </H3>
|
||
Wed, 2 Feb 2000 17:31:56 -0600 (CST)
|
||
<BR>From: Michael P. Plezbert <<A HREF="mailto:plezbert@cs.wustl.edu">plezbert@cs.wustl.edu></A>
|
||
|
||
|
||
<P> On Fri, 28 Jan 2000, oliver cameron wrote:
|
||
|
||
<BLOCKQUOTE>
|
||
I am running RH 4.2 and I need to convert my existing etc/passwords file
|
||
to the shadow passwords format used on a new RH 6.1 installation. Can
|
||
anyone give me a simple explanation of how to do this? Any help would be
|
||
greatly appreciated.
|
||
|
||
Many thanks in advance, Oliver.
|
||
</BLOCKQUOTE>
|
||
|
||
<P> Redhat 6.1 comes with utilities for converting to and from shadow files.
|
||
|
||
<P> "man pwconv" should give you a description.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">dual booting NT and linux
|
||
</FONT> </H3>
|
||
Thu, 03 Feb 2000 22:30:06 +0000
|
||
<BR>From: Clive Wright <<A HREF="mailto:clive_wright@telinco.co.uk">clive_wright@telinco.co.uk></A>
|
||
|
||
<P> I am not familiar with Norton Ghost; however I have been
|
||
successfully dual booting NT 4 and versions of linux
|
||
(currently Redhat 6.0) for the past year.
|
||
|
||
<P> First let me refer you to the excellent article on
|
||
multibooting by Tom de Blende in issue 47 of LG. Note step
|
||
17. "The tricky part is configuring Lilo. You must keep Lilo
|
||
OUT OF THE MBR! The mbr is reserved for NT. If you'd install
|
||
Lilo in your mbr, NT won't boot anymore".
|
||
|
||
<P> As your requirements are quite modest they can easily be
|
||
accomplished without any third party software ie.
|
||
"Bootpart".
|
||
|
||
<P> If NT is on a Fat partition then install MSdos and use the
|
||
NT loader floppy disks to repair the startup environment. If
|
||
NT is on an NTFS partition then you will need a Fat
|
||
partition to load MSdos. Either way you should get to a
|
||
stage where you can use NT's boot manager to select between
|
||
NT and MSdos.
|
||
|
||
<P> Boot into dos and from the dos prompt: "copy bootsect.dos
|
||
*.lux".
|
||
|
||
<P> Use attrib to remove attributes from boot.ini "attrib -s -h
|
||
-r boot.ini" and edit the boot.ini file; after a line
|
||
similar to C:\bootsect.dos="MS-DOS v6.22" add the line
|
||
C:\bootsect.lux="Redhat Linux".
|
||
|
||
<P> Save the edited file and replace the attributes.
|
||
|
||
<P> At the boot menu you should now have four options: two for
|
||
NT (normal and vga mode) and one each for msdos and Linux.
|
||
To get the linux option to work you will have to use
|
||
redhat's boot disk to boot into Linux and configure Lilo.
|
||
Log on as root and use your favorite text editor to edit
|
||
/etc/lilo.conf. Here is a copy of mine:
|
||
|
||
<PRE>
|
||
boot=/c/bootsect.lux
|
||
map=/boot/map
|
||
install=/boot/boot.b
|
||
prompt
|
||
timeout=1
|
||
image=/boot/vmlinuz-2.2.14
|
||
label=linux
|
||
root=/dev/hda5
|
||
read-only
|
||
</PRE>
|
||
|
||
<P> It can be quite minimal as it only has one operating system
|
||
to boot; there is no requirement for a prompt and the
|
||
timeout is reduced to 1 so that it boots almost immediately
|
||
without further user intervention. If your linux root
|
||
partition is not /dev/hda5 then the root line will require
|
||
amendment.
|
||
|
||
<P> I mount my MSdos C: drive as /c/ under linux. I am sure
|
||
this will make some unix purists cringe but I find C: to /c
|
||
easy to type and easy to remember. If you are happy with
|
||
that; then all that is required is to create the mount
|
||
point, "mkdir /c" and mount the C: drive. "mount -t msdos
|
||
/dev/hda1 /c" will do for now but you may want to include
|
||
/dev/hda1 in /etc/fstab so that it will automatically
|
||
mounted in the future; useful for exporting files to make
|
||
them available to NT.
|
||
|
||
<P> Check that /c/bootsect.lux is visible to Linux "ls
|
||
/c/bootsect*"
|
||
|
||
<PRE>
|
||
/c/bootsect.dos /c/bootsect.lux
|
||
</PRE>
|
||
|
||
<P> Then run "lilo"
|
||
|
||
<PRE>
|
||
Added linux *
|
||
</PRE>
|
||
|
||
<P> Following an orderly shutdown and reboot you can now select
|
||
Redhat Linux at NT's boot prompt and boot into Linux.
|
||
I hope you find the above useful.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Linux-compatible modems.
|
||
</FONT> </H3>
|
||
Fri, 4 Feb 2000 04:24:19 -0800 (PST)
|
||
<BR>From: Ron Poulton <<A HREF="mailto:thok@surrey1.bc.wave.home.com">thok@surrey1.bc.wave.home.com></A>
|
||
|
||
<P> Any modem that is not a WinModem is Linux-compatible, in a nutshell. Why?
|
||
|
||
<P> A normal modem has two components:
|
||
|
||
<UL>
|
||
<LI> the basic analog-to-digital conversion to convert whatever you want to
|
||
send or receive into signals that can be sent on a phone line.
|
||
<LI>extra junk due to compression (to make it transfer at 56K like it should),
|
||
error correction (so that your download doesn't end up messed up due to
|
||
phone line problems), interpreting commands and other neat things.
|
||
</UL>
|
||
|
||
<P> WinModems (or "software based modems") require that your dialer program
|
||
handle the second part up there about compression and error correction. This
|
||
means that the manufacturer only has to implement the first feature, and
|
||
therefore means it's cheaper to produce. MUCH cheaper.
|
||
|
||
<P> Although there are whispers in the shadows about future WinModem compatibility
|
||
within Linux, this feature doesn't exist. It's always better to go for a
|
||
hardware-based modem anyway, because that means your dialer doesn't have to
|
||
do all the work, which means your programs may run faster.
|
||
|
||
<P> This entails the basics. Check out http://www.56k.com/winmodem.shtml for more
|
||
technical information.
|
||
|
||
<P> Again, if it's not a WinModem, it's Linux compatible. I use an Aopen 56K
|
||
modem and it works beautifully.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">samba, sharing home directories article
|
||
</FONT> </H3>
|
||
Fri, 4 Feb 2000 09:04:30 -0500 (EST)
|
||
<BR>From: F D Jones <<A HREF="mailto:mrj@magicnet.net">mrj@magicnet.net></A>
|
||
|
||
|
||
<P> fyi -
|
||
|
||
<P> For small networks that include both encrypted and
|
||
unencrypted password clients (wfwg3.1, 95, 98, nt), you can
|
||
customize the [global] settings on a machine-by machine basis to
|
||
accommodate both.
|
||
|
||
<P> If the majority of your systems are encrypted, but you have
|
||
two exceptions maca and macb, set up your smb.conf to use encrypted
|
||
passwords in the [global] section, then, also in your [global]
|
||
section put the following:
|
||
|
||
<PRE>
|
||
include = /usr/local/samba/lib/smb.conf.%m
|
||
</PRE>
|
||
|
||
<P> Then create mini-configs /usr/local/samba/lib/smb.conf.maca
|
||
and /usr/local/samba/lib/smb.conf.macb which contain
|
||
<PRE>
|
||
[global]
|
||
encrypt passwords = no
|
||
</PRE>
|
||
|
||
|
||
<P> Now all machines on the network will connect with samba
|
||
using encrypted passwords EXCEPT maca and macb.
|
||
|
||
<P> If the majority of systems on your network are unencrypted,
|
||
do the reverse, setting the smb.conf global encryption off and
|
||
using encryption on a machine-by-machine basis.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">2 cents entry: Microsoft Cordless Wheel Mouse
|
||
</FONT> </H3>
|
||
Sun, 6 Feb 2000 14:54:20 -0500 (EST)
|
||
<BR>From: Lee Sonko <<A HREF="mailto:sp1@swiftmail.com">sp1@swiftmail.com></A>
|
||
|
||
|
||
<P> Getting a PS/2 Microsoft Cordless Wheel Mouse working correctly under X-windows
|
||
takes a litte bit of tweaking.
|
||
|
||
<P> In the Pointer Section of /etc/X11/XF86Config, set the following:
|
||
|
||
<PRE>
|
||
Protocol "MouseSystems"
|
||
Device "/dev/gpmdata"
|
||
</PRE>
|
||
|
||
<P> Then, make your gpm start like so:
|
||
<PRE>
|
||
gpm -R -t imps2
|
||
</PRE>
|
||
|
||
<P> You should be all set.
|
||
|
||
<P> To explain:
|
||
-gpm's "-t imps2" option reads the mouse input as if it were a "Microsoft
|
||
Intellimouse (ps2) - 3 buttons, wheel unused".
|
||
-Then gpm's "-R" option pushes mouse output to /dev/gpmdata in the
|
||
"MouseSystems" format.
|
||
-So you have to set X-windows to read the new device in the new format.
|
||
|
||
|
||
<P> You can also control mouse speed and acceleration and other things from
|
||
gpm. Check it out.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Norton Ghost/LILO problem
|
||
</FONT> </H3>
|
||
Mon, 7 Feb 2000 11:43:36 +0100
|
||
<BR>From: <<A HREF="mailto:irado@unforgettable.com">irado@unforgettable.com></A>
|
||
|
||
|
||
<P> Ted Wood <ted_wood@hotmail.com> asked:
|
||
<BLOCKQUOTE>
|
||
I'm trying to create a dual boot image with Redhat and NT Workstation. I'm
|
||
using Norton ghost version 6 to create the image. It will ghost fine but
|
||
after ghosting, lilo comes up as "LI" only. The problem is fixable by
|
||
booting to the Linux floppy and rerunning Lilo which rewrites the mbr. After
|
||
that everything is great, but why won't Lilo work properly the first time?
|
||
I've searched Symantec's page and I've tried the switches but they all
|
||
result in the same problem. Please Help!
|
||
</BLOCKQUOTE>
|
||
|
||
<P> it is better to use the Fips32 - available from your /dosutils distro
|
||
cd-rom. Please, *read carefully* all instructions there - it can damage
|
||
your data (and will surely do it) if not adequately utilized.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Win95-Linux small network with null modem
|
||
</FONT> </H3>
|
||
Mon, 7 Feb 2000 11:48:28 +0100
|
||
<BR>From: <<A HREF="mailto:irado@unforgettable.com">irado@unforgettable.com></A>
|
||
|
||
|
||
<P> Wagner Perlino <wagner.perlino@edb.ericsson.se> asks:
|
||
<BLOCKQUOTE>
|
||
I am trying to build a small network at home with one Linuxbox and another
|
||
Win95/Win98 box. I have no printer, but I would like to share files and use
|
||
my Linuxbox as a gateway to the internet so that both boxes can use one
|
||
single dial-up connection AT THE SAME time. Is there any link or suggestion
|
||
for this type of connection ?
|
||
</BLOCKQUOTE>
|
||
|
||
hmm.. suggest you to buy 2 nic's. Even a good tulip 10/100 is cheap.
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Partiton Magic 5.0 and Linux Installation
|
||
</FONT> </H3>
|
||
Mon, 7 Feb 2000 11:59:06 +0100
|
||
<BR>From: <<A HREF="mailto:irado@unforgettable.com">irado@unforgettable.com></A>
|
||
|
||
|
||
<P> <abc@abc.com> asks:
|
||
<BLOCKQUOTE>
|
||
<P> I have a new DELL with 13 GB hard-disk running windows98 second edition.
|
||
|
||
<P> I bought Partition Magic 5.0 to create couple logical drives and Linux
|
||
Native and Swap Partitions.
|
||
|
||
<P> I am trying to install RedHat 5.2 using a bootable disk and a CD -ROM.
|
||
|
||
<P> For some reason, neither disk-druid nor fdisk (in-built) recognizes my
|
||
Logical Partitions.
|
||
|
||
<P> On the Blue screen (driver information) it says:
|
||
|
||
<PRE>
|
||
/hda1 <size> Win95 FAT 32
|
||
/hda2 <size = 13 GB - size of C drive> 0x0f (blank in type field)
|
||
</PRE>
|
||
|
||
<P> That means, the installation process does not know there are couple of
|
||
Logical Drives and also a Linux Native and a Swap Partitons. What does 0x0f
|
||
type means ?
|
||
|
||
<P> fdisk however shows there are partitions on MS-DOS propmt but installation
|
||
program can not recognize them !
|
||
|
||
<P> Is there anything I am doing wrong ? Any suggestions ?
|
||
</BLOCKQUOTE>
|
||
|
||
<P> friend:
|
||
|
||
<P> a) linux doesnot work on fat32 - neither NT, btw ;-)
|
||
|
||
<P> b) first convert all your hd to fat16. As it means that you will lost all
|
||
of your data, first make a good backup
|
||
|
||
<P> c) with fdisk (M$-dos) make a single partition for your win-xx. The
|
||
remaining hd must be ignored.
|
||
|
||
<P> d) try again with cfdisk or d-druid.
|
||
|
||
<P> ah: throw the Partition magic thing. If needing, use fips
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">re:Question
|
||
</FONT> </H3>
|
||
Mon, 7 Feb 2000 12:10:16 +0100
|
||
<BR>From: <<A HREF="mailto:irado@unforgettable.com">irado@unforgettable.com></A>
|
||
|
||
|
||
<P> Dina Yazbeck <dina.yazbeck@spacecom1.com> asks:
|
||
<BLOCKQUOTE>
|
||
I am basically trying to host a domain and have all the e-mails of the users
|
||
of this domain (remotedomain.com) sent to one particular Mailbox (such as
|
||
remotedomain@myisp.net). This is straightforward. Assuming that the remote
|
||
domain machine (LINUX) polls the ISP server. What is the procedure to use to
|
||
retrieve this mail and distribute it to the respective mailboxes of the
|
||
users? Do I have to use procmail? Is fetchmail sufficient for distributing
|
||
the mail? Waiting for your reply.
|
||
</BLOCKQUOTE>
|
||
|
||
<P> There is a very good
|
||
<A HREF="../issue45/pollman/mail.html">article</A> on this matter from j.pollmann:
|
||
linux gazette, issue 45. Also read the FAQ's at
|
||
<A HREF="http://www.sendmail.org">www.sendmail.org</A>, where
|
||
you will find many tips and hints on this. Also your distribution (howto/mini)
|
||
must have something about - think that it is called "queue mail" or something
|
||
similar there.
|
||
|
||
<P> Here things are working 100%, *after* I followed the a.m. instructions.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">re: 2 quick questions
|
||
</FONT> </H3>
|
||
Mon, 7 Feb 2000 12:15:41 +0100
|
||
<BR>From: <<A HREF="mailto:irado@unforgettable.com">irado@unforgettable.com></A>
|
||
|
||
|
||
<P> glitch <pidpot@freewwweb.com> asks:
|
||
<BLOCKQUOTE>
|
||
I would like to ask for a QUALITY set of general instructions on how
|
||
to install things i download off the internet such as
|
||
</BLOCKQUOTE>
|
||
|
||
<P> just use webmin (www.wbmin.com). It is GREAT, and will administer
|
||
EVERYTHING in your box (and network), including samba and NIS.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Foreign-language questions
|
||
</FONT> </H3>
|
||
Mon, 7 Feb 2000 13:46:00 -0700
|
||
<BR>From: Simeon ben Nevel <<A HREF="mailto:snevel@sonic.net">snevel@sonic.net></A>
|
||
|
||
<P> Gabriel Ramiro Ferro <gferro@gamma.com.ar> wrote:
|
||
<BLOCKQUOTE>
|
||
<P> Subject: Desde Argentina
|
||
|
||
<P> Perdón pero no manejo el ingles, lo que desearía es que me
|
||
informen como adquirir los CD de Linux en forma gratuita Desde ya
|
||
muchas gracias.
|
||
</BLOCKQUOTE>
|
||
|
||
<P> Babelfish translation:
|
||
<BLOCKQUOTE>
|
||
<P> Subject: From Argentina
|
||
|
||
<P> Pardon but nonhandling ingles, which would wish is that they inform
|
||
to me like free acquiring the CD of Linux From already
|
||
|
||
thank you very much.
|
||
|
||
</BLOCKQUOTE>
|
||
<P> Just for grins, I decided to run <A HREF="http://babelfish.altavista.com/">
|
||
babelfish</A>
|
||
on Gabriel's letter to the LinuxGazette. While Babelfish doesn't do
|
||
a very "good" translation, you can usually get the gist of the message.
|
||
|
||
<P> Gabriel and I have since exchanged a number of e-mails all translated thru
|
||
babelfish.
|
||
|
||
<P> I found a number of Spanish language Linux resources and no less than 3
|
||
Argentine LUGs that I pointed him to.
|
||
|
||
<P> A copy of the latest Linux/Redhat/Mandrake distribution is on its way to
|
||
him.
|
||
|
||
<P> Trying to help someone when there is no language in common was a fun and
|
||
enlightening experience. I hope other Gazetteers give it a try!
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Re: Screen "Camera" for linux
|
||
</FONT> </H3>
|
||
Thu, 10 Feb 2000 10:53:52 -0700 (MST)
|
||
<BR>From: Michael J. Hammel <<A HREF="mailto:mjhammel@graphics-muse.org">mjhammel@graphics-muse.org></A>
|
||
|
||
<P> Thus spoke Shawn Medero
|
||
<BLOCKQUOTE>
|
||
It captures motion on the computer desktop . .basically multiple
|
||
screen-captures tied together to form a movie of sorts. Primarly one would
|
||
use to create training demostrations on linux applications, etc.
|
||
</BLOCKQUOTE>
|
||
|
||
<P> Sorry to take so long to get back to you. I was out of town.
|
||
|
||
<P> I don't know of anything that does this for Linux, although there were some
|
||
tools for Unix/Motif that did so. I haven't looked at them for quite some
|
||
time and can't find any notes on what they were called. My suggestion is
|
||
to look at http://www.motifzone.com/. There may be some links there to
|
||
help.
|
||
|
||
<P> The problem, of course, is that these tools will work well with Motif, but
|
||
not with Gtk or any of the popular Linux desktops (GNOME, KDE, etc). This
|
||
is just one area that hasn't been addressed yet by the Linux marketplace.
|
||
|
||
<P> At least I don't *think* they will work with Gtk. They work on low level X
|
||
events, but don't know how they deal with widget sets, window managers and
|
||
desktop environments.
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Re: Modems
|
||
</FONT> </H3>
|
||
Tue, 22 Feb 2000 21:48:30 +0100 (CET)
|
||
<BR>From: Roland Smith <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
|
||
|
||
|
||
<BLOCKQUOTE>
|
||
I am a new user to Linux (Red Hat 6.0). I am currently dual booting
|
||
between Windows 95 and Linux and I have a 56K winmodem install. I have
|
||
not been able to get this modem to work under Linux. Can you suggest a
|
||
good modem to upgrade to? Preferably one that will work under both my
|
||
Linux and Windows installations.
|
||
|
||
</BLOCKQUOTE>
|
||
<P> The only modem that is certain to work is an external one, connected via a
|
||
serial cable.
|
||
|
||
<P> Otherwise a internal ISA (not PCI!) modem might work, preferably not a
|
||
plug-and-pray model. If you can get a modem that can be configured via
|
||
dip-switches, that should work.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Re: Users required to enter root-password? Red Hat 6.1
|
||
</FONT> </H3>
|
||
Tue, 22 Feb 2000 22:01:01 +0100 (CET)
|
||
<BR>From: Roland Smith <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
|
||
|
||
|
||
<BLOCKQUOTE>
|
||
<P> I have just installed version 6.1 and set up my modem to dial out to my
|
||
ISP. However, when I log on as a user and press KDE->Internet->kppp a
|
||
pop-up box opens up and wants me to enter the root-password! This does
|
||
not seem right. is there a way to avoid having to enter the root pass
|
||
word when logged on as a non-root user?
|
||
|
||
</BLOCKQUOTE>
|
||
<P> This is probably related to the permissions of the serial port that your
|
||
modem is using.
|
||
|
||
<P> For instance my modem is /dev/modem. This is a symbolic link:
|
||
|
||
<PRE>
|
||
rsmith@aragorn:~$ ls -l /dev/modem
|
||
lrwxrwxrwx 1 root root 10 Nov 28 1998 /dev/modem -> /dev/ttyS2
|
||
</PRE>
|
||
|
||
<P> Now for the permissions on this device:
|
||
|
||
<PRE>
|
||
rsmith@aragorn:~$ ls -l /dev/ttyS2
|
||
crw-r----- 1 root dialout 4, 66 Feb 22 21:24 /dev/ttyS2
|
||
</PRE>
|
||
|
||
<P> So only the owner [root] has read/write acess [cRW-r-----], and the group
|
||
has read access [crw-R-----]. Your setup is probably similar.
|
||
|
||
<P> So you can do a chmod (see `man chmod') to grant wider access to the
|
||
device. This can be done in two ways.
|
||
|
||
<P> - You can give read/write access to the group that owns the device (in my
|
||
case dialout), and make yourself a member of the relevant
|
||
group.
|
||
- Alternatively you can give read/write access to everybody.
|
||
|
||
<P> Both of these approaches have security implications on a multi-user
|
||
machine.
|
||
|
||
<P> Another approach could be to make pppd setuid root. That means that pppd
|
||
assumes the identity of root even if you start it as a normal user. I would
|
||
not reccommend this. These suid programs can be a major security risk.
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Display support
|
||
</FONT> </H3>
|
||
Tue, 22 Feb 2000 22:10:46 +0100 (CET)
|
||
<BR>From: Roland Smith <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
|
||
|
||
|
||
<BLOCKQUOTE>
|
||
<P> I am trying to run Linux on a system with a NEC Multisync monitor. Where
|
||
can I find a driver Or what monitor should I use.
|
||
|
||
</BLOCKQUOTE>
|
||
<P> The X Window System doesn't use a monitor driver as such.
|
||
|
||
<P> Information about the monitor's characteristics should be entered in the
|
||
configuration file for the X server program, usually /etc/X11/XF86Config.
|
||
|
||
<P> Some tools like xconfigurator or xf86config can help you with this. Your
|
||
monitor might even be in their database. The X server distribution XFree86
|
||
also comes with a list of so-called modelines for lots of monitors.
|
||
|
||
<P> Alternatively you can use the following example:
|
||
|
||
<PRE>
|
||
Section "Monitor"
|
||
Identifier "SAM M174"
|
||
VendorName "S.A.M. GmbH"
|
||
ModelName "M174"
|
||
HorizSync 30-64
|
||
VertRefresh 47-100
|
||
Gamma 1.2
|
||
Mode "640x480@72Hz" # Standard VESA
|
||
DotClock 31.5
|
||
HTimings 640 664 704 832
|
||
VTimings 480 489 492 520
|
||
EndMode
|
||
Mode "800x600@72Hz" # Standard VESA
|
||
DotClock 50
|
||
HTimings 800 856 976 1040
|
||
VTimings 600 637 643 666
|
||
Flags "+HSync" "+VSync"
|
||
EndMode
|
||
Mode "1024x768@70Hz" # Standard VESA
|
||
DotClock 75
|
||
HTimings 1024 1048 1184 1328
|
||
VTimings 768 771 777 806
|
||
Flags "-HSync" "-VSync"
|
||
EndMode
|
||
EndSection
|
||
</PRE>
|
||
|
||
<P> It is the "Mode"'s that you want. All VESA compliant monitors should
|
||
support these modes. Note that you have to look-up the "HorizSync" and the
|
||
"VertRefresh" in your monitor's documentation.
|
||
|
||
<P> For more in-depth information, see the XFree86-Video-Timings-HOWTO
|
||
(usually in /usr/doc/HOWTO/XFree86-Video-Timings-HOWTO.gz)
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Re: X won't start
|
||
</FONT> </H3>
|
||
Tue, 22 Feb 2000 22:24:21 +0100 (CET)
|
||
<BR>From: Roland Smith <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
|
||
|
||
|
||
<BLOCKQUOTE>
|
||
I Have Reacently Installed LINUX on an Dell OptiPlex GX110 PentiumIII that
|
||
I bought. I can boot up an login into root but when i issue the command
|
||
<CODE>startx</CODE> to get X to start this is what i get:
|
||
|
||
<PRE>
|
||
execve failed for /ect/X11/X (errno 2)
|
||
</PRE>
|
||
|
||
and then
|
||
|
||
<PRE>
|
||
_X11TransSocketUNIXConnect: Can't Connect: errno = 2
|
||
</PRE>
|
||
|
||
then
|
||
|
||
<PRE>
|
||
Giving up
|
||
</PRE>
|
||
|
||
and Finally I wonderered if anyone could help a LINUX newbie.
|
||
|
||
</BLOCKQUOTE>
|
||
<P> Your X installation has not been finished. This is/was a common problem
|
||
with Red Hat and probably other distro's
|
||
|
||
<P> Basically, /etc/X11/X is a symbolic link to the real X server (that usually
|
||
lives in /usr/X11R6/bin/.
|
||
|
||
<P> In your case the link probably doesn't point to the right file.
|
||
|
||
<P> Try configuting X again (using whatever program you used for that) or make
|
||
a link using `ln -s' to the appropriate server.
|
||
|
||
|
||
|
||
|
||
<P> <hr> <P>
|
||
<!--================================================================-->
|
||
<a name=""></a>
|
||
<H3><IMG ALIGN=BOTTOM ALT="" SRC="../gx/lil2cent.gif">
|
||
ANSWER: <FONT COLOR="navy">Re: Outgoing mail problem
|
||
</FONT> </H3>
|
||
Tue, 22 Feb 2000 22:46:59 +0100 (CET)
|
||
<BR>From: Roland Smith <<A HREF="mailto:rsmith@xs4all.nl">rsmith@xs4all.nl></A>
|
||
|
||
<BLOCKQUOTE>
|
||
<P> We are attempting to set up our linux machine such that it can used as a
|
||
POP server. On a Windoze machine, Eudora software successfully retrieves
|
||
email from the machine. However, when we try to send email through the
|
||
linux machine, the email bounces back.
|
||
|
||
By the way, using email tools such as pine on the linux machines itself
|
||
works fine.
|
||
</BLOCKQUOTE>
|
||
|
||
<P> The mail transfer agent on your Linux box is not configured to send the
|
||
mail from the windoze box through. Most mail tranfer agents block relaying
|
||
from other machines/domains.
|
||
|
||
<P> The log files (/var/log/syslog, var/log/messages) should give you an idea
|
||
what's wrong.
|
||
|
||
<P> Read the documentation for the MTA you're using (probably sendmail?) to see
|
||
how you should configure it properly for your situation.
|
||
|
||
<P> You could also ask your local network wizard. :)
|
||
|
||
|
||
|
||
|
||
|
||
<!-- END tips.answers -->
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <P>
|
||
<H5 ALIGN=center>
|
||
This page written and maintained by the Editor of the <I>Linux Gazette</I>.
|
||
Copyright © 2000, <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A><BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H1><font color="maroon">HelpDex</font></H1>
|
||
<H4>By <a href="mailto:shane_collinge@yahoo.com">Shane Collinge</a></H4>
|
||
</center>
|
||
<P> <HR> <P>
|
||
|
||
<!-- END header -->
|
||
|
||
|
||
|
||
|
||
<IMG ALT="HelpDex8.jpg" SRC="gx/collinge/cushion.jpg"
|
||
WIDTH="750" HEIGHT="300">
|
||
<BR CLEAR="all">
|
||
|
||
<IMG ALT="agbdab.jpg" SRC="gx/collinge/loonix.jpg"
|
||
WIDTH="750" HEIGHT="302">
|
||
<BR CLEAR="all">
|
||
|
||
<IMG ALT="agbdab.jpg" SRC="gx/collinge/surfsup.jpg"
|
||
WIDTH="750" HEIGHT="305">
|
||
<BR CLEAR="all">
|
||
|
||
<IMG ALT="HelpDex6.jpg" SRC="gx/collinge/clouds.jpg"
|
||
WIDTH="750" HEIGHT="303">
|
||
<BR CLEAR="all">
|
||
|
||
<IMG ALT="HelpDex10.jpg" SRC="gx/collinge/entropy.jpg"
|
||
WIDTH="750" HEIGHT="299">
|
||
<BR CLEAR="all">
|
||
|
||
<P> More <EM>HelpDex</EM> cartoons are on Shane's web site,
|
||
<A HREF="http://mrbanana.hypermart.net/Linux.htm">
|
||
http://mrbanana.hypermart.net/Linux.htm</A>.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <!-- P -->
|
||
<H5 ALIGN=center>
|
||
|
||
Copyright © 2000, Shane Collinge<BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H1><font color="maroon">X Stations and Linux</font></H1>
|
||
<H4>By <a href="mailto:matt@martine2.difi.unipi.it">Matteo Dell'Omodarme</a></H4>
|
||
</center>
|
||
<P> <HR> <P>
|
||
|
||
<!-- END header -->
|
||
|
||
|
||
|
||
|
||
<center>
|
||
<b>Introduction</b></center><p>
|
||
|
||
|
||
Some years ago, a typical UNIX cluster was composed by an expensive,
|
||
powerful server and many cheaper terminals connected to that server.
|
||
|
||
An example of such a terminal is the IBM X Station.
|
||
|
||
The hardware of the IBM X Station includes a screen,
|
||
keyboard, mouse, some RAM, and jacks for Ethernet cables.
|
||
Since they do not have a hard disk or a floppy drive,
|
||
they must get the operating system from a host on the net that they are
|
||
attached to.
|
||
<p>
|
||
The aim of a X Station was to provide a terminal optimized for X and
|
||
graphics and connected to a
|
||
powerful server at low cost. <p>
|
||
|
||
X Stations depend on a IBM Workstation, as RISC 6000, running AIX OS. The <em>X
|
||
station manager</em> package, released with this OS, contains the
|
||
software needed in order to make X Stations boot from network and then
|
||
run the X interface.
|
||
|
||
Managing several X Stations from a RISC 6000 server is a quite easy
|
||
job; can we do the same thing from a Linux box? The main reason to do
|
||
such work are hardware failures of the IBM server since RISC Workstations
|
||
are expensive (much more than a PC). <p>
|
||
|
||
This article shows how to configure a Linux box in order to provide to
|
||
X Station 120 and X Station 130 all the information needed to boot
|
||
and work properly.<p>
|
||
|
||
<center>
|
||
<b>Configuring the Linux box</b></center><p>
|
||
|
||
|
||
There are 5 different steps to accomplish before you can successfully
|
||
start a X Station from Linux:
|
||
|
||
<ol type=1>
|
||
<li> Get boot files for X Stations from the IBM RISC 6000
|
||
<li> Get fonts for X Stations from IBM RISC 6000
|
||
<li> Configure Linux bootpd daemon
|
||
<li> Configure Linux tftp daemon
|
||
<li> Configure Linux xdm daemon
|
||
</ol>
|
||
|
||
Let's inspect each step in greater detail.<p>
|
||
|
||
|
||
<center>
|
||
<b>Getting boot files</b></center><p>
|
||
|
||
All the boot files for your X
|
||
Stations are in the directories <code>/etc/x_st_mgr</CODE> and
|
||
<CODE>/usr/lpp/x_st_mgr</CODE> in the AIX installation backup.
|
||
Restore the backup in your Linux box (in the following we presume you
|
||
restored the backup in the same directories as the AIX installation).<p>
|
||
|
||
You don't need all the files; but a minimal installation must contain:
|
||
|
||
<pre>
|
||
/etc/x_st_mgr/120 link to /usr/lpp/x_st_mgr/bin/bootfile3
|
||
/etc/x_st_mgr/120.cf configuration file, see below
|
||
/etc/x_st_mgr/bootfile3.cf copy of 120.cf
|
||
/usr/lpp/x_st_mgr/bin/bootfile3 boot file X Station 120
|
||
/usr/lpp/x_st_mgr/bin/x11xor3.out X server
|
||
/usr/lpp/x_st_mgr/bin/rgb.txt color descriptor database
|
||
</pre>
|
||
|
||
for X Station 120, and:
|
||
|
||
<pre>
|
||
/etc/x_st_mgr/130 link to /usr/lpp/x_st_mgr/bin/bootfile4
|
||
/etc/x_st_mgr/130.cf configuration file, see below
|
||
/etc/x_st_mgr/bootfile4.cf copy of 130.cf
|
||
/usr/lpp/x_st_mgr/bin/bootfile4 boot file X Station 130
|
||
/usr/lpp/x_st_mgr/bin/x11xor4.out X server
|
||
/usr/lpp/x_st_mgr/bin/rgb.txt color descriptor database
|
||
</pre>
|
||
|
||
for X Station 130.<p>
|
||
|
||
The file 120.cf contains the names of the files needed by X Station
|
||
120 during the boot process. An example of its structure is:
|
||
|
||
<pre>
|
||
/usr/lpp/x_st_mgr/nls/keymap
|
||
/usr/lpp/x_st_mgr/nls/msg
|
||
/usr/lpp/x_st_mgr/bin/x11xor3.out
|
||
/home/x_st_mgr/lib/fonts,/home/x_st_mgr/lib/fonts/ibm850
|
||
/usr/lpp/x_st_mgr/bin/rgb.txt
|
||
</pre>
|
||
|
||
In the file 130.cf the sole change is the line:
|
||
|
||
<pre>
|
||
/usr/lpp/x_st_mgr/bin/x11xor4.out
|
||
</pre>
|
||
|
||
replacing the line of the X server x11xor3.out.<p>
|
||
|
||
<center>
|
||
<b>Setting the fonts</b></center><p>
|
||
|
||
In the configuration file 120.cf (or 130.cf) the line:
|
||
|
||
<pre>
|
||
/home/x_st_mgr/lib/fonts,/home/x_st_mgr/lib/fonts/ibm850
|
||
</pre>
|
||
|
||
points to the directories where you copied the fonts of the AIX
|
||
installation, located in /usr/lib/X11/fonts.
|
||
You can freely change the installation directory, but you must be
|
||
consistent.<p>
|
||
|
||
|
||
<center>
|
||
<b>The bootpd daemon</b></center><p>
|
||
|
||
When a X Station is switched on it send on the network its Ethernet
|
||
address and a request of assistance to accomplish the boot.
|
||
During this process on the X Station screen you can see some
|
||
informations, as shown below.
|
||
|
||
<pre>
|
||
The IBM Xstation
|
||
Version 1.4
|
||
(c) Copyright IBM Corporation 1981, 1990
|
||
|
||
Ethernet Hardware Address 08005A010F33
|
||
Ethernet Thick/Thin Thin
|
||
|
||
BOOTP - 0000 0000 0000 0000
|
||
TFTP - 0000 0000 0000 0000
|
||
</pre>
|
||
|
||
First of all
|
||
record the <em>Ethernet Hardware Address</em> of the terminal;
|
||
this information is needed later. <p>
|
||
|
||
Turning on the X Station the first number on the BOOTP line starts to
|
||
augment: the X Station is sending a request for help on the network.
|
||
To respond to that request a computer must have bootpd daemon running
|
||
and properly configured, that is have a line in the bootpd
|
||
configuration file matching exactly the Ethernet address of the X
|
||
Station. <p>
|
||
|
||
This step is required for X Station 120; a X Station 130 can be a
|
||
statically configured to contact the machine which stores the
|
||
boot files and font.
|
||
This is done in the setup screens which are accessed by
|
||
pressing F12 during the boot procedure.
|
||
Here you must provide all the boot and IP informations (the informations are
|
||
stored in a <em>Non-Volatile RAM</em> subsystem on the X Station)
|
||
and disable BOOTP.
|
||
In the following we suppose you don't use a static configuration for
|
||
your X Station 130.<p>
|
||
|
||
bootpd daemon is usually located in /usr/sbin/booptd. If you can't
|
||
find it here or in similar locations you must get a copy of the
|
||
program from the net and follow the installation procedure (this part
|
||
is not covered here). <p>
|
||
|
||
The configuration file for bootpd is /etc/bootptab. Here you must
|
||
insert the informations about all X Stations you want to manage from
|
||
the Linux box. An example of this file is reported below:
|
||
|
||
<pre>
|
||
# declaration of types
|
||
x_st_mgr.120:ht=ether:hd=/etc/x_st_mgr:bf=120:T170=2328:ds=131.114.8.144:gw=131.114.8.129:sm=255.255.255.0:
|
||
|
||
x_st_mgr.130:ht=ether:hd=/etc/x_st_mgr:bf=130:T170=2328:ds=131.114.8.144:gw=131.114.8.129:sm=255.255.255.0:
|
||
|
||
# X Stations
|
||
astr12pi.difi.unipi.it:tc=x_st_mgr.120:ha=08005A010F1A:ip=131.114.8.236:
|
||
|
||
astr13pi.difi.unipi.it:tc=x_st_mgr.130:ha=08005A010F33:ip=131.114.8.237:
|
||
</pre>
|
||
|
||
In this file there are two declaration of type (i.e. X Station 120
|
||
and X Station 130), with the informations about the related boot
|
||
files. The name of the tags are explained below:
|
||
|
||
<pre>
|
||
# hd -- home directory
|
||
# bf -- bootfile
|
||
# sa -- server IP address to tftp bootfile from
|
||
# gw -- gateways
|
||
# ds -- DNS
|
||
# ha -- hardware address
|
||
# ht -- hardware type
|
||
# ip -- host IP address
|
||
# sm -- subnet mask
|
||
# tc -- template host (points to similar host entry)
|
||
# hn -- name switch
|
||
# bs -- boot image size
|
||
# dt -- old style boot switch
|
||
</pre>
|
||
|
||
The other lines are the list of the X Stations managed.
|
||
For a X
|
||
Station 120 a typical entry begin with the name of that X Station and
|
||
refers to tag <em>tc=x_st_mgr.120</em>; the
|
||
<em>ha</em> tag must match the Ethernet address you previously recorded and the
|
||
<em>ip</em> tag is the IP number corresponding to the X Station.
|
||
|
||
For a X Station 130 change the tag <em>tc</em> to <em>tc=x_st_mgr.130</em>.<p>
|
||
|
||
The bootpd daemon is started from /etc/inetd.conf file inserting the line:
|
||
|
||
<pre>
|
||
bootps dgram udp wait root /usr/sbin/tcpd bootpd
|
||
</pre>
|
||
|
||
You can test your Linux bootpd configuration issuing the command:
|
||
|
||
<pre>
|
||
kill -HUP `cat /var/run/inetd.pid`
|
||
</pre>
|
||
|
||
and turning on the X Station. If the BOOTP phase is passed (i.e. the
|
||
first number on the TFTP line increases) the bootpd daemon works
|
||
properly. <p>
|
||
|
||
|
||
<center>
|
||
<b>The tftp daemon</b></center><p>
|
||
|
||
Now the Linux box can successfully answer to the boot request from the
|
||
X Station but it's not able to supply the files the X Station is
|
||
asking. To accomplish this process you must install and configure the
|
||
tftp daemon (Trivial File Transfer Protocol).
|
||
tftp daemon usually resides in /usr/sbin/tftp and can be started from
|
||
/etc/inetd.conf inserting the line:
|
||
|
||
<pre>
|
||
tftp dgram udp wait root /usr/sbin/tcpd in.tftpd /home/x_st_mgr /etc/x_st_mgr /usr/lpp/x_st_mgr
|
||
</pre>
|
||
|
||
The configuration can be tested restarting inetd:
|
||
|
||
<pre>
|
||
kill -HUP `cat /var/run/inetd.pid`
|
||
</pre>
|
||
|
||
Turning on the X Station the boot process must be successful and after
|
||
a short wait on the X Station screen appears a message like this:
|
||
|
||
<pre>
|
||
Copyright 1989, 1994 AGE Logic Inc.
|
||
All rights reserved, Release 072594
|
||
</pre>
|
||
|
||
and after another wait the screen becomes grey with a typical cross
|
||
cursor in the middle. The X interface is now working. <p>
|
||
|
||
<center>
|
||
<b>The xdm daemon</b></center><p>
|
||
|
||
The last step is to provide a login mask to the X Station. This is the
|
||
job of xdm daemon.
|
||
The xdm daemon can be started setting the runlevel 5 in the
|
||
/etc/inittab, i.e. in this file you must have the line:
|
||
|
||
<pre>
|
||
id:5:initdefault:
|
||
</pre>
|
||
|
||
Now change directory to /etc/X11/xdm.
|
||
If you won't the xdm interface starts automatically on console edit
|
||
the file <em>Xservers</em> and comment
|
||
the line:
|
||
|
||
<pre>
|
||
:0 local /usr/X11R6/bin/X
|
||
</pre>
|
||
|
||
In the same file add the names of all the X Stations defined above,
|
||
as in the example:
|
||
|
||
<pre>
|
||
astr12pi:0 foreign
|
||
astr13pi:0 foreign
|
||
</pre>
|
||
|
||
Now edit the <em>xdm-config</em> file and insert the lines:
|
||
|
||
<pre>
|
||
DisplayManager.astr12pi_0.setup: /etc/X11/xdm/Xsetup_astr12pi_0
|
||
DisplayManager.astr12pi_0.startup: /etc/X11/xdm/Xstart
|
||
DisplayManager.astr12pi_0.reset: /etc/X11/xdm/Xstop
|
||
</pre>
|
||
|
||
where Xsetup_astr12pi_0 is a copy of Xsetup_0, Xstart and Xstop are
|
||
links to GiveConsole and TakeConsole. Repeat this operation for all
|
||
the X Stations defined.<p>
|
||
|
||
The last operation is insert a crontab entry which refreshes the xdm
|
||
daemon every 1 minute. This step is needed to manage quickly a X Station
|
||
when it's switched on. As user root issue the command:
|
||
|
||
<pre>
|
||
crontab -e
|
||
</pre>
|
||
|
||
and insert the line:
|
||
|
||
<pre>
|
||
* * * * * kill -HUP `cat /var/log/xdm.pid`
|
||
</pre>
|
||
|
||
Reboot your Linux box and turn on the X Stations. If all goes OK, the X
|
||
stations will boot, start the X server and show the login screen.
|
||
|
||
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <!-- P -->
|
||
<H5 ALIGN=center>
|
||
|
||
Copyright © 2000, Matteo Dell'Omodarme<BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H1><font color="maroon">The Story of an Implementation</font></H1>
|
||
<H4>By <a href="mailto:jacek@softomat.com.pl">Jacek Kijewski</a><BR>
|
||
Translated from the Polish by
|
||
<a href="mailto:Pawel.Moszumanski@sobieski.com.pl">Pawel Moszumanski</a><BR>
|
||
Originally published in
|
||
<A HREF="http://www.linux.com.pl">Linux Plus</A>, February 2000<BR>
|
||
<!-- Editor: <A HREF="mailto:artur@software.com.pl">Artur Skura</A> --></EM>
|
||
</H4>
|
||
</center>
|
||
<P> <HR> <P>
|
||
|
||
<!-- END header -->
|
||
|
||
|
||
|
||
|
||
<P> The implementation was conducted in Jan III Sobieski Hotel - one of the
|
||
biggest, most luxurious and prestigious hotel facilities in Poland. The
|
||
hotel offers a wide variety of services, ranging from suite rental,
|
||
through restaurants to organisation of conferences.
|
||
|
||
<P> The hotel has over 400 rooms and employs up to 600 persons. The office
|
||
and administration centre is located in a four-story building. The hotel
|
||
owns restaurants, underground car park, business centre, pay-TV,
|
||
information desks at the airport, etc.
|
||
|
||
<P> Jan III Sobieski is a giant entity which could be compared to a large
|
||
factory. It is operated round-the-clock, as guests do not like to be
|
||
kept waiting. Since the prices reflect hotel's high standard, the guests
|
||
are keen on getting their money's worth. The expectations with regard to
|
||
the computer system are, therefore, very high.
|
||
|
||
<P> The system has to provide for uninterrupted operation in continuous
|
||
traffic. Operating downtimes should be reduced to a minimum, as no time
|
||
is available to shut the server down for maintenance. The system should
|
||
provide for reliable customer service and ensure that the numerous,
|
||
large and critical databases be adequately protected.
|
||
|
||
<P> The following systems had been in use at Jan III Sobieski Hotel prior to
|
||
the network implementation:
|
||
<OL>
|
||
<LI> The main hotel system developed by a German company operated on HP
|
||
UX and alphanumeric terminals. The system supported room reservations,
|
||
inventory settlements and accountancy. Its greatest weakness was the inability
|
||
to communicate efficiently with taxation modules, as the system supplier could
|
||
not keep up with the rapid changes in Polish legislation.
|
||
<LI> The office centre was operated in Windows 3.11 and MS Office 4.3
|
||
(Word 6.0, Excel 5.0) environment. Since the applications' processing capacity
|
||
became insufficient, a decision was made to switch to a 32-bit platform.
|
||
<LI> Novell NetWare was the file server.
|
||
</OL>
|
||
|
||
<H1>Why Linux?</H1>
|
||
|
||
<P> The decision to implement Linux was made in 1998 when communication
|
||
problems with the taxation module were aggravated due to frequent
|
||
legislative changes. A decision was made to purchase an application
|
||
designed by a local provider and offering better support. The hotel
|
||
selected HS-Partner and their hotel and restaurant application.
|
||
|
||
<P> The HS-Partner application (now HS-Partner - Protest) operates on Linux
|
||
graphic terminals. The terminal comprises a PC in specialist casing, a
|
||
touch-operated LCD display and software: XWindow and specialist
|
||
libraries. It is based on QT with a number of adjustments implemented by
|
||
HS Partner programmers.
|
||
|
||
<P> The actual program operates on a server based on the SQL database -
|
||
initially PostrgeSQL, now Adabas-D.
|
||
|
||
<P> The terminals themselves provide for secure operation in the kitchen and
|
||
the bar as they are resistant to temperature, humidity and do not need
|
||
to be repaired. It is a very important feature in a hotel and restaurant
|
||
environment.
|
||
|
||
<P> The application was implemented in the first half of 1999. The
|
||
management decided to switch to a 32-bit platform. The choice was
|
||
restricted to two platforms - Windows NT and Linux.
|
||
|
||
<P> <A HREF="mailto:Pawel.Moszumanski@sobieski.com.pl">Pawel Moszumanski</A>,
|
||
a manager of the
|
||
IT department and a great Linux enthusiast, played the vital role in the
|
||
decision-making process. Being aware of system capabilities as well as
|
||
the hotel's operating needs, Moszumanski was able to convince the
|
||
management to seriously consider the Linux option.
|
||
|
||
<P> At that time, our company had already become known for forcing
|
||
StarDivision, the developer of the StarOffice package, to enter the
|
||
Polish market. We took an interest in StarOffice after we had
|
||
experienced difficulty in promoting our Linux solutions. Still, the
|
||
customers never ceased to ask the sacramental question: what about Word
|
||
and Excel?
|
||
|
||
<P> StarOffice was the only Linux package which could match Microsoft
|
||
solutions. Its operating standards resembled similar solutions developed
|
||
by the Redmond company. The only obstacle was the absence of a Polish
|
||
distributor and a Polish language version.
|
||
|
||
<P> After laborious efforts (the Polish market has always been disregarded
|
||
by American software developers), our company finally became an official
|
||
StarDivision dealer and we could offer solutions based on the system.
|
||
Thanks to our PKFL activity and the recommendation of HS-Partner, we
|
||
were able to establish contact with Jan III Sobieski Hotel.
|
||
|
||
<P> The hotel management were faced with a difficult choice - either to
|
||
spend a lot of money to develop Windows-based solutions or to acquire a
|
||
system whose advantages were recognised only by the professionals
|
||
without any marketing support. The main advantage of Linux was its
|
||
ability to maintain a uniform system platform, while Windows' strength
|
||
laid with its commercial popularity. Still, the numbers were on our
|
||
side. The cost of acquiring Windows-based software exceeded the Linux
|
||
solution five-fold.
|
||
|
||
<P> For a large company like Jan III Sobieski Hotel, the cost of acquiring
|
||
software is not as important as overall system development costs. As it
|
||
turned out, the total software cost was ZERO!
|
||
|
||
<H1>Let's reduce TCO</H1>
|
||
|
||
<P> The cost of owning a computer is higher than the actual purchase cost.
|
||
The cost of installing 100 computers with NT Workstations would be:
|
||
100 (computers) x 2 (hours to install the system, network and
|
||
applications) equals the monthly pay of a well-paid computer expert.
|
||
|
||
<P> Additional costs would have to be incurred with regard to management,
|
||
maintenance and support. Jan III Sobieski Hotel is a large facility and
|
||
it takes more than a short walk to get from one building to another. A
|
||
system requiring less maintenance would be the preferred choice.
|
||
|
||
<P> The alternative solutions were the Zero Administration Kit, PC Anywhere
|
||
and others. Still, they implied additional costs without a guarantee of
|
||
proper operation.
|
||
|
||
<P> All those features were already present in the Linux System. A PC could
|
||
be transformed into a practically self-operated terminal, a remotely or
|
||
centrally controlled workstation. The high reliability of a Unix class
|
||
system also guaranteed safe data processing.
|
||
|
||
<H1>One Company - One Platform</H1>
|
||
|
||
<P> The hotel management decided to implement a uniform system platform. A
|
||
decision was soon made to introduce the StarOffice package provided that
|
||
the HS-Partner system would be successfully implemented. The
|
||
implementation was completed in August 1999. The next step was to unify
|
||
the system platform. Negotiations were held on involving our company in
|
||
the implementation process. Our company had become known for a number of
|
||
successful StarOffice implementations based on Linux, for example in
|
||
Warsaw's BoatHouse restaurant.
|
||
|
||
<P> The hotel management take credit for approaching the subject in the most
|
||
reasonable way - by stating the requirements and demanding results. They
|
||
did not intervene in technical details and provided the programmers with
|
||
the freedom to make the right decisions.
|
||
|
||
<H1>A present from Sun</H1>
|
||
|
||
<P> At that time, a fee was charged for commercial StarOffice applications.
|
||
Even though it was half the price of the MS Office package, we still had
|
||
to import it, pay the customs duty, wait and transfer the money.
|
||
At low margin levels, it was not a very lucrative undertaking - our
|
||
company makes money on implementing, rather than selling software
|
||
packages. In the late summer of 1999, StarDivision was taken over by Sun
|
||
Microsystems and the StarOffice package became available to the public
|
||
for free. We no longer had to waste our time dealing with bureaucratic
|
||
chores and we were (and still are) the most competent company
|
||
implementing the StarOffice package based on Linux.
|
||
|
||
<H1>What about the terminals?</H1>
|
||
|
||
<P> We suggested that Xterminals be used, but the idea was not picked up by
|
||
the hotel's IT department. Firstly, the terminals implied additional
|
||
costs. The hotel had an adequate PC base and only some of the computers
|
||
required upgrading. Secondly, a new server would have to be acquired to
|
||
prevent the loss of the system's calculating power on the terminals.
|
||
Server capacity was also questioned.
|
||
The capacity of the Intel platform and servers with Linux support seemed
|
||
limited and other hardware platforms were not an option. The present
|
||
solutions ensure adequate processing capacity.
|
||
|
||
<P> The management decided to postpone the decision on buying terminals
|
||
until the existing stations became inadequate. A number of weaker
|
||
computers would still have to be configured as Xterminals.
|
||
|
||
<H1>Setting to Work</H1>
|
||
|
||
<P> The contract was signed in October and it involved training and system
|
||
installation. We had to begin by developing a quick system installation
|
||
mechanism.
|
||
The company called MandrakeSoft helped by releasing Linux-Mandrake.
|
||
This distribution was equipped with the KickStart mechanism which
|
||
provided for automatic installation based on previously developed
|
||
scripts. Our programmers wrote a set of scripts which installed the
|
||
system and the required applications with the developed computer base.
|
||
The script would be saved on a floppy disk and run to install the
|
||
abridged version of Mandrake, the StarOffice package, configure the
|
||
network and printers.
|
||
Another set of scripts was used to automatically generate user
|
||
configurations. All those tools enabled us to install the system on
|
||
workstations practically overnight.
|
||
|
||
<H1>Technical Aspects of the Configuration </H1>
|
||
|
||
<P> Workstations with the operating system and the StarOffice application
|
||
are installed on the local disk. The users' home directories are
|
||
installed from the server with the use of NFS. Authorisation control is
|
||
conducted with the use of yp. IPXutils is used to communicate with the
|
||
Novell server.
|
||
|
||
<P> The only problem was NFS. NFS itself is not an optimal solution and is
|
||
probably the greatest weakness of Unix systems. The majority of hotel
|
||
users frequently browse through directories to find a given file - with
|
||
100 logged users, the capacity of the server using nfsd drops below the
|
||
allowable level. The Kernel nfsa driver - knfs - was used. At present,
|
||
processor load is negligent (the server has two processors) and the
|
||
network operates correctly. We did not experience any other
|
||
network-related problems. Thanks to remote access, user support became
|
||
possible without running from one floor to another.
|
||
|
||
<H1>Training</H1>
|
||
|
||
<P> Training sessions were held in the hotel's training room. Two lecturers
|
||
trained two groups each. Courses were taught daily - one group in the
|
||
morning, the other in the afternoon. The course comprised 24 class hours
|
||
on package operation, basic Internet and e-mail skills, etc. The users
|
||
did not have any problems with the presented material despite the sudden
|
||
change of the working environment. The training session lasted less than
|
||
four weeks. Following the course, we provided the users with two weeks
|
||
of start-up support - a job well done by Piotr Duszynski.
|
||
|
||
<P> Most users are not familiar with the specific nature of the Linux system
|
||
and the system itself. They use the window manager interface to open
|
||
applications such as StarOffice, accounting applications and, in
|
||
justified cases, Netscape. Practically none of the users know how to
|
||
administer or configure the system, but such skills are not required.
|
||
|
||
<H1>Present Condition</H1>
|
||
|
||
<P> The hotel currently relies on the above hotel system and the office
|
||
centre operates the StarOffice package. The HP UX accountancy system is
|
||
also used. The WWW and e-mail server operates on Linux. The Novell
|
||
NetWare system is integrated with Linux using IPXutils tools.
|
||
The Windows system is used for pay-TV, which is the only hotel service
|
||
that keeps the IT department busy troubleshooting.
|
||
|
||
<H1>The Story of Success</H1>
|
||
|
||
<P> The implementation was one of the few stories of success in the Polish
|
||
computer industry. I would rather not make any references to major
|
||
system failures experienced by large companies, but we tried to steer
|
||
clear of the common errors. The hotel management defined the goals and
|
||
the programmers developed the right implementation methodology. The IT
|
||
department is always short of people during system implementations which
|
||
is why we had to resort to outsourcing to a limited extent. Pawel
|
||
Moszumanski's managerial skills cannot go unnoticed - he scrupulously
|
||
supervised project goals and provided the team with organisational and
|
||
technical support. Much of the credit goes to the hotel's staff who
|
||
provided us with a friendly and stress-free working atmosphere. We also
|
||
received massive support from Arek Podgórski, one of the top Linux
|
||
administrators and system designers, and Piotr Duszynski, implementation
|
||
expert. Lenin's theory that "all depends on the working class" was fully
|
||
proven.
|
||
|
||
<H1>Other Applications</H1>
|
||
|
||
<P> A business application should be the key feature of a computer system. A
|
||
Unix class system proved to be a reliable platform for such
|
||
applications. Business applications should be selected to match the
|
||
company's operating profile, but the system's open architecture and
|
||
stability should also be taken into account. The costs of maintaining
|
||
and developing open applications and systems are half of those incurred
|
||
in closed systems. Linux and other Unix class systems, such as SCO and
|
||
Solaris, provide the perfect solution. The system selected for office
|
||
applications should be well integrated with the business application
|
||
system. Linux is the best solution in the Unix system category. It
|
||
provides for a single stable platform, uniform administration system and
|
||
lower costs. Network size is of minor significance - we have implemented
|
||
a similar solution (featuring Xterminals) in 5 workstations at Warsaw's
|
||
BoatHouse restaurant. A similar method can be applied in a network of
|
||
1000 workstations. Unix was developed for large networks, but Linux is
|
||
more flexible and can be used in both small businesses and giant
|
||
corporations. If its scaling capacity is exhausted, commercial Unix
|
||
systems can always be applied.
|
||
|
||
<P> <EM>Softomat's web site is
|
||
<A HREF="http://www.softomat.com.pl">http://www.softomat.com.pl</A>. In the
|
||
near future, the company plans to launch a mini service which will discuss
|
||
their experience implementing the above as well as other projects.</EM>
|
||
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <!-- P -->
|
||
<H5 ALIGN=center>
|
||
|
||
Copyright © 2000, Jacek Kijewski (author), Pawel Moszumanski (English translation)<BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H1><font color="maroon">Tweaking Eterm</font></H1>
|
||
<H4>By <a href="mailto:edward_leah@earthlink.net">Edward Livingston-Blade</a></H4>
|
||
</center>
|
||
<P> <HR> <P>
|
||
|
||
<!-- END header -->
|
||
|
||
|
||
|
||
|
||
Try this string with <A HREF="http://eterm.sourceforge.net">Eterm</A>:
|
||
|
||
<P>
|
||
|
||
<I>Eterm -W -O --shade 60 --home-on-echo no --home-on-input</I>
|
||
|
||
<P>
|
||
|
||
Here's the reasoning. Oh, and I'm doing all of this with "Eterm-0.8-9.i386.rpm". If something I do here doesn't work for you, consider the possibility that you're using a newer or (less likely) older version, and that the author(s) has changed something relevant.
|
||
|
||
<P>
|
||
|
||
The "-O" gives a pseudo-transparent Eterm. The terminal remembers your wallpaper at the time the terminal was created, though, so if you use any sort of automated wallpaper changer, you're going to end up with the wallpaper one thing and the background on the Eterm another. Same thing if you move the Eterm to a desktop with different wallpaper. The "-W" causes the Eterm to watch the desktop for changes to the wallpaper, fixing this behavior. The "--shade 60" darkens the Eterm's background. This is a big help if you use wallpaper with bright colors... you can shade the Eterm background to the point where you can actually use the terminal. :-) The "60" in "--shade 60" is the percentage amount of shading applied to the background... "0" is no shade, "100" is black. A value of "60" works well for me, you might want to tinker.
|
||
|
||
<P>
|
||
|
||
If you are scrolled up in an Eterm window, and the system generates new text, Eterm will automatically scroll you down as far as it can go so that you 1) are made aware that there's new output and 2) can read it immediately. <I>(I should add here that this may just be the default for the Red Hat package I'm using and not the official Eterm download. The man page for Eterm warns that "In keeping with the freedom-of-choice philosophy, options may be eliminated or default values chosen at compile-time, so options and defaults listed may not accurately reflect the version installed on your system". Now, regarding the above-mentioned "jump to bottom on output" feature, that same man page reads as if the option is inactive by default. On my Eterm, it's not... it's active. In fact, the POSIX "-H" option that controls this is useless to me because my Red Hat package Eterm behaves the same way whether "-H" is present or not. :-( So between the man page warning and the behavior I see, I tend to think that my Red Hat package has "-H" on by default.)</I> I don't like this behavior. I've been using "gnome-terminal" for a while, and when you scroll up in a gnome-terminal window, it stays scrolled whether the system is generating new text or not. (Although it WILL <U>appear</U> to be scrolling down as text scrolls up past your point-of-view, displaced by the new text the system is generating. That'll probably make more sense once you've seen it happen.) I like that because, for example, if I'm running a "find" and want to scroll up and examine an old directory listing while the "find" is finding, I don't have to fight the terminal as much to keep my point-of-view on the directory listing. Therefore, "--home-on-echo no". (The long option "--home-on-echo" is equivalent to the POSIX option "-H", but since, as I discuss above, "-H" appears to be compiled into the Eterm Red Hat package, the long option is the only way to turn the option off.) Now, something else weird. Normally, if YOU generate text (rather than the system) while scrolled up in an Eterm window, Eterm will automatically scroll you down so you can read what you're typing. I like this behavior. However, for some reason that's opaque to me, as soon as you use "--home-on-echo no", this behavior stops, and the point-of-view stays where you scrolled it to, whether the system OR you generates new text. It's as if turning "--home-on-echo" off somehow forces "--home-on-input" off as well, even though the latter option had defaulted to "on" previously. Anyway, using "--home-on-input" in the command string reinforces what I want and gets the Eterm back in line.
|
||
|
||
<P>
|
||
|
||
<B>correction:</B> Eterm doesn't QUITE mimic the behavior of gnome-terminal, even after these tweaks... when you are scrolled up, gnome-terminal will "lock" the view in place until the buffer fills, then text will scroll. Text in an Eterm window will scroll regardless of the buffer. (Again, that'll probably make more sense once you've seen it happen.) I like gnome-terminal's behavior better, so if anybody knows or can figure out a way to make Eterm work exactly the same, please <A HREF="MAILTO:edward_leah@earthlink.net">let me know</A>.
|
||
|
||
<P>
|
||
|
||
I use "ls --color". While the default color choices are fine against a solid background, I find them less than optimal against my wallpaper, even with "Eterm --shade 60". (And much higher than that, and why bother?) So I'm trying to figure out how to tweak the default Eterm colors to get maximum visibility across as much of the enormous range of possible color contrasts brought to my desktop by my collection of wallpaper as I can. I'll swap green and white, as I find that green has better contrast with the rest of the spectrum in general than white. I'll swap the two rather than just changing white to green because files with execute permission are listed in green, and there's no sense in sacrificing that color cue. I'll also lighten the blue, as it's dark enough to have lousy contrast with most of the spectrum. These changes aren't necessarily for everyone... I'm tweaking the Eterm colors so they work better with my eyes when I'm using Eterm's pseudo-transparency feature. You may find that different choices work best for you. Nevertheless, please read on and learn from my mistakes. :-) Lastly, once I've got all this "escape sequences" stuff worked out, I'll probably try something creative with my bash prompt. OK, the first thing that I had a question about is "what are the RGB values for the default Eterm colors"? Here's what I figured out:
|
||
|
||
<P>
|
||
|
||
<PRE>Name Code RGB Value Name Code RGB Value
|
||
Black 30 000000 Dark Gray 1;30 333333
|
||
Red 31 cc0000 Light Red 1;31 ff0000
|
||
Green 32 00cc00 Light Green 1;32 00ff00
|
||
Blue 34 0000cc Light Blue 1;34 0000ff
|
||
Cyan 36 00cccc Light Cyan 1;36 00ffff
|
||
Purple 35 cc00cc Light Purple 1;35 ff00ff
|
||
Brown 33 cccc00 Yellow 1;33 ffff00
|
||
Light Gray 37 faebd7 White 1;37 ffffff</PRE>
|
||
|
||
<P>
|
||
|
||
The color names are from /usr/doc/HOWTO/Bash-Prompt-HOWTO.
|
||
|
||
<P>
|
||
|
||
I didn't understand at first why it was so difficult to find a list of <B>THE</B> ANSI colors (in RGB) somewhere on the 'net. Now I understand that there IS no <B>THE</B> ANSI colors (at least in RGB). The sixteen ANSI colors appear to be defined simply as "black", "blue", "green", "cyan", etc. and are not defined down at the RGB level at all. I base this conclusion on the fact that gnome-terminal, Eterm and a <A HREF="http://knuckle.sandwich.net/ansi.html">page</A> I found on the 'net with the ANSI colors described (look in the HTML and you'll find the RGB values that the author chose) all three use different RGB values. The RGB values are pretty straightforward in all three cases except for light gray in the Eterm set and brown in the gnome-terminal set. These two colors use unusual RGB values, and I can't explain why. Anyway, here are the values for gnome-terminal:
|
||
|
||
<P>
|
||
|
||
<PRE>Name Code RGB Value Name Code RGB Value
|
||
Black 30 000000 Dark Gray 1;30 555555
|
||
Red 31 aa0000 Light Red 1;31 ff5555
|
||
Green 32 00aa00 Light Green 1;32 55ff55
|
||
Blue 34 0000aa Light Blue 1;34 5555ff
|
||
Cyan 36 00aaaa Light Cyan 1;36 55ffff
|
||
Purple 35 aa00aa Light Purple 1;35 ff55ff
|
||
Brown 33 aa5500 Yellow 1;33 ffff55
|
||
Light Gray 37 aaaaaa White 1;37 ffffff</PRE>
|
||
|
||
<P>
|
||
|
||
And here are the values I found at <A HREF="http://knuckle.sandwich.net/ansi.html">http://knuckle.sandwich.net/ansi.html</A>:
|
||
|
||
<P>
|
||
|
||
<PRE>Name Code RGB Value Name Code RGB Value
|
||
Black 30 000000 Dark Gray 1;30 444444
|
||
Red 31 aa0000 Light Red 1;31 ff4444
|
||
Green 32 00aa00 Light Green 1;32 44ff44
|
||
Blue 34 0000aa Light Blue 1;34 4444ff
|
||
Cyan 36 00aaaa Light Cyan 1;36 44ffff
|
||
Purple 35 aa00aa Light Purple 1;35 ff44ff
|
||
Brown 33 aaaa00 Yellow 1;33 ffff44
|
||
Light Gray 37 aaaaaa White 1;37 ffffff</PRE>
|
||
|
||
<P>
|
||
|
||
<A HREF="misc/leah/color.sh.txt">Here's</A> a shell script that's semi-useful.
|
||
|
||
<P>
|
||
|
||
<PRE>echo -e " \033[30mBlack\033[0m \033[1;30mDark Gray\033[0m"
|
||
echo -e " \033[34mBlue\033[0m \033[1;34mBlue (Light)\033[0m"
|
||
echo -e " \033[32mGreen\033[0m \033[1;32mGreen (Light)\033[0m"
|
||
echo -e " \033[36mCyan\033[0m \033[1;36mCyan (Light)\033[0m"
|
||
echo -e " \033[31mRed\033[0m \033[1;31mRed (Light)\033[0m"
|
||
echo -e " \033[35mPurple\033[0m \033[1;35mPurple (Light)\033[0m"
|
||
echo -e " \033[33mBrown\033[0m \033[1;33mYellow\033[0m"
|
||
echo -e "\033[37mLight Gray\033[0m \033[1;37mWhite\033[0m"</PRE>
|
||
|
||
<P>
|
||
|
||
<A HREF="misc/leah/color2.sh.txt">Here's</A> a more sophisticated one I took from /usr/doc/HOWTO/Bash-Prompt-HOWTO.
|
||
|
||
<P>
|
||
|
||
<PRE> #!/bin/bash
|
||
#
|
||
# This file echoes a bunch of colour codes to the terminal to demonstrate
|
||
# what's available. Each line is one colour on black and gray
|
||
# backgrounds, with the code in the middle. Verified to work on white,
|
||
# black, and green BGs (2 Dec 98).
|
||
#
|
||
echo " On Light Gray: On Black:"
|
||
echo -e "\033[47m\033[1;37m White \033[0m\
|
||
1;37m \
|
||
\033[40m\033[1;37m White \033[0m"
|
||
echo -e "\033[47m\033[37m Light Gray \033[0m\
|
||
37m \
|
||
\033[40m\033[37m Light Gray \033[0m"
|
||
echo -e "\033[47m\033[1;30m Gray \033[0m\
|
||
1;30m \
|
||
\033[40m\033[1;30m Gray \033[0m"
|
||
echo -e "\033[47m\033[30m Black \033[0m\
|
||
30m \
|
||
\033[40m\033[30m Black \033[0m"
|
||
echo -e "\033[47m\033[31m Red \033[0m\
|
||
31m \
|
||
\033[40m\033[31m Red \033[0m"
|
||
echo -e "\033[47m\033[1;31m Light Red \033[0m\
|
||
1;31m \
|
||
\033[40m\033[1;31m Light Red \033[0m"
|
||
echo -e "\033[47m\033[32m Green \033[0m\
|
||
32m \
|
||
\033[40m\033[32m Green \033[0m"
|
||
echo -e "\033[47m\033[1;32m Light Green \033[0m\
|
||
1;32m \
|
||
\033[40m\033[1;32m Light Green \033[0m"
|
||
echo -e "\033[47m\033[33m Brown \033[0m\
|
||
33m \
|
||
\033[40m\033[33m Brown \033[0m"
|
||
echo -e "\033[47m\033[1;33m Yellow \033[0m\
|
||
1;33m \
|
||
\033[40m\033[1;33m Yellow \033[0m"
|
||
echo -e "\033[47m\033[34m Blue \033[0m\
|
||
34m \
|
||
\033[40m\033[34m Blue \033[0m"
|
||
echo -e "\033[47m\033[1;34m Light Blue \033[0m\
|
||
1;34m \
|
||
\033[40m\033[1;34m Light Blue \033[0m"
|
||
echo -e "\033[47m\033[35m Purple \033[0m\
|
||
35m \
|
||
\033[40m\033[35m Purple \033[0m"
|
||
echo -e "\033[47m\033[1;35m Pink \033[0m\
|
||
1;35m \
|
||
\033[40m\033[1;35m Pink \033[0m"
|
||
echo -e "\033[47m\033[36m Cyan \033[0m\
|
||
36m \
|
||
\033[40m\033[36m Cyan \033[0m"
|
||
echo -e "\033[47m\033[1;36m Light Cyan \033[0m\
|
||
1;36m \
|
||
\033[40m\033[1;36m Light Cyan \033[0m"</PRE>
|
||
|
||
<P>
|
||
|
||
Here's the table with the RGB values for the default Eterm colors again, expanded to include the internal number that Eterm uses to refer to each color.
|
||
|
||
<P>
|
||
|
||
<PRE> Eterm Eterm
|
||
Name Color # Code RGB Value Name Color # Code RGB Value
|
||
Black 0 30 000000 Dark Gray 8 1;30 333333
|
||
Red 1 31 cc0000 Light Red 9 1;31 ff0000
|
||
Green 2 32 00cc00 Light Green 10 1;32 00ff00
|
||
Brown 3 33 cccc00 Yellow 11 1;33 ffff00
|
||
Blue 4 34 0000cc Light Blue 12 1;34 0000ff
|
||
Purple 5 35 cc00cc Light Purple 13 1;35 ff00ff
|
||
Cyan 6 36 00cccc Light Cyan 14 1;36 00ffff
|
||
Light Gray 7 37 faebd7 White 15 1;37 ffffff</PRE>
|
||
|
||
<P>
|
||
|
||
So to swap "white" and "light green" and lighten up "light blue":
|
||
|
||
<P>
|
||
|
||
<I>Eterm -f rgb:00/ff/00 --color10 rgb:ff/ff/ff --color12 rgb:99/99/ff -W -O --shade 60 --home-on-echo no --home-on-input</I>
|
||
|
||
<P>
|
||
|
||
Why not <I>--color10 rgb:ff/ff/ff --color12 rgb:99/99/ff --color15 rgb:00/ff/00</I>? It doesn't work. By default, foreground-color and color15 are both "white", but they CAN be set differently, and "ls --color" uses the ANSI code for foreground-color, not for color15.
|
||
|
||
<P>
|
||
|
||
I said something earlier about doing something with my bash prompt. Well, I decided not to group that with the Eterm material. It really doesn't have anything to do with Eterm, although it WAS researching the colors for Eterm that led me to the Bash-Prompt-HOWTO. Anyway, go to <A HREF="http://home.earthlink.net/~edward_leah/linux">http://home.earthlink.net/~edward_leah/linux</A> to see what I did.
|
||
|
||
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <!-- P -->
|
||
<H5 ALIGN=center>
|
||
|
||
Copyright © 2000, Edward Livingston-Blade<BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H1><font color="maroon">GIMP-Perl: GIMP Scripting for the Rest of Us</font></H1>
|
||
<H4>By <a href="mailto:wolfgang@mynetix.de">Wolfgang Mauerer</a></H4>
|
||
</center>
|
||
<P> <HR> <P>
|
||
|
||
<!-- END header -->
|
||
|
||
|
||
|
||
|
||
|
||
There is no doubt: GIMP not only is one of the applications that serves
|
||
as an attractor for Linux desktop-users, but also one of the most
|
||
powerful graphic applications available. There's hardly any task that
|
||
cannot be
|
||
done with the aid of the GIMP. One of its main features is
|
||
modularity: programmers can extend the program with C programs called
|
||
``plug-ins''. Just open your right-mouse-button
|
||
popup-menu, point to ``Filters'' and its diverse
|
||
submenus, and you'll see how important the plug-in feature is for
|
||
GIMP: all Filters seen here are implemented via plug-ins.
|
||
<p>
|
||
What about the next item in the popup menu, ``Script-Fu''? Tons of
|
||
effects can be discovered here. The difference between Script-Fus and
|
||
true filters is that Script-Fu-effects are generated by the aid of so
|
||
called ``Scheme-Scripts'', small programs written in a
|
||
strange-looking language
|
||
called ``Scheme'', which is strongly connected with Lisp--some of you
|
||
have certainly heard this name in connection with artificial-intelligence
|
||
programs. GNU Emacs uses Lisp as an
|
||
extension and implementation language, and GUILE, the GNU
|
||
Projects Ubiquitous Language for Extension that can be embedded into
|
||
all kinds of applications, is a Scheme dialect. Why does the Gimp
|
||
as an end-user-application use such a complicated language? This
|
||
question may be the source of a great religious and philosophical
|
||
debate about programming languages on which some people can spend days
|
||
and months. The religious explosive force lies shortly behind the
|
||
question about which text editor to use and the world's end. Perhaps
|
||
one can sum up the whole discussion with a simple sentence: Lisp and
|
||
Scheme are powerful, flexible and elegant
|
||
languages, but they are certainly not easy to learn for the
|
||
unexperienced user in contrast to more ``conventional'' languages.
|
||
Nevertheless, Script-Fu is a powerful means of expanding GIMP's
|
||
functionality with shortenings for often needed operations and doing
|
||
automated picture processing and image generation--features not only
|
||
useful for the end users, but also for web designers and publishers.
|
||
Just think of your home page using tons of graphical buttons with the
|
||
same look: you'd have to do the same steps over and over for every
|
||
button, and sooner or later this will become very boring and tiring.
|
||
Scripting automizes the process so that you'll only need to enter the
|
||
text of the button (and maybe the color and other things), and GIMP
|
||
generates them automatically for you with the aid of a
|
||
Script-Fu script.
|
||
<p>
|
||
As you can see, scripting is a powerful feature that can be useful for
|
||
all kinds of jobs. To make writing scripts easier, Marc Lehmann set out to
|
||
write extension software for GIMP which is already contained in the
|
||
1.1.<I>x</I> developers versions and may be used for the stable 1.0.<I>x</I>-tree
|
||
of the GIMP: He implemented an interface to make it possible to
|
||
write GIMP scripts using the Perl language. I will not start another
|
||
discussion about the qualities and weaknesses of Perl here, but in
|
||
fact the language is much easier to learn than Script-Fu if you have
|
||
no programming experience. Too, and this is the main advantage in my
|
||
opinion, most cgi-scripts and web-based programs are written in Perl,
|
||
so many people already know the language.
|
||
<p>
|
||
Perl Interpreters are available with all Linux distributions I know,
|
||
because Perl has become one of the important components of a
|
||
UNIX System, so normally there's no need to install
|
||
it separately. If you use the stable version of GIMP (1.0.<I>x</I>), then the
|
||
GIMP-Perl package needs to be installed first. See the box below on
|
||
how to do this. If you want to use interactive scripts, a language
|
||
binding between Perl and the GIMP toolkit gtk must be added to the
|
||
system, too, so that the corresponding features are accessible. The
|
||
instructions on how to do this are contained in the installation box as
|
||
well.
|
||
<p>
|
||
<H3>A Small Sample Script</H3>
|
||
<p>
|
||
Enough of theory--lets take a tour of the small GIMP-Perl script below
|
||
to see how the system works.
|
||
<A HREF="misc/mauerer/test.pl.txt">(text version of this listing)</A>
|
||
|
||
<pre>
|
||
#! /usr/bin/perl
|
||
# Simple script to demonstrate the basics of gimp-perl
|
||
use Gimp;
|
||
use Gimp::Fu;
|
||
register "colored_canvas",
|
||
"Creates a colored canvas",
|
||
"This script creates a canvas pattern over a color gradient<\n>,
|
||
"Wolfgang Mauerer",
|
||
"wolfgang\@mynetix.de", # @ must be written as \@ in a perl string
|
||
"0.0",
|
||
"<Toolbox>/Xtns/Script-Fu/Patterns/Color Canvas",
|
||
"",
|
||
[],
|
||
sub {
|
||
my $image = new Image(640, 480, RGB);
|
||
# Set new selections for the fore and background-color.
|
||
Palette
|
||
Palette
|
||
my $layer = $image->layer_new(640, 480,
|
||
RGB_IMAGE,
|
||
"Color Canvas",
|
||
100, NORMAL_MODE);
|
||
|
||
# Create a color gradient with the choosen colors.
|
||
Gimp->gimp_blend($layer, 0, 0, 0, 100, 0, 0, 0, 0, 0, 0, 0,
|
||
639, 379);
|
||
# ... and apply the canvas filter
|
||
Gimp->plug_in_apply_canvas(1, $image, $layer, 0, 10);
|
||
$image->add_layer($layer, 0);
|
||
|
||
return $image;
|
||
};
|
||
exit main;
|
||
</pre>
|
||
|
||
|
||
|
||
The first line of the script, <tt>#! /usr/bin/perl</tt>, has
|
||
nothing to do with
|
||
GIMP or Perl--it is just a shell command that starts Perl to
|
||
interpret the commands contained in the file. You might already know
|
||
this construction from shell scripts.
|
||
<p>
|
||
The first lines interesting for use are <tt>use Gimp</tt>; and
|
||
<tt>use Gimp::Fu</tt>;, as they initialize the GIMP binding and enable
|
||
its usage.
|
||
If you use these lines in your Perl scripts, you'll be able to refer
|
||
to nearly all of the GIMP's functionality in your Perl scripts.
|
||
<p>
|
||
One central part of creating a new script is registering it within
|
||
GIMP. In GIMP-Perl, this task is taken over by the function register,
|
||
which expects numerous arguments as parameters. The script is
|
||
described by them so that other users can get an idea of what the
|
||
script does through a textual description, and on the
|
||
other hand, the script is presented to the internal structures of GIMP
|
||
so that it can be executed in the right way. The arguments have the
|
||
following meanings:
|
||
<p>
|
||
<ul>
|
||
<li> a short but pregnant name for the script
|
||
<li> a short textual description of what the script does (GIMP also refers to this as a blurb)
|
||
<li> a longer and more detailed description of the script's work
|
||
<li> the script creator's name
|
||
<li> the creator's e-mail-address
|
||
<li> either the version number or the last-change-date of the script
|
||
<li> the location within the GIMP's menu structure
|
||
<li> the image types suitable for this script. As our script needs
|
||
no input image, this parameter can be left blank. Otherwise, you can specify
|
||
image types like RGB, GRAY etc. If your script should work with all image types
|
||
supported by GIMP, use an asterisk (*) as the argument.
|
||
<li> parameters that can be adjusted at run time. As our script runs
|
||
in a non-interactive mode, we don't want to pass parameters to it.
|
||
<li> a reference to the Perl code that will be executed when
|
||
running the script. More advanced perl programmers will have
|
||
noticed that the construct used here (<tt>sub { code };</tt>) is an
|
||
anonymous subroutine.
|
||
</ul>
|
||
Type in or download the script, then save it (we'll use
|
||
simple.pl as file name in our examples), and assign execution right
|
||
(<tt>chmod a+x simple.pl</tt> within the shell. Then start GIMP and the Perl server
|
||
(<tt>Menu Xtns -> Perl Server</tt>) and execute the script by
|
||
typing <tt>./simple.pl</tt>. If everything worked, a new window with
|
||
a red-blue canvas should appear on your X desktop.
|
||
<p>
|
||
If you get an error message like ``Command not found'' or so
|
||
(depending on
|
||
the shell you use), then you should check where your perl binary is
|
||
located by typing <tt>whereis perl</tt> and adjust the
|
||
<tt>#!</tt> line to the correct location. If you get error messages
|
||
from Perl, double check
|
||
your script's code with the code shown here and try to fix the typos.
|
||
<p>
|
||
Works quite fine, didn't it? But one thing seems to be mysterious:
|
||
When calling the register function, we set a location within gimp's
|
||
menu structure for the script, and according to the line
|
||
<p>
|
||
<pre>
|
||
<Toolbox>/Xtns/Script-Fu/Simple/Color Canvas
|
||
</pre>
|
||
one normally would have expected the script to appear somewhere within
|
||
the Xtns-menu. The
|
||
reason why the script is not yet installed permanently is simple: we
|
||
just used some kind of test mode, a clever feature of GIMP-Perl that
|
||
enables the quick testing of new scripts. Normally, a script has to be
|
||
installed so that it may be used permanently within the GIMP. By
|
||
starting the Perl server, we receive the ability of testing the script
|
||
directly on the command line and getting the same results as a
|
||
normal, installed module. Another huge advantage of the Perl server is
|
||
that you can modify your script as often as you want and then
|
||
immediately restart it. When you install a script permanently, you
|
||
have to reinstall it whenever you change it. And worse, each
|
||
time a script is newly installed, you'll have to restart GIMP.
|
||
Debugging or improving a script would really be time consuming with
|
||
this method, but with the help of the Perl server, everything works
|
||
just fine, and the turnaround time becomes much slower.
|
||
<p>
|
||
When you are sure your script works as expected, you may
|
||
integrate it into GIMP using the gimptool utility. Our little
|
||
script, for example, would be installed executing the line:
|
||
<p>
|
||
<pre>
|
||
gimptool -install-bin simple_fu.pl
|
||
</pre>
|
||
The script is only used in your user-related GIMP
|
||
configuration--other users won't be able to access your
|
||
script that way. If you want all users to be able to profit from your
|
||
work, you'll have to type:
|
||
<p>
|
||
<pre>
|
||
gimptool -install-admin-bin simple_fu.pm
|
||
</pre>
|
||
as this installs the script globally on your machine. You need to have
|
||
root privileges for doing this.
|
||
<p>
|
||
After installing the script, you can see a new menu point in <tt>Xtns ->
|
||
Script-Fu -> Patterns</tt> with the name ``Color Canvas''. Select the menu
|
||
point to execute the script, and you'll get the same window as you did when
|
||
calling the script directly on the command line: our red-blue canvas.
|
||
<p>
|
||
<H3>The Procedural Database</H3>
|
||
<p>
|
||
With a quite simple script, we have created an image that would take
|
||
at least several hundred lines of code without GIMP.
|
||
Because we could use predefined functions (like <B>GIMP-blend</B>) and
|
||
already existing plug-ins (<B>apply_canvas</B>), we were able to do the whole
|
||
job with very little coding required.
|
||
<p>
|
||
As you certainly might expect, GIMP is built on the basis
|
||
of a huge number of functions and procedures, and a great number of them
|
||
can be used within scripts--never mind whether you write them as a
|
||
plug-in in C, as script-fu-scripts or with GIMP-Perl. How can one
|
||
easily keep track of this big functionality without reading GIMP's
|
||
source code and studying all the scripts and plug-ins? As we've
|
||
already seen when registering our first script within GIMP, every
|
||
new component which can be used by other GIMP users/programmers needs
|
||
to have descriptive texts associated with it. All the basic functions,
|
||
as well as all plug-ins and scripts shipped with the GIMP by default,
|
||
have such descriptions, too. The central access point for all
|
||
available functions together with their parameters and descriptions is
|
||
the DB browser, an interactive catalogue that aids you in developing
|
||
scripts.
|
||
<p>
|
||
The DB browser can be started by selecting the menu point ``DB
|
||
Browser'' from the Xtns menu. A dialog window as shown in Figure 1
|
||
appears on your screen.
|
||
<p>
|
||
<H3>Installing the Required Modules</H3>
|
||
<p>
|
||
The best thing to do if you want to work with GIMP-Perl is use one of
|
||
the developer versions of GIMP (1.1.<I>x</I>). You can get it from one of the
|
||
GIMP mirrors, just take a look at <A HREF="http://www.gimp.org/">http://www.gimp.org/</A>. Installing the
|
||
package for GIMP 1.0.<I>x</I> requires a little more work. First, you'll
|
||
have
|
||
to get GIMP-Perl and Gtk-Perl (at least version 5.0120) from any
|
||
CPAN mirror (<A HREF="http://www.cpan.org/">http://www.cpan.org/</A>). You need to unpack the tar files with
|
||
the commands:
|
||
<p>
|
||
<pre>
|
||
tar xzfv Gtk-Perl-0.5120.tar.gz
|
||
tar xzfv Gimp-1.098.tar.gz
|
||
</pre>
|
||
Move to the newly created directories and in each type:
|
||
<p>
|
||
<pre>
|
||
perl Makefile.PL
|
||
make
|
||
make test
|
||
make install
|
||
</pre>
|
||
If Gtk-Perl doesn't work and GNOME is not installed, you may have to
|
||
type:
|
||
<p>
|
||
<pre>
|
||
perl Makefile.PL --without-gnome
|
||
</pre>
|
||
<H3>GIMP Functions</H3>
|
||
<p>
|
||
<center>
|
||
<img alt="figure" src="gx/mauerer/3689f1.gif">
|
||
<h4>Figure 1: The Database Browser</h4></center>
|
||
<p>
|
||
In the left part of Figure 1 is a list box with many function names--the
|
||
GIMP's functionality is really enormous. When you select a function
|
||
from the list, several kinds of information about it appear on the
|
||
right side of the window: the functions name, a blurb (we've heard
|
||
that before--it's the GIMP's name for a short descriptive
|
||
text), a help text and--most important--the parameters needed to
|
||
execute the function correctly. When you see one or more lines headed
|
||
by ``Out:'', the function not only has input parameters, but also
|
||
returns some computed values. The <B>gimp-layer-new</B> function, for
|
||
example, takes a long list of parameter values and returns a new
|
||
layer. We've used the function in our small example script, feeding it
|
||
with the equivalent values and getting back a new layer which was
|
||
assigned to the variable <tt>$layer</tt>.
|
||
<p>
|
||
Obviously, the buttons ``Search by name'' and
|
||
``Search by blurb'' allow you to search either the
|
||
function name or the short description for a piece of text. Do a
|
||
search by name for the string ``canvas'', and you'll get to
|
||
GIMP functions with the word ``canvas'' in their name. Select
|
||
plug-in-apply-canvas and see what parameters were used for the function
|
||
in our script.
|
||
<p>
|
||
If you look at the function names exactly, you will see a very
|
||
important detail: while all the functions listed in the database have
|
||
normal dashes(<tt>-</tt>) in their names, their counterparts in the Perl-script
|
||
used underscores (_) for this purpose. While Scheme (and Lisp) usually
|
||
take the <tt>-</tt> as an optical-separation symbol, Perl uses the _ convention.
|
||
The effect of this is your scripts get more
|
||
consistent with other Perl code and thus are easier to read and
|
||
understand by programmers other than you. So when you look up
|
||
functions in the DBB (an abbreviation for database browser), don't
|
||
forget to replace the dashes by underscores in your Perl program.
|
||
<p>
|
||
In some functions, constants may be used as parameters because
|
||
descriptive names are easier to remember for than numbers. Pay
|
||
attention when using such constants, because GIMP-Perl replaces the
|
||
dashes by underscores here, too.
|
||
<p>
|
||
The DBB is a powerful tool to aid you in script development, but it's
|
||
not the only one available within the GIMP. The alternative one is the
|
||
PDB, the Procedural Data Base Browser. Both show the same functions,
|
||
but present them in a different manner. You can start it by selecting
|
||
the appropriate entry from the Xtns menu. As you can see, there is a
|
||
GIMP-Perl logo in the upper-right corner. The tool is therefore not a
|
||
script-fu tool, but natively written for GIMP-Perl. In the window's
|
||
headline, you can see that the browser is still an ``early alpha
|
||
version'', so be prepared that things may change. Nevertheless,
|
||
PDB is already a very good helper when creating GIMP-Perl scripts.
|
||
<p>
|
||
<center>
|
||
<img alt="figure" src="gx/mauerer/3689f2.gif">
|
||
<h4>Figure 2. The Procedural Database Browser</h4></center>
|
||
<p>
|
||
The whole thing works like this: in the ``Command'' text-box, you type
|
||
in a function name, and all functions containing the substring are
|
||
shown in the box below. You can either continue typing until there's
|
||
only one solution left (insert it by pressing <tt>F2</tt>), or select a
|
||
function name from the list. Select, for example,
|
||
<B>plug_in_apply_canvas</B>. When you press space after the function name,
|
||
the PDB will prompt you for the first parameter of the function,
|
||
simultaneously presenting a list of valid alternatives.
|
||
Again, you can choose one from the list or type in
|
||
the parameter via the keyboard (completion by <tt>F2</tt> works too). The
|
||
whole game runs again until all needed parameters for the function
|
||
call are selected. A nice thing for functions with 10,000 parameters
|
||
is the status-bar at the bottom of the window which shows how the
|
||
percentage of those completed.
|
||
<p>
|
||
When used in conjunction, PDB and DBB are two very useful
|
||
tools to aid you in script development.
|
||
<p>
|
||
<H3>Shorter and Shorter and Shorter</H3>
|
||
<p>
|
||
According to Larry Wall and Randal Schwarz, a programmer has three
|
||
main virtues as they state in <I>Programming Perl</I>: laziness,
|
||
impatience and hubris. But why do I tell you this when talking about
|
||
GIMP? Take a look at the function calls: aren't they really too long
|
||
for a lazy and impatient programmer? Always <tt>GIMP->gimp_...</tt>
|
||
before a simple call can be boring. GIMP-Perl introduced some
|
||
kind of shortenings for this problem. When you look at the GIMP's
|
||
functions, you find they all fit into a certain category that
|
||
is deduced from their heading: all functions starting with
|
||
gimp-palette- have to do with palette operations, layer functions have
|
||
the string gimp-layer- in front of their function name, and so on. As
|
||
GIMP-Perl uses Perl's-object oriented syntax
|
||
much typing can be saved by using the shorter forms for these
|
||
Operations, with the side effect that your scripts will be much easier
|
||
to read and understand. If, for example, you have an image-object
|
||
(<tt>$image</tt> in our example), you can use the gimp-image--functions
|
||
directly by appending them to the object. <tt>Gimp->image_add_layer($image, $layer, 0</tt>)
|
||
becomes <tt>$image->add_layer($layer, 0</tt>)
|
||
by this. <tt>$image</tt> isn't needed
|
||
as a parameter any
|
||
more since it is clear to which image the layer will be added.
|
||
<p>
|
||
Another possibility for shortening your scripts is using the kind of
|
||
abbreviations as you can do with palette operations.
|
||
Instead of writing <tt>Gimp->palette_set_foreground(...)</tt>
|
||
you may simple use <tt>Palette->set_foreground(...)</tt>.
|
||
<p>
|
||
To see what kinds of abbreviations are possible exactly, take a look
|
||
at the Gimp/Fu man page by typing <tt>man Gimp::Fu</tt> (if that
|
||
doesn't
|
||
work, try <tt>perldoc Gimp::Fu</tt>).
|
||
<p>
|
||
<H3>Tracing Errors</H3>
|
||
<p>
|
||
Programmers are just humans, so they tend to make errors in their
|
||
programs. The situation with GIMP-Perl is
|
||
exactly the same, but with a ``special extension'': you can, on the
|
||
one hand, create erroneous Perl code and, on the other hand, call
|
||
GIMP's function in the wrong manner.
|
||
<p>
|
||
The Perl interpreter helps us to fix things falling into the first
|
||
category be displaying corresponding error messages, but what about
|
||
our errors originating from the GIMP? Imagine we were calling one of
|
||
the internal GIMP functions with the wrong set of arguments. Although
|
||
the number of parameters is right, one or more may have values that are out of
|
||
range. The only message issued is something like procedural database
|
||
execution failed at file <I>name</I> line <I>line_number</I>. That's not very
|
||
much information.
|
||
<p>
|
||
Tracing is a way to get more precise messages about your running
|
||
script. Simply insert <tt>Gimp::set_trace(TRACE_NAME)</tt> into the
|
||
header of
|
||
your subroutine, and you'll get a list of all called functions together with their
|
||
arguments. For our simple script, the output to STDERR will look like
|
||
Listing 2 (the lines were split up in several parts because they are very
|
||
long in the original output).
|
||
It is possible to fine tune the information given in a trace with the
|
||
parameter of the <B>set_trace</B> call. In our example, we have used
|
||
TRACE_NAME, but there are other possiblities:
|
||
<p>
|
||
<table border="1"><caption><STRONG>set_trace Options</STRONG></caption>
|
||
<tr>
|
||
<td>Option</td>
|
||
<td> Output Information</td>
|
||
</tr>
|
||
<tr>
|
||
<td>TRACE_NONE</td>
|
||
<td> No tracing output at all.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>TRACE_NAME</td>
|
||
<td> Print all the executed functions together with</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td> their parameters as shown in the previous examples.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>TRACE_DESC</td>
|
||
<td> Print the function description from GIMP's</td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td> internal database: All parameter names, their </td>
|
||
</tr>
|
||
<tr>
|
||
<td> </td>
|
||
<td> description and the possible values for them.</td>
|
||
</tr>
|
||
<tr>
|
||
<td>TRACE_ALL</td>
|
||
<td> Print all informations available.</td>
|
||
</tr>
|
||
</table>
|
||
<p>
|
||
<h4>STDERR Output</h4>
|
||
<p>
|
||
<pre>
|
||
gimp_image_new(width=640, height=480, type=0) = (image=7)
|
||
gimp_palette_set_foreground(foreground=[255,0,0]) = ()
|
||
gimp_palette_set_background(background=[0,0,255]) = ()
|
||
gimp_layer_new(image=7, width=640, height=480, type=0, name="Color Canvas",
|
||
opacity=100.000000, mode=0) = (layer=16)
|
||
gimp_blend(drawable=16, blend_mode=0, paint_mode=0, gradient_type=0,
|
||
opacity=100.000000, offset=0.000000, repeat=0,
|
||
supersample=0, max_depth=0, threshold=0.000000, x1=0.000000,
|
||
y1=0.000000, x2=639.000000, y2=379.000000) = ()
|
||
plug_in_apply_canvas(run_mode=1, image=7, drawable=16,
|
||
direction=0, depth=10) = ()
|
||
gimp_image_add_layer(image=7, layer=16, position=0) = ()
|
||
</pre>
|
||
<p>
|
||
<H3>A More Complex (and Complete) Example</H3>
|
||
<p>
|
||
Let's demonstrate the features of GIMP-Perl shown by now in a more
|
||
complex than the first. Did
|
||
you ever create a home page that uses graphical buttons? Then you
|
||
certainly know that for each button the same operations have to be
|
||
applied all the time--the perfect situation for a GIMP-Perl script.
|
||
<p>
|
||
The thing we are working on are buttons with a text component centered
|
||
in their middle (variable fonts and sizes should be usable), bordered
|
||
by a frame that looks like it has been carved into your desktop. If you've
|
||
already worked with a program using Sun's new Java metal layout, you
|
||
might already know this. Gtk, too, offers the rendering of buttons
|
||
according to such a scheme.
|
||
<p>
|
||
Before we start writing our script, we must think about the steps that
|
||
need to be done first. We need three layers: one for the background,
|
||
one for the border and one for the text. The border and text
|
||
layers must be transparent and therefore need an alpha channel.
|
||
<p>
|
||
As the font name, size and button text need to be user-configurable, we
|
||
must pass them as parameters to the script. When you apply
|
||
existing script-fu-scripts: dialog boxes for the various settings
|
||
appear before the script is actually run. The same thing is possible
|
||
with GIMP-Perl: When registering the function, we just need to say
|
||
what kind of user customizable arguments the script needs, and the
|
||
dialog where the parameters values can be entered is generated and
|
||
shown automatically when the script is executed. All these parameter
|
||
definitions have to be put inside the square brackets that already
|
||
appear in the register of the first example. The
|
||
line describing a parameter also needs to be put into square brackets. For
|
||
our new script, this would look like:
|
||
<p>
|
||
<pre>
|
||
[
|
||
[PF_STRING, 'text', 'The button's text.',""],
|
||
[PF_FONT, 'font', 'Font used for the button's text label.'],
|
||
[PF_BOOL, 'flat', 'Flatten the image and convert it to indexed]
|
||
]
|
||
</pre>
|
||
Experienced Perl users know that a reference to an array containing
|
||
array references is passed that way, but this is just a technical
|
||
detail. The [] block describing the argument is always structured in
|
||
this way:
|
||
<p>
|
||
<pre>
|
||
[PF_TYPE,name,description,default value(optional),other values(optional)]
|
||
</pre>
|
||
<tt>PF_TYPE</tt> sets the type of the argument. This is important
|
||
because the
|
||
input methods differ for the diverse data types: a font selection is
|
||
done via a font selection box, while string are entered in a text box.
|
||
Boolean (true/false) values will be entered using a simple check box.
|
||
The possible values for <tt>PF_TYPE</tt> are documented in the
|
||
Gimp/Fu-man page. As the number of input types is
|
||
quite large, we won't cover them all here--just take a look at the
|
||
man page. (In fact, it would be quite difficult to write a script that
|
||
needs parameters of all types available.)
|
||
<p>
|
||
<tt>name</tt> will precede the actual input element as a descriptive text;
|
||
description will show up as a tool tip (appears when you place your
|
||
mouse over the selection widget and do not move it for some time).
|
||
<p>
|
||
The default setting for a parameter to be usable should supply safe
|
||
``base-values'' to a script--or set parameters to their optimal
|
||
values for the best look to give a good starting point.
|
||
<p>
|
||
The other values have different meanings for the different parameter
|
||
types, but we won't use them here.
|
||
<p>
|
||
<a href="3689l3.html">Listing 3</a>
|
||
<p>
|
||
What else will we need to create the button? A routine to draw the
|
||
frame would be quite handy, and we'll implement this as a Perl
|
||
subroutine that calls the corresponding GIMP functions to paint four
|
||
lines with the aid of the pencil tool. The script is shown in Listing 3.
|
||
As you can see, the subroutine used for controlling the creation of the
|
||
button is no more an anonymous one like in the simple example, but a
|
||
true Perl subroutine. Therefore, we'll have to use
|
||
<B>&create_etched_button</B> to pass a reference of the subroutine to the
|
||
register function.
|
||
<p>
|
||
<center>
|
||
<img alt="figure" src="gx/mauerer/3689f3.gif">
|
||
<h4>Figure 3: The Script's Dialog Box</h4></center>
|
||
<p>
|
||
Our third argument to the script has to name <tt>flat</tt>. When it
|
||
is selected, all layers of the image will be merged together and the
|
||
resulting layer will be converted to the ``indexed'' color format. The
|
||
image may be saved in the gif format.
|
||
<p>
|
||
The general outline of the script should be clear now, as the
|
||
structure doesn't change too much from our simple example except
|
||
that we now have parameters and the subroutine is a real Perl subroutine. One
|
||
thing that still needs to be explained is how the
|
||
text layer is created.
|
||
<p>
|
||
Font and size for the text have been selected by the user and can be
|
||
found in the string <tt>$font</tt>. It's format is called X
|
||
logical font description and looks like:
|
||
<p>
|
||
<pre>
|
||
-Adobe-Courier-Medium-R-Normal-14-140-75-75-M-90-ISO8859-1
|
||
</pre>
|
||
Quite complicated. But that's no problem: we can use that string
|
||
directly as an argument for <B>gimp-text-fontname</B>, a function that
|
||
creates a new layer containing a specified text string. The function
|
||
needs both the font name, and the font size. It is
|
||
contained in the font string and can be extracted from it via the
|
||
function <B>xlfd_size</B> provided by GIMP-Perl.
|
||
<p>
|
||
Drawing the two overlaying frames that create the etched effect is
|
||
done by the Perl procedure <B>draw_frame</B> which is not exported into the
|
||
GIMP's database and therefore can be used only in our script. It draws
|
||
four lines, based on the knowledge of where the upper-left and lower-right
|
||
corner of the box are located. The settings for color and brush
|
||
are not changed; the procedure operates with the settings active when it is
|
||
called.
|
||
<p>
|
||
If the <tt>flat</tt> flag has been set (<tt>$flatten</tt> is 1
|
||
then), additional actions take place: the layers are merged together, and the
|
||
image is converted to index colors, suitable for saving as a gif file.
|
||
<p>
|
||
For the user's convenience, the back and foreground colors
|
||
from the palette are restored to the settings before the script's
|
||
execution. Then we return the picture to the GIMP, and a new window
|
||
containing a graphical button shows up. You won't see the etched
|
||
effect too much here, but try putting the button in a web page--it
|
||
will look like Figure 4 shows.
|
||
<p>
|
||
<center>
|
||
<img alt="figure" src="gx/mauerer/3689f4.gif">
|
||
<h4>Figure 4: Buttons Generated with GIMP-Perl</h4></center>
|
||
<p>
|
||
If you like the script, you may install it with the gimptool command
|
||
as demonstrated in the simple example. A new entry called
|
||
``Etched''
|
||
shows up in <tt>Xtns -> Script-Fu -> Buttons</tt> then.
|
||
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <!-- P -->
|
||
<H5 ALIGN=center>
|
||
|
||
Copyright © 2000, Wolfgang Mauerer<BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H1><font color="maroon">Private Networks and Roadrunner using IP Masquerading</font></H1>
|
||
<H4>By <a href="mailto:zing@tcu-inc.com">Mark Nielsen</a> and <a href="mailto:byrd.74@osu.edu">Andrew Byrd</a></H4>
|
||
</center>
|
||
<P> <HR> <P>
|
||
|
||
<!-- END header -->
|
||
|
||
|
||
|
||
|
||
<h3>Abstract</h3>
|
||
This article is intended to assist in setting up a masqueraded private TCP/IP network connected to the internet via Time Warner's Roadrunner cable modem service. It is a rewrite of a previous article on the same subject -- with Redhat 6 available and Roadrunner's migration to DHCP (at least in Columbus, Ohio, check to see if they use DHCP in your city) several things have changed.
|
||
This is a serious exercise in networking, involving concepts from DNS to firewalls. When you complete this project, you will truly have some experience in small-scale networking.
|
||
<p>
|
||
One thing to note, I called up RR, and they were very vague about whether they allow people to use IP Masquerading. The sales rep
|
||
basically said that if you hog bandwidth, they will get upset. If you run servers that hog bandwidth, they will get upset.
|
||
<p>
|
||
There are two "I"'s in this document. Sometimes it is Andrew talking, and sometimes it is Mark.
|
||
<hr>
|
||
<h2>Table of Contents</h2>
|
||
<ol>
|
||
<li><a href="#one">Required Reading</a>
|
||
<li><a href="#two">The Big Picture</a>
|
||
<li><a href="#three">Selecting Hardware</a>
|
||
<li><a href="#four">Setting up the Gateway</a>
|
||
<li><a href="#five">Configuring IPChains / Masquerading</a>
|
||
<li><a href="#six">Configuring DNS on the Private Network</a>
|
||
<li><a href="#seven">Setting up the Workstation Machines</a>
|
||
<li><a href="#eight">Security Concerns</a>
|
||
<li><a href="#nine">Dynamic DNS</a>
|
||
<li><a href="#comments"> Comments and Other Notes</a>
|
||
<li><a href="#ten">Example Files</a>
|
||
</ol>
|
||
<a name="one"><h2>Required Reading</h2></a>
|
||
These HOWTOs contain the necessary background information required to understand the rest of this document. If you proceed without having read these, you may not fully grasp what is being done.
|
||
<ol>
|
||
<li><a href=http://www.linuxdoc.org/HOWTO/NET3-4-HOWTO.html>Networking</a> - Basic Ethernet and TCP/IP information. Sections 5 and 6 are most relevant.
|
||
<li><a href=http://www.linuxdoc.org/HOWTO/IPCHAINS-HOWTO.html>IPCHAINS</a> - IP Firewall Chains will do most of the work in our configuration. Also has many security implications.
|
||
<li><a href=http://www.linuxdoc.org/HOWTO/DNS-HOWTO.html>DNS</a> - setting up DNS will be a lot easier if you understand how it works.
|
||
<li><a href=http://www.linuxdoc.org/HOWTO/IP-Masquerade-HOWTO.html>IP Masquerading</a> - covered in a more general sense than we will here.
|
||
<li> <a href="../issue28/nielsen.html">Our Previous</a> article on this topic.
|
||
<li> <a href="http://www.vortech.net/rrlinux/"> RRLinux Help Site</a>
|
||
<li> <a href="http://dir.yahoo.com/Computers_and_Internet/Software/Operating_Systems/Unix/Security/"> Unix Security</a> located
|
||
on Yahoo.
|
||
<li> <a href="http://stones.wcbe.org/~COLUG/"> The Central Ohio Linux User Group</a> -- where lots of ideas come from.
|
||
|
||
</ol>
|
||
<p>
|
||
<a name="two"><h2>The Big Picture</h2></a>
|
||
This diagram demonstrates the basic idea:
|
||
|
||
<br><br><center><img src=gx/nielsen/diagram.png></center><br>
|
||
|
||
Each heavy black dot in this diagram is an ethernet interface card, and each connecting line is a length of CAT5 cable, with the exception of the one running down from the cable modem, which is your cable connection to Time Warner. Note that you need one interface card in each workstation, and two in your gateway machine.
|
||
<p>
|
||
Your workstations and hub are inside your private network, indicated by a white background in the image, and the rest of the world is shown as the gray area. Note that the gateway machine is riding the fence between the two. Each of the Ethernet cards has an IP address assigned to it, and your gateway has one in the outside world and one on the inside. Positioned as such, the gateway has the power to forward communications from your private network to the outside world.
|
||
<p>
|
||
For the purpose of this discussion, I have assigned the internal network the 10.x.x.x (netmask 255.0.0.0) block of reserved private IP addresses and chosen the domain name "local". These can of course be changed if you know what you are doing, but they should work for most people.
|
||
<p>
|
||
The workstations are named "w1.local" (10.0.0.10) through "w3.local" (10.0.0.30) and the masquerading gateway is called "main.local" (10.0.0.1 on its private adaptor.) As before, you can modify or expand this scheme if you feel comfortable with it.
|
||
<p>
|
||
<a name="three"><h2>Selecting Hardware</h2></a>
|
||
The gateway machine requires relatively few resources, and can even be an old '486 machine with relatively little memory; routing packets is not particularly strenuous work. If it can run Linux at all, it should do the trick.
|
||
<p>
|
||
The workstations can be any machine running a TCP/IP capable OS, such as Linux, MacOS, or even MS operating systems, and you will need to outfit each machine with an ethernet card.
|
||
<p>
|
||
Choose a 10/100 autosensing hub. It makes your life a lot easier. Use 100 mbit ethernet cards on the inside, and the ethernet card
|
||
connecting your gateway computer to the outside can be just a 10 mbit ethernet card. I will still use all the same type of
|
||
ethernet cards and make them all 10/100. Using the same hardware across the board makes your life easier most of the time.
|
||
<p>
|
||
It is a good idea to stick with PCI ethernet cards in linux systems. Ethernet cards are quite cheap now, and having PCI cards will save you some possible headaches in the configuration phase. I have used the Netgear FA310TX card flawlessly in several machines, and have been told that Intel cards provide extremely reliable service. In any case, do some web research and make sure that there are commonly available modules for the cards you buy. The Netgear card and most 3com cards (which I have used extensively) have drivers that ship with Redhat 6. If you must use ISA cards, 3com 3c509s are quite easy to use. Keep in mind that if you are using an older machine for your gateway, it may have only ISA slots, possibly requiring you to use two ISA ethernet cards. In this case, you will have to acquire a utility program (which usually runs only in DOS) for your cards from their manufacturer, and use this program to set the IO address and/or IRQ of the cards to prevent conflicts.
|
||
<p>
|
||
<a name="four"><h2>Setting up the Gateway</h2></a>
|
||
The computer which will be your gateway will be the computer which RR is connected to.
|
||
<p>
|
||
First, physically install your carefully selected Ethernet cards in the machine. It is much less confusing to use two different brand cards on the gateway; by having a unique driver for each card you can be sure which one will be called eth0 and which will be eth1, and also lessen the chances of interrupt conflicts (to be avoided like the plague). If you opt for ISA cards, you may need to download some DOS utilities to set the IRQ and I/O addresses.
|
||
<p>
|
||
Start with a clean install of the Redhat 6 (for the purpose of this article) distribution on the gateway. If you've got the hard drive space, go ahead and install everything, but you really don't need an X server, graphics processing software, etc. on this machine. Just make sure that you are installing the ipchains, BIND, cacheing nameserver, pump, and other packages critical to what we are doing here. Also tell the install program to start named at boot.
|
||
<p>
|
||
For the purpose of this article, eth0 will be going to the cable modem and eth1 will be on your private network. You can probably get the first ethernet device up and running during the initial install. Have eth0 connected to the cable modem with the necessary crossover cable and tell it to use DHCP to get its IP address (don't specify one) since the Roadrunner service will be assigning us an internet IP. Use the netconf utility (or edit the /etc/sysconfig/network-scripts/ifcfg-eth? and <a href=#confmod>/etc/conf.modules</a> files directly) to get eth1 working once you can boot, and assign this one a private network IP address (10.0.0.1). It may take a bit of tinkering to get both cards detected and up. Be sure to specify the correct kernel modules/drivers, and once you can do an 'ifconfig' and see both eth0 and eth1 (or see them both go up at boot time), you should be ready to continue. It is possible to compile network card drivers into the kernel (this was often done in the past) but it is common and perfectly acceptable to simply use modular drivers as we've suggested here.
|
||
<p>
|
||
Ensure that your /etc/sysconfig/network looks like <a href="#networkg">this</a> and replace /etc/hosts with your own version of <a href="#hosts">this file</a>. The /etc/hosts file isn't absolutely necessary since we'll be setting up a DNS server, but it's a good backup.
|
||
<p>
|
||
NOTE ON TWO 3c509 NETWORK CARDS:
|
||
<br>Install both ISA ethernet cards before you install RedHat Linux. The two ethernet cards Mark used (a long time ago) were
|
||
3com 3c509. The first had values of, irq=10, address=300 and the second had irq=11, address=310.
|
||
Also, when you install RedHat, go ahead and install it for a LAN and have it autoprobe the
|
||
ethernet cards.
|
||
<p>NOTE ON DHCP:<br>
|
||
You can setup DHCP using
|
||
<a href="http://www.redhat.com/support/manuals/RHL-6.1-Manual/ref-guide/s1-sysconfig-control-panel.html">
|
||
RedHat's control panel</a>, netconf, editing the files manually, or during the installation of RedHat (or whatever
|
||
other Linux distribution you are using).
|
||
|
||
<a name="five"><h2>Configuring IPChains / Masquerading</h2></a>
|
||
<p>
|
||
Try pinging a few outside servers or retrieving a few web pages with lynx to see if your Roadrunner connection is functioning. If so, you are ready to add masquerading. Append <a href="#rclocal">this</a> block of modprobe and ipchains commands to your /etc/rc.d/rc.local script to enable forwarding/masquerading and also provide some fairly strong firewall rules.
|
||
<p>
|
||
<a name="six"><h2>Configuring DNS on the Private Network</h2></a>
|
||
As of now, 'pump' (which retrieves the DHCP information for eth0) is also setting the /etc/resolv.conf file to use Roadrunner's DNS servers. This provides no functionality for looking up hostnames in our private network and would require that each workstation have an identical copy of /etc/hosts and be manually set to use a Roadrunner nameserver. This is a little messy, so it's advisable to run your own DNS service.
|
||
<p>
|
||
Armed with some knowledge from the DNS-HOWTO, create or modify <a href="#namedconf">/etc/named.conf</a>, <a href="#resolvconf">/etc/resolv.conf</a>, and the related <a href="#varnamed">files</a> in /var/named. You must also create or edit <a href="#pumpconf">/etc/pump.conf</a> to keep pump from overwriting your resolv.conf settings every time eth0 goes up. Verify that 'named' is being run at bootup (there will be an S??named link in /etc/rc.d/rc3.d/ if it is) and you should have a cacheing nameserver running upon reboot, as well as DNS for your private network.
|
||
<p>
|
||
<a name="seven"><h2>Setting up the Workstation Machines</h2></a>
|
||
Make sure all of your private network machines (including the gateway) are connected via a hub and Cat5 cable, and then configure the workstations. Give each machine/interface a unique IP address within the private block, and here is an example <a href="#networkw">/etc/sysconfig/network</a> for the Linux workstations. Add a customized <a href="#hosts">/etc/hosts</a> and this <a href="#resolvconf">/etc/resolv.conf</a> file, and you should be on your way. Try some pings or read some web documents from a workstaion to ensure that masquerading and DNS are operating correctly.
|
||
<p>
|
||
Here is an example for other computers in your network.
|
||
<ol>
|
||
<li>ip address = 10.0.0.10
|
||
<li>name address = w1.local
|
||
<li>netmask = 255.255.255.0
|
||
<li><a href="#resolvconf">/etc/resolv.conf</a> for your other Linux computers.
|
||
<li><a href="#hosts">/etc/hosts</a> is a file I would use, but don't need. Just in case your dns server fails, this is handy
|
||
for a backup.
|
||
</ol>
|
||
The only thing you should have to change to each additional computer is the ip address and the
|
||
name address. w2.local and 10.0.0.20 would be used for the next computer. Get the idea?
|
||
<p>
|
||
Also, if you are using pc or mac clients or other stuff, check out
|
||
<a href="http://www.ssc.com/mirrors/LDP/HOWTO/IP-Masquerade-HOWTO.html">
|
||
the masquerading mini-howto</a>.
|
||
<p>
|
||
The general idea is to specify your masquerading machine (10.0.0.1) as the gateway and DNS server for each machine. The <a href="#one">IP-Masquerading HOWTO</a> has an excellent section on how to configure workstations running several different non-Linux operating systems in a masq'd private network.
|
||
<p>
|
||
<a name="eight"><h2>Security Concerns</h2></a>
|
||
Being connected to the internet constantly has its risks. There are plenty of people out there who have nothing better to do than wreck unprotected systems, and many more who would like to use your system as a jumping-off point for illegal activities.
|
||
<p>
|
||
Masquerading is inherently somewhat unsafe because we must allow traffic to pass through the firewall. By disabling telnet, ftp, or other daemons that listen at ports on your gateway you can avert much of the danger, and fully understanding IP firewall chains is also valuable. A port forwarder such as <a href="ftp://ftp.ox.compsoc.org.uk/pub/users/steve/ipsubs/">ipportfw</a>
|
||
can also be used to redirect incoming requests for connections to other machines on your network (which would then be running the requested service), directing the danger away from your gateway.
|
||
<p>
|
||
You can prevent access to your DNS server by moving it to another machine on your network or by simply giving an appropriate listen-on directive to named (see the named.conf man page) to keep it from binding to a port on your external interface. If you would like higher security but need login capabilities from the outside, look into <a href="http://www.openssh.com/">
|
||
openssh</a>,
|
||
which allows telnet-like logins over an encrypted connection. It is also advisable to install an advanced logger such as
|
||
<a href="http://www.tigerteam.net/linuxgroup/tcplogd/">tcplogd</a> which can detect and inform you of most portscans and malicious activity.
|
||
<p>
|
||
Lastly, in many cases you can simply turn off the interface to the outside world when not using your connection, thereby lessening the chances of someone gaining unauthorized access. Simply issue 'ifdown eth0' on your gateway machine to disable your connection and 'ifup eth0' when you need to use it again.
|
||
<p><font size=+1 color=green> Summary of Security</font>
|
||
<ol>
|
||
<li> The only service on your firewall computer should <A href="http://www.openssh.com/">openssh</a>.
|
||
Ideally, you shouldn't have your DNS on your gateway computer. Although our server configuration has DNS on it, again, ideally,
|
||
you should put the DNS service on another internal computer.
|
||
If you must, keep it firewalled at least so that the outside can't use it.
|
||
<li> All other services (like a webserver) that you want available to the outside
|
||
should be port forwarded using <a href="ftp://ftp.ox.compsoc.org.uk/pub/users/steve/ipsubs/">ipportfw</a>
|
||
to another computer on the inside of your network.
|
||
<li> Do NOT NOT NOT NOT have any services under /etc/inetd.conf turned on, or just don't have inet running.
|
||
<br> chkconfig inet off ### for RedHat users
|
||
<br> /etc/rc.d/init.d/inet stop
|
||
<li> Have all other internal services on a separate computer (printing, filesharing, database, etc).
|
||
<li> Install <a href="http://www.tigerteam.net/linuxgroup/tcplogd/">tcplogd</a> and post the people who have scanned your computer -- hey, it is public information isn't it?
|
||
<li> There are ways to tunnel VNC, mail, ftp, and other programs through <a href="http://www.openssh.com/">OpenSSH</a>.
|
||
This can keep things secure.
|
||
<li> Check out <a href="http://www.psionic.com//abacus/">
|
||
Abacus Project - The Intrusion Prevention System</a>
|
||
</ol>
|
||
<p>
|
||
<a name="nine"><h2>Dynamic DNS</h2></a>
|
||
Unless you asked for a fixed IP address, RoadRunner gives you a different ip address every time you log in. Dynamic DNS gives you
|
||
an alias so that you can find your computer at home when you are at work or let other people know where it is.
|
||
<p>
|
||
|
||
<a href="http://www.dyndns.org">Dyndns.org</a> can provide for you a static domain name despite your dynamic IP address, giving others on the internet an easy to remember and constant name for your gateway machine. Once you have registered with dyndns, a utility called <a href="http://www.gandy.dyndns.org/~thomas/ddup.php3">'ddup'</a> can contact dyndns.org and update your nameserver record when your IP address changes. Appending <a href="#ddup">this</a> shell script fragment to our /etc/rc.d/rc.local will update your dyndns record at boot time, but only if your IP address has changed (dyndns doesn't like you to update your record for no reason.) This assumes that you have 'ddup' installed properly.
|
||
<p>
|
||
I tend to reboot the gateway machine every day or two and haven't had any problems with my assigned IP changing while it was up, though this is technically possible. If you plan on leaving your gateway up for weeks at a time, you might want to have cron run this script occasionally to make sure your dyndns record is always current. This will take a little reworking -- experiment and see what you can do.
|
||
|
||
<hr>
|
||
<a name="comments"><h2>Comments and Other Notes</h2></a>
|
||
<ol>
|
||
<li> For even more security, you may want to buy a network switch where you can isolate traffic on the inside on your network.
|
||
They are expensive, but worth it for the serious networker.
|
||
<li> There are more advanced things you can do once you get your internal network setup. You can have fetchmail download all email
|
||
from a domain and match up email addresses to your local users, use a proxy server to save bandwith (which may not
|
||
be necessary, set VPN set tunneling of services through openssh, etc.
|
||
</ol>
|
||
|
||
<EM> <a href="http://tcu-inc.com"> Mark Nielsen</a> works as a book binder for <a href="http://www.genericbooks.com">ZING</a>
|
||
and <a href="http://www.tcu-inc.com">TCU</a>
|
||
and Andrew is a Linux consultant.</EM>
|
||
|
||
<hr>
|
||
<a name="ten"><h2>Example Files</h2></a>
|
||
(these are just syntactic examples, you will probably have to modify domain names, etc. for your own use)
|
||
<br><br>
|
||
<a name="rclocal"><h3>/etc/rc.d/rc.local (gateway)</h3></a>
|
||
<pre>
|
||
# Firewall config - Should be appended to the end of /etc/rc.d/rc.local to run on boot.
|
||
# Adapted from examples in the IP Masquerading HOWTO and IPChains HOTWO. See the original
|
||
# documents to learn more. These examples should provide a fairly safe masquerading
|
||
# firewall.
|
||
|
||
echo "Loading IP masquerading modules..."
|
||
# load modules to handle masquerading some tricky but common protocols
|
||
/sbin/depmod -a
|
||
/sbin/modprobe ip_masq_ftp
|
||
/sbin/modprobe ip_masq_raudio
|
||
/sbin/modprobe ip_masq_irc
|
||
|
||
echo "Turning IP forwarding on..."
|
||
# make sure the forwarding is turned on
|
||
echo "1" > /proc/sys/net/ipv4/ip_forward
|
||
|
||
# Get the dynamic IP address assigned via DHCP
|
||
# and external interface name, save them to variables for easy use
|
||
extip="`/sbin/ifconfig eth0 | grep 'inet addr' | awk '{print $2}' | sed -e 's/.*://'`"
|
||
extint="eth0"
|
||
|
||
# Do the same for internal network name and interface
|
||
intint="eth1"
|
||
intnet="10.0.0.0/8"
|
||
|
||
echo "Configuring firewall chains:"
|
||
echo -n "input..."
|
||
#############################################################################
|
||
# Input chain: flush and set default policy of reject. Actually the default policy
|
||
# is irrelevant because there is a catch all rule with deny and log.
|
||
|
||
ipchains -F input
|
||
ipchains -P input REJECT
|
||
|
||
# local interface, local machines, going anywhere is valid
|
||
ipchains -A input -i $intint -s $intnet -d 0.0.0.0/0 -j ACCEPT
|
||
|
||
# remote interface, claiming to be local machines, IP spoofing, get lost
|
||
ipchains -A input -i $extint -s $intnet -d 0.0.0.0/0 -l -j REJECT
|
||
|
||
# remote interface, bounce anything trying to open a connection to us
|
||
# this should keep anyone from opening TCP connections to this machine from
|
||
# the outside world. Just an example of what we can do with IPChains, and not
|
||
# a bad idea unless you have a reason for letting people connect to your firewall.
|
||
# ipchains -A input ! -f -i $extint -p TCP -y -j REJECT
|
||
|
||
# remote interface, any source, going to roadrunner dhcp address is ok
|
||
ipchains -A input -i $extint -s 0.0.0.0/0 -d $extip/32 -j ACCEPT
|
||
|
||
# loopback interface is valid.
|
||
ipchains -A input -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
|
||
|
||
# catch all rule, all other incoming is denied and logged.
|
||
ipchains -A input -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT
|
||
|
||
echo -n "output..."
|
||
#############################################################################
|
||
# Output chain: flush and set default policy of reject. Actually the default policy
|
||
# is irrelevant because there is a catch all rule with deny and log.
|
||
|
||
ipchains -F output
|
||
ipchains -P output REJECT
|
||
|
||
# local interface, any source going to local net is valid
|
||
ipchains -A output -i $intint -s 0.0.0.0/0 -d $intnet -j ACCEPT
|
||
|
||
# outgoing to local net on remote interface, stuffed routing, deny
|
||
ipchains -A output -i $extint -s 0.0.0.0/0 -d $intnet -l -j REJECT
|
||
|
||
# outgoing from local net on remote interface, stuffed masquerading, deny
|
||
ipchains -A output -i $extint -s $intnet -d 0.0.0.0/0 -l -j REJECT
|
||
|
||
# anything else outgoing on remote interface is valid
|
||
ipchains -A output -i $extint -s $extip/32 -d 0.0.0.0/0 -j ACCEPT
|
||
|
||
# loopback interface is valid.
|
||
ipchains -A output -i lo -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
|
||
|
||
# catch all rule, all other outgoing is denied and logged.
|
||
ipchains -A output -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT
|
||
|
||
echo -n "forward..."
|
||
#############################################################################
|
||
# Forward chain: flush and set default policy of deny. Actually the default policy
|
||
# is irrelevant because there is a catch all rule with deny and log.
|
||
#
|
||
ipchains -F forward
|
||
ipchains -P forward DENY
|
||
|
||
# Masquerade from local net on local interface to anywhere.
|
||
# This is the line that does all the work, most of the rest if the lines
|
||
# in this file are just for security reasons.
|
||
ipchains -A forward -i $extint -s $intnet -d 0.0.0.0/0 -j MASQ
|
||
|
||
# catch all rule, all other forwarding is denied and logged. pity there is no
|
||
# log option on the policy but this does the job instead.
|
||
ipchains -A forward -s 0.0.0.0/0 -d 0.0.0.0/0 -l -j REJECT
|
||
|
||
echo "done."
|
||
</pre>
|
||
<br>
|
||
<br>
|
||
<a name="networkg"><h3>/etc/sysconfig/network (gateway)</h3></a>
|
||
<pre>
|
||
NETWORKING="yes"
|
||
FORWARD_IPV4="yes"
|
||
HOSTNAME="main.local"
|
||
DOMAINNAME="local"
|
||
GATEWAY="10.0.0.1"
|
||
GATEWAYDEV="eth0"
|
||
</pre>
|
||
<br>
|
||
<br>
|
||
<a name="networkw"><h3>/etc/sysconfig/network (workstations)</h3></a>
|
||
<pre>
|
||
NETWORKING="yes"
|
||
FORWARD_IPV4="no"
|
||
# change hostname on each machine
|
||
HOSTNAME="w1.local"
|
||
DOMAINNAME="local"
|
||
GATEWAY="10.0.0.1"
|
||
GATEWAYDEV="eth0"
|
||
</pre>
|
||
<br>
|
||
<br>
|
||
<a name="hosts"><h3>/etc/hosts (gateway and workstations)</h3></a>
|
||
<pre>
|
||
127.0.0.1 localhost localhost.localdomain
|
||
10.0.0.1 main main.local
|
||
10.0.0.10 w1 w1.local
|
||
10.0.0.20 w2 w2.local
|
||
10.0.0.30 w3 w3.local
|
||
</pre>
|
||
<br>
|
||
<br>
|
||
<a name="resolvconf"><h3>/etc/resolv.conf (gateway and workstations)</h3></a>
|
||
<pre>
|
||
search local columbus.rr.com
|
||
nameserver 10.0.0.1 #our local nameserver
|
||
nameserver 128.146.1.7 #fill in a backup server. do not use this one, it is for OSU students only.
|
||
</pre>
|
||
<br>
|
||
<br>
|
||
<a name="pumpconf"><h3>/etc/pump.conf (on gateway only)</h3></a>
|
||
<pre>
|
||
device eth0 {
|
||
nodns
|
||
}
|
||
</pre>
|
||
<br>
|
||
<br>
|
||
<a name="namedconf"><h3>/etc/named.conf (on gateway only)</h3></a>
|
||
<pre>
|
||
options {
|
||
directory "/var/named";
|
||
};
|
||
zone "." {
|
||
type hint;
|
||
file "named.ca";
|
||
};
|
||
zone "local"{
|
||
type master;
|
||
file "local.zone";
|
||
notify no;
|
||
};
|
||
zone "0.0.10.in-addr.arpa"{
|
||
type master;
|
||
file "local.reverse";
|
||
notify no;
|
||
};
|
||
zone "0.0.127.in-addr.arpa"{
|
||
type master;
|
||
file "named.local";
|
||
};
|
||
</pre>
|
||
<br>
|
||
<br>
|
||
<a name="varnamed"><h3>/var/named/local.zone (on gateway only)</h3></a>
|
||
<pre>
|
||
@ IN SOA main.local. root.main.local. (
|
||
200001151 ; serial
|
||
8 ; refresh
|
||
2 ; retry
|
||
1 ; expire
|
||
1 ; default_ttl
|
||
)
|
||
@ IN NS main.local.
|
||
localhost IN A 127.0.0.1
|
||
main IN A 10.0.0.1
|
||
w1 IN A 10.0.0.10
|
||
w2 IN A 10.0.0.20
|
||
w3 IN A 10.0.0.30
|
||
</pre>
|
||
<br>
|
||
<br>
|
||
<h3>/var/named/local.reverse (on gateway only)</h3>
|
||
<pre>
|
||
0.0.10.in-addr.arpa. IN SOA main.local. root.main.local. (
|
||
1997022700 ; serial
|
||
28800 ; refresh
|
||
14400 ; retry
|
||
3600000 ; expire
|
||
86400 ; default_ttl
|
||
)
|
||
1.0.0.10.in-addr.arpa. IN PTR main.local.
|
||
10.0.0.10.in-addr.arpa. IN PTR w1.local.
|
||
20.0.0.10.in-addr.arpa. IN PTR w2.local.
|
||
30.0.0.10.in-addr.apra. IN PTR w3.local.
|
||
</pre>
|
||
<br>
|
||
<br>
|
||
<a name="ddup"><h3>append to /etc/rc.d/rc.local (dyndns support with ddup)</h3></a>
|
||
<pre>
|
||
# Update dyndns.org entry with crafty abuse prevention
|
||
# This will not work unless you have a dyndns account and the ddup package installed.
|
||
# This requires some variables that are set in the firewall config script,
|
||
# so this should be appended to the end of the firewall script.
|
||
|
||
# replace dummy.hostname with your registered hostname
|
||
reghost="dummy.hostname"
|
||
regip="`nslookup $reghost main.dyndns.org | tail -n 3 | grep 'ddress' | awk '{print $2}'`"
|
||
|
||
echo -e "\n Dyndns.org abuse prevention IP address check:"
|
||
echo "$reghost registered: $regip"
|
||
echo -e "$extint has IP address: $extip \n"
|
||
|
||
if [ "$regip" = "$extip" ]; then
|
||
echo "Address has not changed. DDUP not run.";
|
||
else
|
||
echo "Address has changed. Updating your record.";
|
||
ddup --host $reghost;
|
||
fi
|
||
</pre>
|
||
<br>
|
||
<br>
|
||
<a name="confmod"><h3>/etc/conf.modules (gateway; only 'alias ethx' lines are relevant)</h3></a>
|
||
<pre>
|
||
alias eth0 3c509
|
||
alias parport_lowlevel parport_pc
|
||
pre-install pcmcia_core /etc/rc.d/init.d/pcmcia start
|
||
alias eth1 tulip
|
||
</pre>
|
||
|
||
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <!-- P -->
|
||
<H5 ALIGN=center>
|
||
|
||
Copyright © 2000, Mark Nielsen, Andrew oyd<BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H1><font color="maroon">Static checking of C programs with LCLint</font></H1>
|
||
<H4>By <a href="mailto:iclabs@vsnl.com">Pramode C E and Gopakumar C E</a></H4>
|
||
</center>
|
||
<P> <HR> <P>
|
||
|
||
<!-- END header -->
|
||
|
||
|
||
|
||
|
||
<BLOCKQUOTE>
|
||
<p> "Thou shalt run lint frequently and study its pronouncements with
|
||
care, for verily its perception and judgment oft exceed thine."
|
||
<DIV ALIGN="right"><cite>-Henry Spencer, "The Ten Commandments for C Programmers"</cite></DIV>
|
||
</BLOCKQUOTE>
|
||
<p> C programmers take pride in thinking(and often proclaiming to the
|
||
world) that they know what they are doing. This supreme self confidence
|
||
(or shall we say arrogance?) is not a bad thing - but a little caution
|
||
is always judicious as C is a language with many dark corners(why
|
||
should people write books like "C Traps and Pitfalls"?). Taking Lint as
|
||
a companion with you in your journey into the dark woods of C will
|
||
always be worthwhile - though this companion is at times a bit noisy
|
||
and tiring!
|
||
|
||
<H2><b>What is Lint?</b></H2>
|
||
|
||
<p>In the good old days(it is said), a decision was made to take out
|
||
full semantic checking from the C compiler and put it in a stand alone
|
||
program called <b>lint</b>(the usual reasons - making the compiler
|
||
smaller, simpler and faster - worshiping at the altar of the little
|
||
Tin God of efficiency). The C programmer, so sure of himself,
|
||
never took the trouble to run lint on his code - with the extremely
|
||
gratifying result that he got buggy code which compiled very fast! Lint
|
||
is a tool which shows you how your smart C compiler may spring
|
||
surprises on you - ignore him at your own peril.
|
||
|
||
<H2><b>Which Lint should I use?</b></H2>
|
||
<p>You can give LCLint a try. LCLint is a powerful tool which is available for free in source form from <a href="http://lclint.cs.virginia.edu/ftp/lclint/lclint-2.4b.src.tar.gz">http://lclint.cs.virginia.edu/ftp/lclint/lclint-2.4b.src.tar.gz</a>
|
||
LCLint, as we will see later, is much
|
||
more than a lint.</p>
|
||
|
||
<H2><b>What can LCLint do?</b></H2>
|
||
<p>LCLint does the traditional lint checks like detecting:
|
||
<ol>
|
||
<li>Unused declarations
|
||
<li>Type inconsistencies
|
||
<li>Unreachable code
|
||
<li>Use before definition
|
||
<li>Likely infinite loops and fall through cases
|
||
<li>Ignored return values and execution paths with no return
|
||
</ol>
|
||
But the specialty of LCLint is that it can do much more powerful and extensive checks by making use of
|
||
annotations (in the form of special comments) in your source program.
|
||
|
||
<H2><b>Show me LCLint in action</b></H2>
|
||
|
||
<p>Here is a small C program:
|
||
<PRE>
|
||
|
||
main()
|
||
{
|
||
int a[10];
|
||
if (sizeof(a)/sizeof(a[0]) > -1)
|
||
printf("hello\n");
|
||
}
|
||
|
||
</PRE>
|
||
We expected this to print hello, but it did not. gcc did not give us any hint. Let us see what lint has to say
|
||
about this beauty. Here is the output from running 'lclint a.c':
|
||
<PRE>
|
||
|
||
LCLint 2.4b --- 18 Apr 98
|
||
|
||
a.c: (in function main)
|
||
a.c:4:15: Operands of > have incompatible types (arbitrary unsigned integral
|
||
type, int): sizeof((a)) / sizeof((a[0])) > -1
|
||
To ignore signs in type comparisons use +ignoresigns
|
||
a.c:6:2: Path with no return in function declared to return int
|
||
There is a path through a function declared to return a value on which there
|
||
is no return statement. This means the execution may fall through without
|
||
returning a meaningful result to the caller. (-noret will suppress message)
|
||
|
||
Finished LCLint checking --- 2 code errors found
|
||
|
||
</PRE>
|
||
Oh, oh, sizeof gives you the size as an unsigned value. We are comparing this to -1, which when interpreted
|
||
as an unsigned yields a big number.</p>
|
||
|
||
<p> The output of LCLint is verbose, but it is in a form readable by ordinary mortals, and not ANSI (or ISO or
|
||
whatever) legalese. The output also displays enough of context to help us immediately locate the trouble spot.
|
||
Note that we are also told how to turn off such errors, ie, use +ignoresigns as an option when invoking LCLint.
|
||
You may call LCLint a program with a very 'helping mentality'.
|
||
|
||
<p> Let us see another example, a goof-up which any C programmer worth his name should have made when he was a
|
||
toddler:
|
||
<PRE>
|
||
|
||
main()
|
||
{
|
||
int a=0;
|
||
while (a=1)
|
||
printf("hello\n");
|
||
return 0;
|
||
}
|
||
|
||
</PRE>
|
||
|
||
|
||
|
||
LCLint is justifiably angry at such amateurish use of C, but he is gentle in his admonishments:
|
||
<PRE>
|
||
|
||
LCLint 2.4b --- 18 Apr 98
|
||
|
||
c.c: (in function main)
|
||
c.c:4:14: Test expression for while is assignment expression: a = 1
|
||
The condition test is an assignment expression. Probably, you mean to use ==
|
||
instead of =. If an assignment is intended, add an extra parentheses nesting
|
||
(e.g., if ((a = b)) ...) to suppress this message. (-predassign will suppress
|
||
message)
|
||
c.c:4:14: Test expression for while not boolean, type int: a = 1
|
||
Test expression type is not boolean or int. (-predboolint will suppress
|
||
message)
|
||
|
||
Finished LCLint checking --- 2 code errors found
|
||
|
||
</PRE>
|
||
|
||
<H2><b>Memory management pitfalls</b></H2>
|
||
<p> LCLint is capable of detecting many memory management gotchas. Here is one:
|
||
<PRE>
|
||
|
||
#include <stdlib.h>
|
||
int main()
|
||
{
|
||
int *p = malloc(5*sizeof(int));
|
||
*p = 1;
|
||
free(p);
|
||
return 0;
|
||
}
|
||
|
||
</PRE>
|
||
If you thought LCLint would be fooled, you are mistaken:
|
||
<PRE>
|
||
|
||
LCLint 2.4b --- 18 Apr 98
|
||
|
||
d.c: (in function main)
|
||
d.c:5:7: Dereference of possibly null pointer p: *p
|
||
A possibly null pointer is dereferenced. Value is either the result of a
|
||
function which may return null (in which case, code should check it is not
|
||
null), or a global, parameter or structure field declared with the null
|
||
qualifier. (-nullderef will suppress message)
|
||
d.c:4:14: Storage p may become null
|
||
|
||
Finished LCLint checking --- 1 code error found
|
||
|
||
</PRE>
|
||
When the program is rewritten as follows:
|
||
<PRE>
|
||
|
||
#include <stdlib.h>
|
||
#include <stdio.h>
|
||
int main()
|
||
{
|
||
int *p = malloc(5*sizeof(int));
|
||
if (p == NULL) {
|
||
fprintf(stderr, "error in malloc");
|
||
exit(EXIT_FAILURE);
|
||
} else *p = 1;
|
||
free(p);
|
||
return 0;
|
||
}
|
||
|
||
</PRE>
|
||
LCLint is perfectly happy.
|
||
|
||
<p> Here is an example of code which tries to free a block twice:
|
||
<PRE>
|
||
|
||
#include <stdlib.h>
|
||
main()
|
||
{
|
||
int *p = malloc(5*sizeof(int));
|
||
int *q;
|
||
q = p;
|
||
free(q); free(p);
|
||
return 0;
|
||
}
|
||
|
||
</PRE>
|
||
This is how LCLint responds:
|
||
<PRE>
|
||
|
||
LCLint 2.4b --- 18 Apr 98
|
||
|
||
f.c: (in function main)
|
||
f.c:7:19: Dead storage p passed as out parameter: p
|
||
Memory is used after it has been released (either by passing as an only param
|
||
or assigning to and only global. (-usereleased will suppress message)
|
||
f.c:7:10: Storage p is released
|
||
|
||
Finished LCLint checking --- 1 code error found
|
||
|
||
</PRE>
|
||
|
||
<H2><b>Checking macros</b></H2>
|
||
<p>One can write perfectly horrible C programs without any assistance from the macro preprocessor and yet
|
||
some people are not satisfied. They forget that the C macro preprocessor is a simple program designed to
|
||
do simple things and proceed to build grandiose designs with dancing #defines, #ifdef's , #endif's and so
|
||
on. The result is utter chaos. The designers of LCLint are very much aware of the C programmer's passion
|
||
for macros and they have built into their program the ability to detect many kinds of macro programming
|
||
errors.
|
||
<p>Here is a typical instance of how a macro defined to work like a function does not work like one.
|
||
<PRE>
|
||
|
||
#define sqr(p) p * p
|
||
main()
|
||
{
|
||
int i=2, j;
|
||
j = sqr(i+1);
|
||
printf("%d", j); /* prints 5 */
|
||
return 0;
|
||
}
|
||
|
||
</PRE>
|
||
LCLint is quick to point out the error. Please note that when you run lclint, you must specify that you expect
|
||
your macros (with parameters) to behave like functions by using the flag +fcn-macros. Thus, we would invoke the
|
||
above program as 'lclint i.c +fcn-macros'. Here is the output from LCLint:
|
||
<PRE>
|
||
|
||
LCLint 2.4b --- 18 Apr 98
|
||
|
||
i.c:1: Parameterized macro has no prototype or specification: sqr
|
||
Function macro has no declaration. (-macrofcndecl will suppress message)
|
||
i.c: (in macro sqr)
|
||
i.c:1:13: Macro parameter p used more than once
|
||
A macro parameter is not used exactly once in all possible invocations of the
|
||
macro. To behave like a function, each macro parameter must be used exactly
|
||
once on all invocations of the macro so that parameters with side-effects are
|
||
evaluated exactly once. Use /*@sef@*/ to denote parameters that must be
|
||
side-effect free. (-macroparams will suppress message)
|
||
i.c:1:16: Macro parameter used without parentheses: p
|
||
A macro parameter is used without parentheses. This could be dangerous if the
|
||
macro is invoked with a complex expression and precedence rules will change
|
||
the evaluation inside the macro. (-macroparens will suppress message)
|
||
i.c:1:20: Macro parameter used without parentheses: p
|
||
|
||
Finished LCLint checking --- 4 code errors found
|
||
|
||
</PRE>
|
||
The third error message clearly tells you that you need to use parenthesis.
|
||
|
||
<H2><b>Annotations - the key to LCLint's power</b></H2>
|
||
|
||
<p>What does a function prototype do? Well, the prototype tells you what all arguments the function accepts - the type
|
||
and number of the arguments and the return type of the function. It acts as a sort of interface between the
|
||
function and its caller. The caller is required to abide by the interface if he wishes peace for himself, his
|
||
program and the world at large. The prototype might also be thought of as placing some sort of constraint on
|
||
the legal use of the function.
|
||
<p>The provision of constraints on functions comes to your aid when you start building large systems. You
|
||
are sure that your function foo_bar() is always called with the right number and type arguments if you
|
||
ensure that all your function calls take place in the presence of prototypes. There are several other
|
||
constraints which you would like to place on your function, like defining the list of globals which the function
|
||
is allowed to modify. The C language does not permit any such constraints, so the only option you have
|
||
is to use tools like LCLint.
|
||
<p>Here is an example of the use of an annotation.
|
||
<PRE>
|
||
|
||
static void foo(int *a, int *b) /*@modifies *a@*/
|
||
{
|
||
*a=1, *b=2;
|
||
}
|
||
main()
|
||
{
|
||
int p=10, q=20;
|
||
foo(&p, &q);
|
||
return 0;
|
||
}
|
||
|
||
</PRE>
|
||
Note the comment(a stylized comment) /*@modifies *a@/. This is a hint to LCLint that
|
||
function foo is constrained to modify the value of *a only. Let us see what output LCLint
|
||
produces:
|
||
<PRE>
|
||
|
||
LCLint 2.4b --- 18 Apr 98
|
||
|
||
j.c: (in function foo)
|
||
j.c:3:11: Undocumented modification of *b: *b = 2
|
||
An externally-visible object is modified by a function, but not listed in its
|
||
modifies clause. (-mods will suppress message)
|
||
|
||
Finished LCLint checking --- 1 code error found
|
||
|
||
</PRE>
|
||
Here is another example:
|
||
<PRE>
|
||
|
||
static void foo(int *a, int *b) /*@modifies nothing@*/
|
||
{
|
||
*a=1, *b=2;
|
||
}
|
||
main()
|
||
{
|
||
int p=10, q=20;
|
||
foo(&p, &q);
|
||
return 0;
|
||
}
|
||
|
||
</PRE>
|
||
LCLint tells you:
|
||
<PRE>
|
||
|
||
LCLint 2.4b --- 18 Apr 98
|
||
|
||
k.c: (in function foo)
|
||
k.c:3:5: Undocumented modification of *a: *a = 1
|
||
An externally-visible object is modified by a function, but not listed in its
|
||
modifies clause. (-mods will suppress message)
|
||
k.c:3:11: Undocumented modification of *b: *b = 2
|
||
k.c: (in function main)
|
||
k.c:8:5: Statement has no effect: foo(&p, &q)
|
||
Statement has no visible effect --- no values are modified. (-noeffect will
|
||
suppress message)
|
||
|
||
Finished LCLint checking --- 3 code errors found
|
||
|
||
</PRE>
|
||
Here is another one dealing with global variables:
|
||
<PRE>
|
||
|
||
/*@checkedstrict@*/ static int abc, def;
|
||
static void foo() /*@globals abc@*/
|
||
{
|
||
|
||
def = 1;
|
||
}
|
||
main()
|
||
{
|
||
int p=10, q=20;
|
||
foo(&p, &q);
|
||
return 0;
|
||
}
|
||
|
||
</PRE>
|
||
The annotation /*@checkedstrict@*/ tells LCLint to provide error messages on all undocumented accesses of
|
||
global variables, whether it be for reading or writing:
|
||
<PRE>
|
||
|
||
LCLint 2.4b --- 18 Apr 98
|
||
|
||
l.c: (in function foo)
|
||
l.c:5:5: Undocumented use of file static def
|
||
A checked global variable is used in the function, but not listed in its
|
||
globals clause. By default, only globals specified in .lcl files are checked.
|
||
To check all globals, use +allglobals. To check globals selectively use
|
||
/*@checked@*/ in the global declaration. (-globs will suppress message)
|
||
l.c:2:13: Global abc listed but not used
|
||
A global variable listed in the function's globals list is not used in the
|
||
body of the function. (-globuse will suppress message)
|
||
l.c: (in function main)
|
||
l.c:10:5: Called procedure foo may access file static abc
|
||
l.c:1:32: File static variable abc declared but not used
|
||
A variable is declared but never used. Use /*@unused@*/ in front of
|
||
declaration to suppress message. (-varuse will suppress message)
|
||
|
||
Finished LCLint checking --- 4 code errors found
|
||
|
||
</PRE>
|
||
|
||
<p>We have not even scratched the surface of LCLint's capabilities. If you feel that you wish to explore
|
||
more, go over to <a href="http://www.sds.lcs.mit.edu/lclint/">http://www.sds.lcs.mit.edu/lclint/</a>.
|
||
|
||
<H2><b>Concluding remarks</b></H2>
|
||
<p>Here is an advice, not from us, but from people who have learned it the hard way - if you wish to use lint
|
||
in your project, start from the word go, or risk insanity (Peter van der Linden, in his book 'Expert C programming - Deep C secrets',
|
||
talks of a 'lint party' he had at Sun Microsystems. He must have got a kick out of it!).
|
||
<p>Lint, especially a very powerful version like LCLint, can be used to learn more about C programming. Just
|
||
thinking about the error messages and trying to make them go away will give you a lot of insight.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <!-- P -->
|
||
<H5 ALIGN=center>
|
||
|
||
Copyright © 2000, Pramode C E and Gopakumar C E<BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H1><font color="maroon">Making Smalltalk with the Penguin</font></H1>
|
||
<h3>A quick tour of Smalltalk</h3>
|
||
<H4>By <a href="mailto:jagwar@magma.ca">Jason Steffler</a></H4>
|
||
</center>
|
||
<P> <HR> <P>
|
||
|
||
<!-- END header -->
|
||
|
||
|
||
|
||
|
||
<img SRC="gx/steffler/penguinInBalloon.gif" height=230 width=200 ALIGN="right">
|
||
<h2>
|
||
<a NAME="abstract"></a>Abstract</h2>
|
||
Since VisualWorks Non Commercial (VWNC) has been freely released for Linux,
|
||
there's been an increased interest in the Linux community about Smalltalk.
|
||
The purpose of this article is to give an introduction to Smalltalk for
|
||
Linux enthusiasts who aren't familiar with it, and to share some of the
|
||
characteristics of this language that endears itself to so many programmers.
|
||
There's lots of <a href="#furtherReferences">tutorials and references</a>
|
||
to Smalltalk out there already. This article isn't intended to be
|
||
a tutorial or reference for OO programming or Smalltalk, but just a quick
|
||
tour to whet the palate. General OO knowledge isn't assumed, and
|
||
the article can be read standalone or while coding-along.
|
||
<p>Much of the examples here apply equally well to all implementations
|
||
of Smalltalk. Though all implementations of Smalltalk share the same basic
|
||
characteristics, there are differences among them - especially when GUI
|
||
code comes into play. There's a number of freely available<sup><a href="#footnotes">1</a></sup>
|
||
Smalltalk implementations available for Linux: <a href="http://www.qpsf.edu.au/software/GNU/smalltalk.html">GNU
|
||
Smalltalk</a>, <a href="http://www.informatik.uni-stuttgart.de/stx/stx.html">Smalltalk/X</a>,
|
||
<a href="http://minnow.cc.gatech.edu/squeak.1">Squeak</a>,
|
||
and <a href="http://www.cincom.com/visualworks/downloads.html">VisualWorks
|
||
Non Commercial</a><sup><a href="#footnotes">2</a></sup>. Squeak in
|
||
particular is doing some really cool stuff lately, but the examples here
|
||
are written in VWNC, since this is the flavour that I'm most familiar with.
|
||
Also, even though there's a later version available, I'm going to use VWNC
|
||
v3.0 for illustrative purposes since that is the version with the most
|
||
freely available tools/extensions available.
|
||
<p>This article covers some background information on Smalltalk, getting
|
||
and installing VWNC3, characteristics of Smalltalk (with examples), and
|
||
further references. The characteristics of Smalltalk that are covered here
|
||
are that it:
|
||
<ul>
|
||
<li>
|
||
is a pure OO environment, encourages OO programming</li>
|
||
|
||
<li>
|
||
can save exact state of the IDE</li>
|
||
|
||
<li>
|
||
is a literate language</li>
|
||
|
||
<li>
|
||
is incrementally byte-compiled</li>
|
||
|
||
<li>
|
||
is a portable environment; write once, run anywhere (virtual machine/ GUI)</li>
|
||
|
||
<li>
|
||
can inspect and manipulate objects in real time</li>
|
||
|
||
<li>
|
||
has a large degree of reflectiveness (start with running app, extensions)</li>
|
||
|
||
<li>
|
||
has garbage collection, no explicit pointers</li>
|
||
</ul>
|
||
|
||
<h2>
|
||
<a NAME="backgroundInfo"></a>1.0 Background Information</h2>
|
||
<u>Little known Java/Smalltalk factoid</u>: the original Oak team wanted
|
||
to use VisualWorks Smalltalk for their purposes, but ended up inventing
|
||
Java when the licensing of VisualWorks at that time proved to be too costly
|
||
for them<sup><a href="#footnotes">3</a></sup>.
|
||
<p>Smalltalk has been around for quite a while, it originated at the Xerox
|
||
Palo Alto Research Center (PARC) in the early 70s, and its original intention
|
||
was to provide an environment for children to start learning how to program
|
||
in. Accordingly, its syntax is very simple and it's a very mature
|
||
environment. Smalltalk's power is rooted in its large <a href="#glossary">class</a>
|
||
library, which can be a double-edged sword. You don't have to keep
|
||
reinventing the wheel to get any work done, but on the other hand you spend
|
||
a lot of time looking for the right wheel to reuse when you're first learning
|
||
it<sup><a href="#footnotes">4</a></sup>.
|
||
<p>Another double-edged sword is that it's a pure OO environment, and thus
|
||
encourages people to make the paradigm shift to OO much more strongly than
|
||
other Object Based (OB) languages<sup><a href="#footnotes">5</a></sup>
|
||
(more on this later). People who make the shift tend to become very
|
||
attached to Smalltalk and find it a very fun, productive<sup><a href="#footnotes">6</a></sup>,
|
||
and theoretically pure environment to work in. People who don't make
|
||
the shift tend to shun it, and stay in OB languages where it's easier to
|
||
get away with writing procedural code in the guise of writing OO code.
|
||
(No Dorothy, just because you're using a C++ compiler doesn't mean that
|
||
you're writing OO code).
|
||
<p>Though many people characterize Smalltalk as only being useful in large,
|
||
<a href="#glossary">vertical
|
||
markets</a>, Smalltalk is extremely flexible in that it is also used in
|
||
very small, <a href="#glossary">horizontal markets</a>. Smalltalk
|
||
has been used to write applications<sup><a href="#footnotes">7</a></sup>
|
||
for large network management systems, to hospital clinical systems, to
|
||
palm pilots, to micro controllers, to embedded firmware.
|
||
<p>But that's enough background information, let's get on with some real
|
||
examples.
|
||
<br>
|
||
<h2>
|
||
<a NAME="installationStuff"></a>2.0 Installation Stuff</h2>
|
||
VWNC3 can be obtained from a <a href="http://www.cincom.com/visualworks/vwv3beta-form.html">free
|
||
download site</a>. You need to fill in your name, address, city, state,
|
||
zip, and email address to proceed. After doing this, when you click
|
||
the <b>I Accept</b> button, a 20,594 KByte download immediately starts,
|
||
'vw.exe'. Not the most user-friendly download mechanism in the world,
|
||
especially making a Windoze & Linux version both available in a Windoze
|
||
self-extracting archive, but it works. Download this to the parent
|
||
directory of where you want it to be, and unzip using <b>unzip vw.exe</b>.
|
||
The zip file will extract itself into Vwnc3. For myself, I'm running
|
||
dual-boot, so I downloaded into my /dos directory and unzipped from there
|
||
so I can also use it from Windoze, giving me a base directory of <b>/dos/vwnc3</b>.
|
||
(Alternatively, you can specify a VISUALWORKS environment variable with
|
||
the path).
|
||
<p>To start it up, I like to copy the virtual machine to the image directory,
|
||
or to make a symbolic link. Since I have it installed on my dos partition,
|
||
I'll make a copy:
|
||
<br><b> cp /dos/vwnc3/bin/linux86/visualnc /dos/vwnc3/image/visualnc</b>
|
||
<br>I noticed that the virtual machine isn't executable by default, so
|
||
let's make it that way:
|
||
<br><b> chmod 555 visualnc</b>
|
||
<br>Then to start the image, it's necessary to tell the virtual machine
|
||
what image to run, do:
|
||
<br><b> cd /dos/vwnc3/image</b>
|
||
<br><b> visualnc visualnc.im</b>
|
||
<br>A license reminder screen pops up every time you start VWNC, click
|
||
<b>I
|
||
accept</b>, and proceed through it. The window that appears on top
|
||
is called the <b><a href="#glossary">Transcript</a></b>, and the window
|
||
below it is called a <b><a href="#glossary">Workspace</a></b>. Next,
|
||
you need to inform the image where to find its needed system files.
|
||
To do this, click on <b>File>Set VisualWorks Home</b> from the Transcript.
|
||
In the dialog that appears, enter in the home directory: <b>/dos/vwnc3.</b>
|
||
<p>The Transcript and Workspace look like:
|
||
<blockquote><img SRC="gx/steffler/transcript01.jpg" height=158 width=421>
|
||
<br><b>Fig. 1 - VWNC Transcript</b>
|
||
<p><img SRC="gx/steffler/workspace01.jpg" height=308 width=423>
|
||
<br><b>Fig. 2 - Default VWNC transcript</b></blockquote>
|
||
|
||
<p><br>The startup workspace has some useful information that's worth reading,
|
||
but it isn't necessary to read it to continue through this article.
|
||
<p><u>A note on mice</u>: Smalltalk assumes that you have a three
|
||
button mouse. If this isn't the case, you can simulate a three button
|
||
mouse on a two button mouse by clicking both the left and right buttons
|
||
at the same time.
|
||
<h2>
|
||
<a NAME="notableCharacteristics"></a>3.0 Some Notable Characteristics of
|
||
Smalltalk</h2>
|
||
|
||
<h3>
|
||
<a NAME="savingYourWork"></a>3.1 Saving your work</h3>
|
||
Here's another double-edged sword: the great thing is that when you
|
||
save your IDE, <b>everything</b> is saved <b>exactly</b> in the state where
|
||
you left it. What windows you have open, where they were open, what
|
||
was highlighted, the <a href="#glossary">objects</a> that exist, everything.
|
||
A snapshot in time is taken and is saved in an image. There's no
|
||
need to reload a text file into a text editor, and find where you left
|
||
off. The other edge is that if you have a corrupted database connection
|
||
or have overwritten some objects you shouldn't have, that's also saved
|
||
with the image. So there's a need to be cognizant of the state
|
||
of your environment when saving it. Having said that though, you
|
||
can save your code separate from the image, and reload it into a clean
|
||
image if you do run into problems (a good idea to do anyway). A simple
|
||
way to save your code is in a fileout.
|
||
<p>Lets give saving a try (might as well save the system file location
|
||
you just specified). Move your windows around until they're where you like
|
||
them, then save your image, select<b> File>Save As...</b> It's a good idea
|
||
to save your image as something other than the virgin image, so if you
|
||
run into problems you can always return to the clean image and reload your
|
||
code. I'll save the image as <b>testingImage</b>. After saving, try
|
||
closing the image <b>File>Exit VisualWorks...>Exit. </b>Then to restart,
|
||
be sure to pass the new image name to the virtual machine. Note,
|
||
that when you save your image, the date and time are printed on the transcript,
|
||
like so:
|
||
<blockquote><img SRC="gx/steffler/transcript02.jpg" height=158 width=421>
|
||
<br><b>Fig. 3 - Transcript after saving as 'testingImage'</b></blockquote>
|
||
There's a lot more I could say here on saving your work (Perm Save As,
|
||
filing out, change log, Envy), but I'll digress in the interests of brevity.
|
||
<br>
|
||
<h3>
|
||
<a NAME="everythingIsAnObject"></a>3.2 Everything is an object</h3>
|
||
...this was my mantra for the first 6 months when I was learning Smalltalk.
|
||
Like most programmers back then, I had a background in procedural programming
|
||
and it was very difficult to shake that mindset. Here's where the
|
||
infamous paradigm shift comes into play. The Transcript is an object,
|
||
the menus on the transcript are objects, the buttons on the transcript
|
||
are objects, the Workspace is an object, etc. But before we get into
|
||
that, let's start with the venerable 'Hello World' example:
|
||
<p><a NAME="ex1"></a><b><u>Ex 1</u>: Hello World</b>
|
||
<ul>
|
||
<li>
|
||
Open a new workspace (click on <b>Tools>Workspace)</b></li>
|
||
|
||
<li>
|
||
In the workspace, type: <b>Transcript cr. Transcript show: 'Hello
|
||
World.'</b></li>
|
||
|
||
<li>
|
||
Congratulations, you just wrote your first Smalltalk code. Now let's
|
||
see it work:</li>
|
||
|
||
<li>
|
||
Highlight that line of code, middle click and select <b>do it</b> (This
|
||
evaluates the Smalltalk code you just wrote)</li>
|
||
|
||
<li>
|
||
You should see the 'Hello World' text be printed in the Transcript:</li>
|
||
|
||
<br><img SRC="gx/steffler/transcript03.jpg" height=158 width=421>
|
||
<br><b>Fig. 4 - Hello World example</b>
|
||
<li>
|
||
Let's examine the Smalltalk code:</li>
|
||
</ul>
|
||
|
||
<ul>
|
||
<table BORDER COLS=2 WIDTH="90%" NOSAVE >
|
||
<tr NOSAVE>
|
||
<td NOSAVE><b>Transcript cr.</b></td>
|
||
|
||
<td>This code gets a hold of the Transcript object, and asks it to show
|
||
a carriage return on itself.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Transcript show: 'Hello World.'</b></td>
|
||
|
||
<td>Gets a hold of the Transcript object, and asks it to show 'Hello World'
|
||
on itself</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<li>
|
||
You can also print 'Hello World' to the command line, open a new window
|
||
and print 'Hello World' on it, or design a GUI and put 'Hello World' on
|
||
it. But again for the sake of brevity, we'll move on.</li>
|
||
|
||
<li>
|
||
<b>cr</b> is a message to Transcript, just as <b>show:</b> is a message
|
||
to Transcript too. They're just messages that Transcript knows how
|
||
to respond to. They're not part of Smalltalk syntax.</li>
|
||
|
||
<li>
|
||
The above point is important to remember for the non-OO programmers out
|
||
there, <i>we send messages to objects to ask them to do something</i>.</li>
|
||
</ul>
|
||
Realize that you just executed your first Smalltalk code <i>without compiling.
|
||
</i>You
|
||
didn't have to save your code, compile and link it, and then run it.
|
||
"So what, it's an interpretive language" you say. Well, not really.
|
||
To be more precise, it's an <i>incrementally byte-compiled language</i>.
|
||
I'll come back to this <a href="#incrementalByteCompiling">in a bit</a>.
|
||
For now, just be aware that you're coding and executing in Smalltalk seamlessly.
|
||
Now, on to the next example:
|
||
<p><a NAME="ex2"></a><b><u>Ex 2</u>: Displaying current date</b>
|
||
<ul>
|
||
<li>
|
||
In your opened workspace, type: <b>Date today</b></li>
|
||
|
||
<li>
|
||
Highlight that line of code, middle click and select <b>print it </b>(This
|
||
evaluates the Smalltalk code you just wrote, and prints out the result.)</li>
|
||
|
||
<li>
|
||
You should see the current date printed, like:</li>
|
||
|
||
<br><img SRC="gx/steffler/workspace02.jpg" height=180 width=346>
|
||
<br><b>Fig. 5 - Printing Date today</b></ul>
|
||
|
||
<ul>
|
||
<table BORDER COLS=2 WIDTH="90%" NOSAVE >
|
||
<tr>
|
||
<td><b>Date today</b></td>
|
||
|
||
<td>Asks the class Date what the date today is</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<li>
|
||
Ok, let's get a better look at what <b>Date today</b> is evaluating to.
|
||
Highlight that line of code (without the date that was printed), middle
|
||
click and select <b>inspect it</b>. You should see:</li>
|
||
|
||
<br><img SRC="gx/steffler/aDate01.jpg" height=116 width=264>
|
||
<br><b>Fig. 6 - An inspector on a date</b>
|
||
<li>
|
||
This is called an <a href="#glossary">inspector</a> (This too is an object
|
||
BTW). Inspectors are objects that allow you to have a peek at objects.
|
||
If you click on <b>self</b> in the inspector, you'll see a textual representation
|
||
of the date:</li>
|
||
|
||
<br><img SRC="gx/steffler/aDate02.jpg" height=116 width=264>
|
||
<br><b>Fig. 7 - Inspector showing textual representation of the date</b>
|
||
<li>
|
||
Look familiar? That's because in Fig. 5, when you printed the <b>Date
|
||
today</b>, you were really printing a <i>textual representation</i> of
|
||
the Date object. If you click on the two other attributes of this
|
||
date, you'll see that <b>day</b> keeps what day number it is within the
|
||
year (1->365, usually), and <b>year </b>keeps what year the date is for.</li>
|
||
|
||
<li>
|
||
All objects have a textual representation, even if it's just the type of
|
||
object it is (though that isn't very useful).</li>
|
||
|
||
<li>
|
||
The inspector is a very powerful concept. Realize that you just asked
|
||
Date for the current date, and you got a hold of a date object. You
|
||
can not only peek around this date, but you can also work with it and modify
|
||
it. For example, click on <b>day</b>, and enter in n+1 for what is
|
||
there. In Fig 7, Feb 6 is the 37th day of the year, so I'll enter
|
||
in 38. Then middle click, and choose <b>accept</b>. You'll
|
||
notice that it appears that nothing has changed. But what you've
|
||
done is to now set the object to represent the date for the n+1th day of
|
||
the year. Now, if you click back to the <b>self</b> on the date,
|
||
you'll see it's now showing a date for one day later than what the current
|
||
date is:</li>
|
||
|
||
<br><img SRC="gx/steffler/aDate03.jpg" height=116 width=264>
|
||
<br><b>Fig. 8 - Inspector showing date after current date</b></ul>
|
||
So, not only can we write code and immediately execute it, but we can grab
|
||
hold of objects, and manipulate them directly with immediate effect.
|
||
These two abilities is part of what makes Smalltalk such a productive environment.
|
||
You can code-n-test in real time. If you don't understand what's going
|
||
on, you can just grab an object to see what its state is, and manipulate
|
||
it to see how it behaves. After a build, if there's a bug in testing,
|
||
you can quickly code in a fix and just load it into the testing environment
|
||
- no need to recompile.
|
||
<p>Another thing to notice is the <a href="#glossary">literateness</a>
|
||
of Smalltalk. To get the date today we just asked <b>Date</b> for
|
||
<b>today</b>.
|
||
Though Smalltalk is a very literate language, it obviously has to break
|
||
down somewhere, for example, we can't ask <b>Date</b> for
|
||
<b>tomorrow</b>.
|
||
That being said though, the general syntax of Smalltalk is very simple
|
||
and easy to read. Keep this in mind while looking through the upcoming
|
||
code examples.
|
||
<p>Let's move on to the third example of this section then, and get into
|
||
the paradigm shift aspect of OO:
|
||
<p><a NAME="ex3"></a><b><u>Ex 3</u>: Illustrating the paradigm shift</b>
|
||
<ul>
|
||
<li>
|
||
In your workspace, type: <b>1 + 2 * 3</b></li>
|
||
|
||
<li>
|
||
Now, before you evaluate this code, think about what the answer is going
|
||
to be. You're probably thinking 7. Well, highlight the line
|
||
of code and <b>print it</b></li>
|
||
|
||
<li>
|
||
You'll notice the answer is 9:</li>
|
||
|
||
<br><img SRC="gx/steffler/workspace03.jpg" height=180 width=346>
|
||
<br><b>Fig. 9 - Result of message send</b>
|
||
<li>
|
||
It's funny how many non-OO programmers go running in tears after I show
|
||
them this. "What! No operator precedence, what a foul language!
|
||
I'm going to stick to C++ because I can understand it!" Seriously,
|
||
I've had it happen many times.</li>
|
||
|
||
<li>
|
||
However, reality depends on the blinders you're wearing; when I wrote the
|
||
answer above, I first thought of writing 9, because I was thinking in an
|
||
OO mindset, not a procedural mindset.</li>
|
||
|
||
<li>
|
||
The reason this is the case, is because (repeat after me) <b>everything
|
||
is an object</b>. In this example, the numbers 1, 2, and 3 are all
|
||
objects. The operators: + and * are just <i>messages</i> that are
|
||
being sent to objects. The reasoning is that if + and * are just
|
||
messages, why should they have precedence over other types of messages?
|
||
All messages of the same type are treated equal in Smalltalk.</li>
|
||
|
||
<li>
|
||
To see for yourself, highlight <b>1</b>, middle click, and choose <b>inspect</b>.
|
||
You'll get an inspector on SmallInteger, which is the type of object that
|
||
the object 1 is.</li>
|
||
|
||
<br><img SRC="gx/steffler/aSmallInt01.jpg" height=120 width=231>
|
||
<br><b>Fig. 10 - Inspecting the object 1</b>
|
||
<li>
|
||
So, the code is evaluated as:</li>
|
||
|
||
<ul>
|
||
<li>
|
||
(the number 1) is asked to do (+) with (the number 2)</li>
|
||
|
||
<li>
|
||
(the number 1) does this, answers the object: (the number 3)</li>
|
||
|
||
<li>
|
||
(the number 3) is asked to do (*) with (the number 3)</li>
|
||
|
||
<li>
|
||
(the number 3) does this, answers the object: (the number 9)</li>
|
||
</ul>
|
||
|
||
<li>
|
||
To get the code to evaluate as a procedural mindset would expect, you can
|
||
use brackets: <b>1 + (2 * 3)</b></li>
|
||
|
||
<li>
|
||
"OK, why can't I highlight the date I printed, <b>February 6, 2000</b>,
|
||
and inspect that to see the date object?" Good question. The
|
||
simple answer is that there are certain types of objects that can be brought
|
||
into being (instantiated) by just inspecting a textual representation of
|
||
them, and there are certain types of objects that can't. Integers
|
||
are one of those types of objects that can be instantiated by inspecting
|
||
a textual representation of them.</li>
|
||
</ul>
|
||
|
||
<h2>
|
||
<a NAME="incrementalByteCompiling"></a>4.0 Incremental byte compiling</h2>
|
||
As I mentioned before, Smalltalk is an incremental byte compiled environment.
|
||
Some people describe it as being a cross between compiled and interpretive
|
||
languages. What happens when you do or print something, is:
|
||
<ol>
|
||
<li>
|
||
the Smalltalk compiler translates the Smalltalk code into byte codes</li>
|
||
|
||
<li>
|
||
the byte codes are passed to the virtual machine for execution</li>
|
||
|
||
<li>
|
||
the byte codes are executed, and the result is returned</li>
|
||
</ol>
|
||
Well, this sounds rather interpretive, doesn't it? The difference
|
||
is that what we've been doing so far isn't normal Smalltalk programming.
|
||
Recall that Workspaces are just a temporary sandbox. Normally, when
|
||
you're programming, you accept Smalltalk code (save it in the image), and
|
||
the code <i>stays byte-compiled</i>. Normally, when you're programming,
|
||
you accept Smalltalk code in <a href="#glossary">methods</a> for a class,
|
||
and:
|
||
<ol>
|
||
<li>
|
||
the Smalltalk compiler translates the Smalltalk code into byte codes</li>
|
||
|
||
<li>
|
||
the byte codes are kept with that class</li>
|
||
|
||
<li>
|
||
when a message is sent to a class, the appropriate byte codes for the method
|
||
are sent to the virtual machine for execution</li>
|
||
|
||
<li>
|
||
the byte codes are executed, and the result is returned</li>
|
||
</ol>
|
||
The net result is that every time you make a change to your classes, that
|
||
small change is semantically checked, is compiled, and takes
|
||
effect immediately. It's pretty cool to make a tiny change, then
|
||
see it immediately reflected in your program's behaviour.
|
||
<p>Java is similar in the respect that it is byte compiled, but different
|
||
in the respect that it isn't <i>incrementally</i> byte compiled.
|
||
So when Java programming, you need to recompile all of it (or parts of
|
||
it if you're using make), and relink all of it every time you want a change
|
||
to take effect.
|
||
<br>
|
||
<h2>
|
||
<a NAME="virtualMachine"></a>5.0 Virtual Machine/Portability</h2>
|
||
The virtual machine is just what it sounds like - a virtual computer that
|
||
knows how to execute Smalltalk bytecodes. The virtual machine is
|
||
usually implemented in C (squeak is the notable exception to this, even
|
||
its virtual machine is implemented in Smalltalk - then exported to C programmatically).
|
||
It's the virtual machine that allows for such portability across different
|
||
machine types. Smalltalk has had the write once, run everywhere paradigm
|
||
for <b>decades</b>! To give you a quick taste of this, select <b>File>Settings</b>.
|
||
In the Dialog that pops up, select the <b>Look Selection</b> of <b>Macintosh,
|
||
</b>then
|
||
select <b>Accept.</b>
|
||
<blockquote><img SRC="gx/steffler/settings01.jpg" height=365 width=439>
|
||
<br><b>Fig. 11- Selecting a Mac look-n-feel</b></blockquote>
|
||
Now you'll notice that your entire system is running with a Mac look-n-feel!
|
||
The first time I saw this back in '95, it blew me out of my chair.
|
||
I had just spent a year doing a very painful port of OpenWindows
|
||
to Motif for parts of a C based application. Then, here somebody
|
||
showed me how they could 'port' their application from SunOS to Solaris
|
||
to MacOS with a click of a button!
|
||
<blockquote><img SRC="gx/steffler/transcript04.jpg" height=158 width=421>
|
||
<br><b>Fig. 12 - Transcript with Mac look-n-feel</b></blockquote>
|
||
Keep in mind that the above window is running on a Linux box! I commonly
|
||
use this feature at work when my employer is developing in Windoze, because
|
||
I prefer the Motif look-n-feel.
|
||
<h2>
|
||
<a NAME="reflectiveness"></a><b>6.0 Reflectiveness</b></h2>
|
||
Here's where I think the real power of Smalltalk comes to play: in
|
||
its <a href="#glossary">reflectiveness</a>. In Smalltalk, 98% of
|
||
Smalltalk is written in Smalltalk, which makes it easy to customize, enhance,
|
||
or tweak the environment. (Squeak is the notable exception here,
|
||
100% of it is written in Smalltalk). So it's very easy to see how
|
||
Smalltalk is written, and to extend it for your needs. In fact, this
|
||
is the whole basis of development in Smalltalk. You <i>start with
|
||
a running application</i>, you add business-specific extensions to it,
|
||
strip out the parts you don't need, and then deliver the running application.
|
||
Here's a simple example to show how to extend Smalltalk:
|
||
<p><a NAME="ex4"></a><b><u>Ex 4</u>: Adding inspect menus to all windows</b>
|
||
<ul>
|
||
<li>
|
||
Remember when I said that the Transcript and default workspace were objects?
|
||
We should be able to inspect them then right? Right. However,
|
||
it's not that easy in the environment as it comes to grab hold of an arbitrary
|
||
window to inspect it. We're going to add a simple extension that
|
||
allows for this.</li>
|
||
|
||
<li>
|
||
Open a class browser <b>Browse>All Classes</b></li>
|
||
|
||
<li>
|
||
You now see what is called the class browser, or System Browser.</li>
|
||
|
||
<br><img SRC="gx/steffler/classBrowser01.jpg" height=352 width=644>
|
||
<br><b>Fig. 13 - Empty class browser</b>
|
||
<li>
|
||
Going through the panes from left to right, top to bottom, you see: <a href="#glossary">categories</a>,
|
||
<a href="#glossary">classes</a>,
|
||
<a href="#glossary">protocols</a>,
|
||
<a href="#glossary">methods</a>,
|
||
and method code. Additionally, you'll see two radio buttons: one
|
||
sets the browser to look at the instance side of a class, the other sets
|
||
the browser to look at the class side. (We're going to do one instance
|
||
method and one class method.)</li>
|
||
|
||
<li>
|
||
Middle click on the category pane, and select <b>Find Class...</b>, then
|
||
enter <b>StandardSystemController</b> in the dialog that pops up</li>
|
||
|
||
<li>
|
||
After the browser highlights the <b>StandardSystemController</b> class,
|
||
click on the <b>menu messages</b> protocol in the protocol pane, and on
|
||
the <b>back</b> method in the method pane. You should now see:</li>
|
||
|
||
<br><img SRC="gx/steffler/classBrowser03.jpg" height=352 width=644>
|
||
<br><b>Fig. 14 - Class browser with method selected.</b>
|
||
<li>
|
||
Briefly, categories are groups of classes, we have the <b>Interface-Framework</b>
|
||
category selected. We also have the <b>StandardSystemController</b>
|
||
class selected. Protocols are groups of methods, and we currently
|
||
have the
|
||
<b>menu messages</b> protocol selected. Methods are where
|
||
the code is implemented, and we have the <b>back</b> method selected.</li>
|
||
|
||
<li>
|
||
We're going to add a method to the <b>menu messages</b> protocol. To do
|
||
this, just highlight all of the current method and delete it. Don't
|
||
worry, the method isn't gone and won't be deleted by doing this.
|
||
It's just an easy way to create a new method in the currently selected
|
||
protocol.</li>
|
||
|
||
<li>
|
||
Then type in the text:</li>
|
||
|
||
<br><b>inspectView</b>
|
||
<p><b> self view model inspect.</b>
|
||
<li>
|
||
Then to save the method, middle click and choose <b>accept</b>.</li>
|
||
|
||
<li>
|
||
You'll notice that the method you just entered is now showing in the browser.
|
||
It's already been compiled and is ready to be executed. You should
|
||
see:</li>
|
||
|
||
<br><img SRC="gx/steffler/classBrowser04.jpg" height=352 width=644>
|
||
<br><b>Fig. 15 - Added inspectView method</b>
|
||
<li>
|
||
Next, we need to add a class side method. Click on the <b>class</b>
|
||
radio button in the class browser.</li>
|
||
|
||
<li>
|
||
Then click on the <b>class initialization</b> protocol, and on the <b>flushMenus</b>
|
||
method.</li>
|
||
|
||
<li>
|
||
Just as before, delete all of the text for the method, (the <b>flushMenus</b>
|
||
method won't be deleted), and type:</li>
|
||
|
||
<br><b>initializeForAdditions</b>
|
||
<br><b> "Initialize the menu."</b>
|
||
<br><b> "self initializeForAdditions"</b>
|
||
<p><b> ScheduledBlueButtonMenu :=</b>
|
||
<br><b> Menu</b>
|
||
<br><b> labels: 'relabel as...\refresh\move\resize\front\back\collapse\close\inspect'
|
||
withCRs</b>
|
||
<br><b> lines: #(1 7 8)</b>
|
||
<br><b> values: #( #newLabel #display #move #resize #front
|
||
#back #collapse #close #inspectView).</b>
|
||
<li>
|
||
After you're done typing this, middle click and <b>accept</b> the method.
|
||
Now you should see:</li>
|
||
|
||
<br><img SRC="gx/steffler/classBrowser05.jpg" height=352 width=644>
|
||
<br><b>Fig. 16 - Added initializeForAdditions method</b>
|
||
<li>
|
||
OK, now comes the neat part. Right click over the method code pane,
|
||
you should see the window menu:</li>
|
||
|
||
<br><img SRC="gx/steffler/classBrowserWindowMenu01.jpg" height=192 width=101>
|
||
<li>
|
||
At this point, the code has been byte-compiled. But, since it's initialization
|
||
code, it hasn't been run yet. We can run this code right from the
|
||
browser; just highlight the <b>self initializeForAdditions</b> text, middle
|
||
click, and <b>do it</b>.</li>
|
||
|
||
<li>
|
||
Now that the code has been run, you should see <b>inspect</b> added to
|
||
the bottom of the window menu:</li>
|
||
|
||
<br><img SRC="gx/steffler/classBrowserWindowMenu02.jpg" height=217 width=101>
|
||
<li>
|
||
Now we can inspect any window that has this menu window defined on it.
|
||
Try it out by inspecting this class browser we've been using. Just
|
||
right click, and choose <b>inspect</b>. You'll see an inspector on
|
||
the class browser, selecting the <b>className</b> attribute, you'll see
|
||
the class there matches the current class selected:</li>
|
||
|
||
<br><img SRC="gx/steffler/aClassBrowser01.jpg" height=282 width=324></ul>
|
||
Note: What we just did here was a base image extension. This is a
|
||
type of coding change that should be done and tracked carefully.
|
||
<h2>
|
||
<a NAME="garbageCollection"></a>7.0 Garbage Collection</h2>
|
||
Yea, though I walk through the valley of doomed schedules, I shall fear
|
||
no deallocating...
|
||
<p>Garbage collection: AKA the sanity saver. Smalltalk has garbage
|
||
collection, which means objects that are no longer referenced are cleaned
|
||
up to free up memory. I remember pulling out my hair many a time
|
||
when programming in C++ trying to find memory leaks. This is because
|
||
in C++ it's up to the developer to manage your memory. If you didn't
|
||
deallocate the memory you're using, your application would continually
|
||
take up more memory until your machine ran out of memory and crashed.
|
||
<p>Speaking of machines crashing, you'll note that we never had to do any
|
||
pointer manipulation. This is because Smalltalk has no pointers.
|
||
(Well, this is technically incorrect. Every variable reference is
|
||
actually a pointer to an object, it's just that in Smalltalk the developer
|
||
is relieved of the burden of manually maintaining pointers).
|
||
<br>
|
||
<h2>
|
||
<a NAME="summary"></a>8.0 Summary</h2>
|
||
I hope that I've been able to give a concise, meaningful tour of Smalltalk
|
||
that has been approachable by non OO programmers. I've shown that
|
||
Smalltalk:
|
||
<ul>
|
||
<li>
|
||
is a pure OO environment, encourages OO programming</li>
|
||
|
||
<li>
|
||
can save exact state of the IDE</li>
|
||
|
||
<li>
|
||
is a literate language</li>
|
||
|
||
<li>
|
||
is incrementally byte-compiled</li>
|
||
|
||
<li>
|
||
is a portable environment; write once, run anywhere (virtual machine/ GUI)</li>
|
||
|
||
<li>
|
||
can inspect and manipulate objects in real time</li>
|
||
|
||
<li>
|
||
has a large degree of reflectiveness (start with running app, extensions)</li>
|
||
|
||
<li>
|
||
has garbage collection, no explicit pointers</li>
|
||
</ul>
|
||
There's lots of other cool things I would liked to have touched upon in
|
||
this article, but space constraints just don't allow for them:
|
||
<ul>
|
||
<li>
|
||
the online help</li>
|
||
|
||
<li>
|
||
debugger</li>
|
||
|
||
<li>
|
||
numbers - (try printing <b>100000 factorial </b>in a workspace (if you
|
||
have the time for crunching - number size is only limited by your memory),
|
||
or try inspecting <b>12/7</b>)</li>
|
||
|
||
<li>
|
||
parcels - a code sharing mechanism</li>
|
||
|
||
<li>
|
||
Refactoring Browser - my favourite programming tool</li>
|
||
|
||
<li>
|
||
HotDraw - a reusable draing framework</li>
|
||
|
||
<li>
|
||
testing frameworks - automate your testing</li>
|
||
|
||
<li>
|
||
dynamic changing of widgets at runtime</li>
|
||
|
||
</ul>
|
||
|
||
<h2>
|
||
<a NAME="glossary"></a>Glossary</h2>
|
||
|
||
<table BORDER COLS=2 WIDTH="100%" NOSAVE >
|
||
<tr NOSAVE>
|
||
<td WIDTH="10%" NOSAVE><b>Category</b></td>
|
||
|
||
<td>A group of classes</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Class</b></td>
|
||
|
||
<td>A type of an object</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Horizontal market</b></td>
|
||
|
||
<td>A market that tends to have a very large audience and has a very small
|
||
impact on that audience. Shinkwrapped software addresses a horizontal
|
||
market. For example, a word processing package - if it crashes, just reload
|
||
your last saved snapshot.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Inspector</b></td>
|
||
|
||
<td>A GUI type of object that allows you to look at and work with objects.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Literateness</b></td>
|
||
|
||
<td>A simple definition of literateness is how readible/simple the syntax
|
||
of a language is. Literate programming is programming for readability
|
||
for the programmer who comes after you.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Method</b></td>
|
||
|
||
<td>A piece of Smalltalk code for an object.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Object</b></td>
|
||
|
||
<td>A grouping of related data and operations. It exhibits behaviour
|
||
through its operations on its data.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Protocol</b></td>
|
||
|
||
<td>A group of methods.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Reflectiveness</b></td>
|
||
|
||
<td>How much of an environment can be manipulated within itself.
|
||
In Smalltalk, 98% of Smalltalk is written in Smalltalk, which makes it
|
||
easy to customize, enhance, or tweak the environment. (Squeak is
|
||
the notable exception here, 100% of it is written in Smalltalk).</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Transcript</b></td>
|
||
|
||
<td>The main window of the IDE, where other windows (browsers, workspaces,
|
||
etc) are opened from. Also keeps a running list of system messages.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Workspace</b></td>
|
||
|
||
<td>A scratchpad where developers can experiment with code.</td>
|
||
</tr>
|
||
|
||
<tr>
|
||
<td><b>Vertical market</b></td>
|
||
|
||
<td>A market that tends to have a very small audience and has a very large
|
||
impact on that audience. For example, a network management system
|
||
for a telecommunications company - if it crashes the company loses a million
|
||
dollars a minute.</td>
|
||
</tr>
|
||
</table>
|
||
|
||
<h2>
|
||
<a NAME="furtherReferences"></a>Further References</h2>
|
||
|
||
<ol>
|
||
<li>
|
||
A <a href="http://max.cs.kzoo.edu/~eatkins/smtlk/smhist.html">history of
|
||
Smalltalk</a></li>
|
||
|
||
<li>
|
||
A <a href="http://www.qks.com/Information_Desk/history.asp">brief history
|
||
of Smalltalk</a></li>
|
||
|
||
<li>
|
||
<a href="http://www.goodstart.com">GoodStart</a></li>
|
||
|
||
<li>
|
||
WikiWikis:</li>
|
||
|
||
<ol>
|
||
<li>
|
||
<a href="http://www.iam.unibe.ch/~scg/cgi-bin/Smalltalk.cgi">Smalltalk</a></li>
|
||
|
||
<li>
|
||
<a href="http://minnow.cc.gatech.edu/squeak.1">Squeak</a></li>
|
||
|
||
<li>
|
||
<a href="http://wiki.cs.uiuc.edu/VisualWorks/">VisualWorks</a></li>
|
||
</ol>
|
||
|
||
<li>
|
||
Newsgroup: comp.lang.smalltalk</li>
|
||
|
||
<li>
|
||
Free Smalltalk archives:</li>
|
||
|
||
<ol>
|
||
<li>
|
||
<a href="http://st-www.cs.uiuc.edu/">Smalltalk</a> <i>(UIUC - the granddaddy
|
||
of Smalltalk archives)</i></li>
|
||
|
||
<li>
|
||
<a href="http://www.squeak.org/">Squeak</a></li>
|
||
|
||
<li>
|
||
<a href="http://www.listserv.gmd.de/archives/vswe-l.html">VSE</a> <i>(in
|
||
German)</i></li>
|
||
</ol>
|
||
|
||
<li>
|
||
Tutorials:</li>
|
||
|
||
<ol>
|
||
<li>
|
||
<a href="http://www.squeak.org/#tutorials">Squeak</a></li>
|
||
|
||
<li>
|
||
<a href="http://cyclone.cs.clemson.edu/~lab428/VW/VWTableOfContents.html">VisualWorks</a></li>
|
||
</ol>
|
||
|
||
<li>
|
||
<a href="http://www.panasoft.com/stlinks/">Lots 'o Smalltalk Links</a></li>
|
||
|
||
<li>
|
||
<a href="http://www.dnsmith.com/SmallFAQ/">Dave's Smalltalk FAQ</a> <i>(There's
|
||
a number of ones out there, but even though it's dated, this is the best
|
||
IMHO. Dave - it'd be great if you ever got time to finish this.)</i></li>
|
||
|
||
<li>
|
||
<a href="http://www.extremeprogramming.org/">eXtreme Programming</a><i>
|
||
(Which originated in a Smalltalk project)</i></li>
|
||
</ol>
|
||
|
||
<h2>
|
||
<a NAME="footnotes"></a>Footnotes</h2>
|
||
|
||
<ol>
|
||
<li>
|
||
Every implementation has different license restrictions. To my knowledge,
|
||
only GNU Smalltalk and Squeak have GNU copyleft types of licenses.</li>
|
||
|
||
<li>
|
||
The last two implementations are the newer ones.</li>
|
||
|
||
<li>
|
||
In <a href="http://x37.deja.com/getdoc.xp?AN=564595555&CONTEXT=949863157.89849870&hitnum=0">article</a>:
|
||
<i>http://x37.deja.com/getdoc.xp?AN=564595555&CONTEXT=949863157.89849870&hitnum=0</i></li>
|
||
|
||
<br><i> Author:</i>
|
||
<br><i> Eric Clayberg</i>
|
||
<br><i> <clayberg@instantiations.com></i>
|
||
<p><i> Patrick Logan <patrick@c837917-a.potlnd1.or.home.com></i>
|
||
<br><i> wrote in message</i>
|
||
<br><i> news:hTN84.453$HT1.6388@news.rdc1.wa.home.com...</i>
|
||
<br><i> ></i>
|
||
<br><i> > I wish the original Oak team had chosen to adopt Smalltalk</i>
|
||
<br><i> > rather than invent Java</i>
|
||
<p><i>They tried to, but ParcPlace wanted too much on a per-copy royalty
|
||
basis...sigh</i>
|
||
<br>
|
||
<li>
|
||
Bah! Real programmers reinvent the wheel all the time, it puts hair
|
||
on your chest! ...sigh, I've run into that far too many times over
|
||
the years. More often than not, the wheels that are reinvented tend
|
||
to be rather square. Too bad that schools often encourage this mentality
|
||
during formal training. [End soapbox]</li>
|
||
|
||
<li>
|
||
This is some loose terminology that shifts depending on who you're speaking
|
||
with. For my purposes, an Object based (OB) language is a non-OO
|
||
language that has been evolved towards Object-orientedness. (C++,
|
||
OO-COBAL, etc). Some people call these bastardized OO languages.</li>
|
||
|
||
<li>
|
||
Some productivity numbers from <a href="http://www.spr.com/library/0langtbl.htm#Smalltalk">Software
|
||
Productivity Research</a>. (A sample of ave. source statements/function
|
||
point: Smalltalk: 21, C: 128, C++: 53, Visual Basic 5: 29)</li>
|
||
|
||
<li>
|
||
<a href="http://www.goodstart.com/whoswho.html">GoodStart - who's using
|
||
Smalltalk</a><i> - http://www.goodstart.com/whoswho.html</i></li>
|
||
</ol>
|
||
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <!-- P -->
|
||
<H5 ALIGN=center>
|
||
|
||
Copyright © 2000, Jason Steffler<BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
|
||
<H4>
|
||
"Linux Gazette...<I>making Linux just a little more fun!</I>"
|
||
</H4>
|
||
|
||
<P> <HR> <P>
|
||
<!--===================================================================-->
|
||
|
||
<center>
|
||
<H1><font color="maroon">Process Cloning in C</font></H1>
|
||
<H4>By <a href="mailto:Alex.Vrenios@motorola.com">Alex Vrenios</a></H4>
|
||
</center>
|
||
<P> <HR> <P>
|
||
|
||
<!-- END header -->
|
||
|
||
|
||
|
||
|
||
<P> <B>Introduction:</B> </P>
|
||
<P>Software mobility means different things to different people. <I>Mobile computing</I> is often used to mean email access from a laptop, <I>process migration</I> refers to the automatic redistribution of active processes within a cluster system, and <I>agent migration</I> describes processes on a mission, gathering data for a full report upon returning home. The first example is an extension of the client-server paradigm of the 1980s while the other examples, self-directed movement of a process from one networked machine to another, is the subject of leading edge research [1]. </P>
|
||
<P>Cluster systems are multi-computers, a network of machines that present a single-server image to a client. There are many different processes running on a cluster system, some of which may self-replicate in order to handle a suddenly higher client request load. A cluster operating system may direct one or more of its processes to migrate to other machines on its network, redistributing the overall system resource load. </P>
|
||
<P>Autonomous agents are single processes that are best described by example. Consider wanting to collect the cheapest possible prices on all the components needed to build your "dream computer" system. Imagine having to visit or call all those parts stores to compare prices of system boards, disk and CD-ROM drives, etc. Now imagine sending your intelligent agent software out to do web searches, examining each site, and returning with the complete list of parts, including prices and URLs. If you give it your credit card number, all those parts could be shipped to your door! You get the idea. </P>
|
||
<P>The very first step toward implementing any process migration system is to figure out how to get a duplicate process started on some other machine from within your active process. This isn't quite a remote-fork operation because the new process can be started from its beginning. This isn't just a remote-shell operation, either, because there is no guarantee that a copy of the binary executable exists on the remote machine. What techniques do you use? What system file modifications must be made to a remote machine in order to make it amenable to your request to run a copy of your active process? Let's examine the issues surrounding what we call <B>process cloning</B>. </P>
|
||
<P> </P>
|
||
<P><B>Background:</B> </P>
|
||
<P>The approach is to develop a <I>service</I> and an associated function interface. Your process calls the function with the name of a remote host. The function connects to a well-known port on the remote machine to invoke the cloned service through the inter-networking daemon, inetd. </P>
|
||
<P>Early Unix systems ran daemons for every service that waited for a remote connection. When you used telnet, for example, there was a telnet daemon named telnetd waiting for your connection to port number 23 on the remote machine. (Port 23 is always used for telnet. It is one of many so-called well-known ports defined in /etc/services.) There came to be so many daemon processes waiting for connections that the amount of available swap space and the number of user processes became limited. </P>
|
||
<P>The super-server solved these problems by waiting for a connection to one of a list of its well-known ports, automatically starting associated servers when connections were made. One need only add a line entry to two files to register a new service. You must be root to edit these files or to request that inetd reinitialize itself and reread them [2]. </P>
|
||
<P>Keep in mind that when you allow a process on some remote machine to start a copy of itself on your machine, you bare a significant <U>security risk</U> of that new process being hostile. All of the computers on my network are completely under my control so security is not a concern of mine. That issue will not be discussed further.</P>
|
||
<P> </P>
|
||
<P><B>How It Works:</B> </P>
|
||
<P>The service needs to be defined in /etc/services. Add an entry as follows:</P>
|
||
<PRE>	clone	5050/tcp	# automatically starts cloned</PRE>
|
||
<P> </P>
|
||
<P>where clone is the service name, 5050 is the well-known port number, and tcp is the communications socket's transport protocol. We picked the 5050 port because it was higher than the reserved system port numbers, and it wasn't already in use. (The 50-50, half-and-half connotation will make this port number easy to remember.) </P>
|
||
<P>The clone service needs to be defined to inetd in /etc/inetd.conf as follows: </P>
|
||
<PRE>
|
||
	clone	stream	tcp	nowait	root	/user/bin/cloned	cloned</PRE>
|
||
<P> </P>
|
||
<P>where clone is the service name, a match to the /etc/services entry. (See the man pages for inetd.conf for descriptions of other parameters [2].) Note that inetd will not know about these new entries until the system is rebooted, or unless you issue a command to force it to reread its configuration file. Issue </P>
|
||
<PRE>
|
||
	>killall -HUP inetd</PRE>
|
||
<P> </P>
|
||
<P>as the root user to make inetd reread its service definition file. </P>
|
||
<P> </P>
|
||
<P><B>How It's Used:</P>
|
||
</B><P>Your application makes a function call to clone() with the name of the remote host where the new copy of your process is to be started. The clone() function determines the name of the active process by searching for its own process id in a ps command output listing. It uses which command output to find the path to the executable. </P>
|
||
<P>When clone() connects to port 5050, inetd accepts the connection and does the plumbing necessary to set cloned's stdin to the socket receive stream and its stdout to the socket send stream. The cloned service gets control from inetd via fork() and execl() calls [3]. </P>
|
||
<P>When cloned gets control on the remote machine, it reads the name of the executable that is sent in the first packet. The received executable data will be written to the local /tmp area using the same executable name.</P>
|
||
<P> </P>
|
||
<P><B>Summary:</P>
|
||
</B><P>The local application calls clone() with the name of the remote host. The clone() function connects to the clone service port, causing cloned to be started on the remote machine. It then copies the executable over the socket connection to the remote machine, where it is written into the local /tmp area by the cloned daemon, activating it via fork() and execl().</P>
|
||
<P>What happens next depends on the needs of your application. You may wish to open a new connection to your remote clone so both copies remain active. You may wish to terminate the local version to effect agent migration. You might even have the remote copy start another remote copy somewhere else, forming a daisy-chain peer-to-peer network.</P>
|
||
<P>How it all works is ultimately up to you, but the first step is to get that process active on a remote machine. An application named <A HREF="misc/vrenios/test.c.txt">test.c</A> and the clone daemon, <A HREF="misc/vrenios/cloned.c.txt">cloned.c</A> along with its interface function, <A HREF="misc/vrenios/clone.c.txt">clone.c</A> are included with this article. All are written in C and tested on Red Hat Linux version 4.2. </P>
|
||
<P> </P>
|
||
<P><B>References:</P>
|
||
</B><P>[1] Milojicic, D., Douglis, F. and Wheeler, R., Processes, Computers, and Agents, Association for Computing Machinery Press, 1998.</P>
|
||
<P>[2] See the Unix man pages for inetd and inetd.conf.</P>
|
||
<P>[3] Stevens, W. R., Unix Network Programming, Prentice-Hall, 1990.
|
||
|
||
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <!-- P -->
|
||
<H5 ALIGN=center>
|
||
|
||
Copyright © 2000, Alex Vrenios<BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
<center><H2>
|
||
<A HREF="http://www.linuxgazette.com/">
|
||
<IMG SRC="../gx/newlogo.jpg" width=600 height=256 border=0
|
||
ALT="Linux Gazette... making Linux just a little more fun!"></a>
|
||
</H2>
|
||
<H4>Published by <A HREF="http://www.linuxjournal.com/"><I>Linux Journal</I></A></H4>
|
||
</center>
|
||
|
||
<P> <hr> <P>
|
||
|
||
<H1><font color="maroon">The Back Page</font></H1>
|
||
<ul>
|
||
<li><a HREF="#authors">About This Month's Authors</a>
|
||
<li><a HREF="#notlinux">Not Linux</a>
|
||
</ul>
|
||
|
||
<a name="authors"></a>
|
||
<P> <HR> <P>
|
||
<!--======================================================================-->
|
||
|
||
<center><H3><font color="maroon">About This Month's Authors</font></H3></center>
|
||
|
||
<P> <HR> <P>
|
||
<!--======================================================================-->
|
||
|
||
<!-- BEGIN bio -->
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Shane Collinge</H4>
|
||
Part computer programmer, part cartoonist, part Mars Bar. At night, he runs
|
||
around in a pair of colorful tights fighting criminals. During the day... well,
|
||
he just runs around. He eats when he's hungry and sleeps when he's sleepy.
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Matteo Dell'Omodarme</H4>
|
||
I'm a student at the University of Pisa and a Linux user since 1994.
|
||
Now I'm working on
|
||
the administration of Linux boxes at the Astronomy section of the
|
||
Department of Physics, with special experience about security.
|
||
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Edward Livingston-Blade</H4>
|
||
|
||
<A HREF="MAILTO:edward_leah@earthlink.net">Edward</A> is the netadmin and
|
||
webmaster at <A HREF="http://www.psadult.com">Palm Springs Adult School</A> in
|
||
Palm Springs, California. He also teaches some of their computers classes, and
|
||
when he's not working for the school, he does freelance consulting and
|
||
troubleshooting. In his free time, he hacks on Linux (of course) and maintains
|
||
<A HREF="http://home.earthlink.net/~edward_leah/linux">Edward's Linux
|
||
BrainDump</A>. He is thinking about joining a support group for computer geeks
|
||
who take on too many responsibilities. (And if there isn't such a group, maybe
|
||
he can start one? How much work could that be?)
|
||
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Wolfgang Mauerer</H4>
|
||
<A HREF="mailto:wolfgang@mynetix.de">Wolfgang</A>
|
||
wrote the German book <I>Textverarbeitung mit LaTeX unter Unix</I>.
|
||
he sometimes works for the German <I>Linux Magazin</I> as a technical writer,
|
||
and is an employee of the small German web company MyNetix, where he acts as
|
||
programmer and system administrator.
|
||
|
||
|
||
<p>
|
||
<h4><img align=bottom alt="" src="../gx/note.gif">Mark Nielsen</h4>
|
||
Mark founded The Computer Underground, Inc. in June of 1998. Since then,
|
||
he has been working on Linux solutions for his customers ranging from custom
|
||
computer hardware sales to programming and networking. Mark specializes in Perl,
|
||
SQL, and HTML programming along with Beowulf clusters. Mark believes in the
|
||
concept of contributing back to the Linux community which helped to start his
|
||
company. Mark and his employees are always looking for exciting projects to do.
|
||
|
||
<p>
|
||
<h4><img align=bottom alt="" src="../gx/note.gif">Krassimir Petrov</h4>
|
||
Krassimir has a PhD in Agricultural Economics from Ohio State University. He
|
||
also has an MA in Economics and a BA in Business (Finance, Accounting,
|
||
Management).
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Pramode C.E and Gopakumar C.E</H4>
|
||
Pramode works as a teacher and programmer while
|
||
Gopakumar is an engineering student who likes to play with Linux
|
||
and electronic circuits.
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Jason Steffler</H4>
|
||
<a href="http://www.magma.ca/~jagwar">Jason</a>
|
||
is a software engineer currently consulting at Sprint in KC. His
|
||
computer-related interests include: Object-Oriented programming & design,
|
||
Smalltalking, software development methodologies, large industrial software
|
||
systems that often address 'wicked' problems, and of course, noodl'n around
|
||
with Linux.
|
||
|
||
<P>
|
||
<H4><IMG ALIGN=BOTTOM ALT="" SRC="../gx/note.gif">Alex Vrenios</H4>
|
||
Alex is a Lead Software Engineer at Motorola. He is always taking some sort of
|
||
class. He just finished the class work toward a Ph.D. in computer science,
|
||
but only time will tell if it goes any further. His wife, Diane, is certainly
|
||
his best friend and biggest fan. He enjoys his two Schnauzers, Brutus and Cleo,
|
||
and his dozens of African Ciclids, too. He is a licensed amateur radio
|
||
operator, as is Diane, and they spend more than a few nights together observing
|
||
the skies through their 5-inch telescope. They like to get out and stay
|
||
active, to enjoy life together.
|
||
|
||
<!-- END bio -->
|
||
|
||
<a name="notlinux"></a>
|
||
<P> <hr> <P>
|
||
<!--====================================================================-->
|
||
|
||
<center><H3><font color="maroon">Not Linux</font></H3></center>
|
||
|
||
<P> <HR> <P>
|
||
<!--======================================================================-->
|
||
<P>
|
||
|
||
<P> This caricature of your humble editor is by Shane Collinge, who draws our <A HREF="collinge.html">HelpDex</A> series.
|
||
|
||
<IMG ALT="your editor" SRC="gx/backpage/MikeOrr.jpg" WIDTH="596" HEIGHT="500" VSPACE="20">
|
||
|
||
|
||
<P> The post-WTO protest to shut down Microsoft (or at least annoy them) took
|
||
place as scheduled, but your editor had a doctor's appointment and couldn't
|
||
attend. News coverage was scanty except for this
|
||
<A HREF="http://archives.seattletimes.com/cgi-bin/texis/web/vortex/display?storyID=38a091f3a4&query=microsoft+protest+dan"><I>Seattle Times</I> article</A>.
|
||
The <I>Seattle Weekly</I> later did an
|
||
<A HREF="http://www.seattleweekly.com/features/0008/features-howland.shtml">
|
||
analysis</A> of the event, although only the first part of the article is
|
||
direcly about Microsoft.
|
||
|
||
<P> Ironically, Microsoft Singapore sent the <I>Gazette</I> a nice piece of
|
||
spam about a "Windows 2000 Professional Sales Training"
|
||
seminar. "Come and learn all about Windows 2000 Professional, then take the
|
||
online test. Microsoft will award all who pass with a certificate you can
|
||
frame and show others your achievement." I can't wait. Not.
|
||
|
||
<P> Thanks for sending in your articles and 2-cent tips.
|
||
Remember to have fun with Linux this month!
|
||
|
||
<P> Michael Orr<br>
|
||
Editor, <A HREF="http://www.linuxgazette.com/"><i>Linux Gazette</i></A>, <A
|
||
HREF="mailto:gazette@ssc.com">gazette@ssc.com</a>
|
||
<BR CLEAR="all">
|
||
|
||
<!-- *** BEGIN copyright *** -->
|
||
<P> <hr> <P>
|
||
<H5 ALIGN=center>
|
||
This page written and maintained by the Editor of the <I>Linux Gazette</I>.<BR>
|
||
Copyright © 2000, <A HREF="mailto:gazette@ssc.com">gazette@ssc.com</A><BR>
|
||
Published in Issue 51 of <i>Linux Gazette</i>, March 2000</H5>
|
||
<!-- *** END copyright *** -->
|
||
|
||
</BODY></HTML>
|