Linux Gazette... making Linux just a little more fun!

Copyright © 1996-97 Specialized Systems Consultants, Inc. linux@ssc.com


Welcome to Linux Gazette!(tm)

Sponsored by:

InfoMagic

Our sponsors make financial contributions toward the costs of publishing Linux Gazette. If you would like to become a sponsor of LG, e-mail us at sponsor@ssc.com.

Linux Gazette

Copyright © 1997 Specialized Systems Consultants, Inc.
For information regarding copying and distribution of this material see the Copying License.


Table of Contents
May 1997 Issue #17


The Answer Guy

Weekend Mechanic will return next month.


TWDT 1 (text)
TWDT 2 (HTML)
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.


Got any great ideas for improvements! Send your comments, criticisms, suggestions and ideas.


This page written and maintained by the Editor of Linux Gazette, gazette@ssc.com


"Linux Gazette...making Linux just a little more fun!"


 The Mailbag!

Write the Gazette at gazette@ssc.com

Contents:


Help Wanted -- Article Ideas


The last couple of months have been rather light on articles. It's been helpful to have the new chapters for Linux Installation and Getting Starting to include. So all you budding authors and Linux users out there, send me your stuff. Don't depend on our regular authors to fill the gap. We want to hear about all the neat tips and tricks you've found, as well as all the neat applications your are writing or working with. --Editor


 Date: Sat Apr 19 07:29:14 1997
Subject: Searching for Information On Newsgroups
From: Roman, Roman@pussycat.ping.de

Hi folks!

I'm installing a very small news- and email system at my local university (peolpe there are studying arts, so there's no one to help me with this). I set up one computer with Linux 2.0.29 which is permanently connected to the 'internet' via ethernet. Then I want to connect a second PC which is installed in the hallway via nullmodem-cable for all the students to write and receive eMail. But the problem now is, that the provider (another part of the university) doesn't give us access to the newsgroups, so I want to set up at least some local newsgroups on this Linux-station.

But I just can't seem to find any documentation explaining how to set up local newsgroups. smtpd and nntpd are running, but the manpages won't tell anything about how to set up ng's (forgive me if I'm just too blind or stupid to find the obvious source of information).

So I don't want to bother you explaining me how to accomplish this task, but perhaps someone can at least tell me where to find the desired information.

Best regards, Roman.


 Date: Thu Apr 24 11:44:40 1997
Subject: VGA_16 Server
From: Javier Viscain

Congratulations for the aim and contents of the Gazette. Here is an issue I've never seen addressed: the VGA_16 server maintains two monitors (the second monochrome with an Hercules card) but what only works is the mouse movement, which moves out of left and right to the other monitor, and console switching. No window on the monochrome gets focus. Things that moreless appear on the monochrome but don't work:

I think that the hardware absolute addressing is the normal VGA one (0A0000 to 0AFFFF) and 64K for the Hercules (0B0000 to 0BFFFF), which is correct. In adition, this server and the mono server are very buggy when with only the Hercules.

Any easy solution, or is it that this configuration has not been debugged?

TIA, Javier Vizcaino, Madrid, Spain.


 Date: Sun 6 Apr 1997 11:54:42 -0400
Subject: Initilation Files
From Karl Easterly bigtexan@mindspring.com
As an article Idea, I think an overview of the major boot scripts would = be helpful. The overview could include an objective view of the = locations, functions, and nifty "tips and tricks" or such. Also, links = to how-toos for each script would future simplify the learning curve for = new users.

Another idea would be to do a chronological installations and = customization series of articles. Granted, hardware diversity might be = a problem and could possibly be subverted by starting the series as = though a working installation of Linux has already been installed. It = would proceed as a rough idea like this.

  1. Booting customization and kernel rebuilding.
  2. Xwin customization, to include the type of activities one = would do in Win95 desktop setup.
  3. Getting dialup connectivity to work.
  4. Getting network connectivity to work.

These are just stabs at a scheme, the actual order would have to be = hammered out before the series started, but in general, would be helpful = to have a step by step issue oriented series of articles concerning the = setup and customization of any linux installation.


 Date: Sat, 1 Mar 1997 15:39:10 -0500
Subject: Ideas for Beginners
From: stephen jarvis 106363.2642@compuserve.com

Hello

I am 'the' absolute beginner.I have had a copy of Linux Slackware and a copy of "Linux configuration and installation " by P Volkerding et al for about two weeks.Prior to this I had dabbled at dos and wondered(?) at windows.But when I heard about Linux in a magazine it occured to me that it might be fun to have a go.And indeed it has been.

The only problem I have had is with regard to the man pages. In general they are technical to a degree that while appropriate for those who can follow the argument from end to end,are pretty debilitating for the newbie like me.Indeed I don't always get to the end.

Perseverence will no doubt pay off and I have expanded my collection of books already,to take advantage of the possibility of learning something about programming on Linux.But then I have always had the kind of curiousity that,while not enough to kill the cat,is enough to keep me in the book shop.The point I think is that the man pages themselves are a bit of a barrier to the wider useage of Linux.

No doubt others would say the detail and technical clout of this source of information is needed for those who want to make serious use of Linux.But not everyone who wants to escape from the soporific influence of Microsoft is that demanding or that knowledgeable.I think someone needs to pitch things at the introductory level.In the realms of 'this will get it going'and 'try this out'.Merely a more chatty approach would help remove the shiney armour of incomprehensibilty some pages deploy.

If this sounds a little unfair to the many people who have compiled ,man pages it is most definitley not meant to be.There is a need for accurate and complete information especially as Linux is a cooperative venture and everyone needs to have a common root of information.The question is how can the benefits of Linux be made widely known to people outside the existing network.What will grab their attention and take the gleam off Windows 95?Something more open to a wider audience perhaps.

This does not have to be completely bland and overly simple just in the range of every day usage.An approach that does not assume that everyone reading knows the meaning of every term on the page.People need an introduction to the language of Linux in the way that you might learn French or English.Start with very basic things and build up in stages.Don't launch straight into 'How To Compile Your Kernal '.Ok thats important ,but I am sure most people still think a kernal is what you find inside a nut.I hope you are getting the general idea.

What us new people need is probably a collection of basic texts each about the length of a several page magazine article.Hopefully they would cover the things that a hardend Linux user would be embarrassed to ask about.'The kernal for beginners'.'Great now I can ask what it really is'.If this undertaking was started then I am sure that the end product of a few months could be published as a small book.Maybe you could publish it.I think there is a potential market.Many magazines recently covered the subject of Linux.That's how I got the bug.

Now it's true there are books already that cover Linux but there are not many on line man pages or magazine articles that give the beginner the feeling that they can actually get their system up and running easily.So if you really want to publish articles for absolute beginners bear in mind the kind of language that is used.

Regards Steve Jarvis

ps.. here's some ideas ' What is the kernal','The basic commands to get around bash','What are disk partitions and why bother',' To Umsdos or not. That's the question','Midnight Commander-an introduction','This is the easiest editor anybody ever used(insert your choice)','A glossary of general terms you'll find on a man page','These books are a good read(assorted titles)'.'How to get around an info text with less than 20 pages of instructions','Why the idea of a free and open o/s matters','X is not a horror film'.

Maybe these are a bit daft but they'd get my attention.They are the sort of things I'd like to know about.


 Date: 04 Apr 97 19:02:21 EST
Subject: Technical Support
From: Dani Fricker 101550.3160@CompuServe.COM

first i wanna say thanx for the lj! great work and fun not even for linuxers! i need your help. for some reasons i have to identify a user on my webserver by his/her ip-address. fact is that users logon comes from different physical machines. that means that i have to assign something like a virtual ip-address to a users log name. something like a reversal masquerading. my ip-gateway connects my inner lan over two token ring network cards (sorry, not my idea!) with the internet (lan <-> tr0 <-> tr1 <-> internet). the masquerading forward roule of ipfwadm gives me the possibility to indicate a source and a destination address. do you see a possibility for an 'address assignment' between the two interfaces? if you do please let me know.

dani fricker
programmer
zurich-switzerland


 Date: Mon, 07 Apr 1997 03:01:17 -0500
Subject:HELP with Man Pages From: "Mauricio Naranjo N." davasgut@col2.telecom.com.co

Well, I have installed the linux toolkit / october 1996 and I have not been able to install the man pages for commonly used commands like cat, ls, and so on; instead I have installed the man pages for packages like, fvwm, midnight commander, ....

So, I installed man2.tgz, man3.tgz, manpgs.tgz, but I still have not been able to get installed the whole support for man; Can you tell me please, what's the matter???? Any kind of help would be great appreciated, and excuses for ignorance but I am new at this OS (finally I found a true one)

Mao


 Date: Mon, 7 Apr 1997 15:43:21 -0400 (EDT)
Subject: Port Mouse
From: Jose, notDefined@novagate.com

Hi, Maybe you can help me with this. (I hope) I switched motherboards, from a zeos pentium 90 that used a serial mouse to a asus p/i-p55tvp4 motherboard that uses a port mouse. And now I can't get x-windows to run. Any ideas?

Jose


General Mail


 Date: Tue, 01 Apr 1997 04:26:04 -0600
Subject: Linux
From: Tred Riggs tred@oak.sfasu.edu

I am a college student attending Stephen F. Austin State University. I work in a Geographic Information Systems Laboratory (GIS) and we have been just using AIX machines. Howerver we do have a full blown linux pc and it is great. {Since then I stripped DOS off my PC and made me a full blown linux box, which works wonderful. We were considering to upgrade to all linux PC's in out lab because they were cheaper and faster than the AIX boxes, but we ran into a problem. The Software we need to run to make our GIS maps is not supported by ESRI, so we gave them a call. This is what they told us:

"Linux will not be a supported platform. They told me that product ports are user driven and there is not enough users wanting this OS."

I could not figure out how they could even say this when all you have to do is get on the web and see millions of people using linux. So here is what I want to happen. I need linux users to E-mail ESRI at buspartners@esri.com and tell them that you use linux and that there are many more people using linux too. ESRI needs to get there head out of Microsofts world and see what is going on in the real world.

Thanks for your time Linux Gazette,

Tred Riggs


 Date: Thu, 3 Apr 97 22:40:23 BST
Subject:http://www.ssc.com/lg/index.html
From: Duncan Simpson dps@duncan.telstar.net

Given Micro$oft's tag line of "Yet another Web server powered by NT" maybe we should collect a list of people doing this sort of stuff on Linux. I can add 3 items myself http://mail.telstar.net is powered by Linux The telstar mail service described there is also powered by the same linux box Astra has switch from NT to Linux for its radius server. (NT was just too expensive and no better than Linux (Un*x)---the price diffrernece was *1000s* of pounds, each about 1.5 $ US). Both astra (and telstar.net) DNS servers are linux.

If the stats show that Linux is more popular for comercial web servers than NT, this would be something nice to be able to point out...

Duncan (-:

P.S. Any bets when Truetype fonts can be used for proper typesetiing. At present they lack litagures (fl and various other items that are tradionally rendered as single characters)?

P.P.S. The use of the present tense (switch) is apt because the change is happening now. (Despite a bug that is now not being exercised due to an attempt to eradicate it mail.telstar.net is more reliable than any of various NT machines at handling mail).


 Date: Fri, 04 Apr 1997 15:57:12 -0600
Subject: Re: How to ftp Back Home
From: James Stansell james.stansell@wcom.com

The ifconfig command works, and may be the most authoritative on the subject (except I believe the PPP log also contains your current IP), but the ifconfig command returns a ton more information than I want.

So I ask my machine at work who I am:

who am i
stansell   ttyp6   Apr 4 15:51   (206.125.79.118)

I've inserted your example IP address where my actual address showed up. If the DNS at work does happen to know a name for my address, then it shows up instead of the IP.

--james


 Date: Thu, 10 Apr 1997 17:08:38 -0500
Subject: Re:GV article
From: Larry Ayers ayers@vax2.rainis.net
To: Geoffrey Leach geoffrey@iname.com
Sorry the URL didn't work for you; I recently got an email message from Helmut Geyer, the maintainer of the Debian GV version and he included a URL for a new GV home-page: http://wwwthep.physik.uni-mainz.de/~plass/gv/

The Debian version is in the /text section of the /i386 binary directory of any Debian mirror. Shouldn't be too hard to find.

Good luck!

Larry Ayers


Published in Linux Gazette Issue 17, May 1997


[ TABLE OF 
CONTENTS ] [ FRONT 
PAGE ]  Next

This page written and maintained by the Assistant Editor of Linux Gazette, gazette@ssc.com
Copyright © 1997 Specialized Systems Consultants, Inc.

"Linux Gazette...making Linux just a little more fun! "


More 2¢ Tips!


Send Linux Tips and Tricks to gazette@ssc.com


Contents:


X Limitation to 8 Bit Color

From: Gary Masters gmasters@devcg.denver.co.us

I read your question in Linux Gazette regarding an X limitation to 8 bit color when the system has more than 14 megs of RAM. Where did you find that information? I ask because my system has 24 megs of RAM, and I run 16 bit color all the time. One difference between our systems is that I am using a Diamond Stealth 64 video card.

The place I tell X to run in 16 bit mode is in the file /usr/X11R6/bin/startx. There is a line in this file that begins with serverargs. I get 16 bit mode by giving "-bpp 16" as an argument in this line (e.g. serverargs="-bpp 16").

One problem I did have was that the OpenLook Window Manager (olwm) did not like 16 bpp mode. I solved this by switching to the OpenLook Virtual Window Manager (olvwm)[1]. I also had success using the Tab and FV Window Managers (twm & fvwm) in 16 bpp mode.

Coming from a SunOS background, I'm used to OpenLook.

Gary Masters


Screen Blanking Under X

From: Gary Masters gmasters@devcg.denver.co.us

I read your question in the Linux Gazette regarding unwanted screen blanking under X after upgrading to a newer distribution of Linux. I had the same frustration. Apparently the X servers included in the Xfree86 version distributed with current Linux distributions has screen blanking compiled as a default behavior.

This behavior can be controlled with the -s option to the server. Look in the startx script for a line that begins with serverargs and add "-s 0". This will disable the X screen blank.

Gary Masters


Doubleclick Internet User Profiles

From: Kragen Javier Sittler kragen@pobox.com

Check out the description of what doubleclick.net does at http://www.doubleclick.net/frames/adinfo/dartset.htm

Then decide whether you want to be added to their database of Internet user profiles. If not, you can use the script below; I run it in my

/etc/rc.d/rc.inet1
. It prevents any DoubleClick banners from being displayed, prevents any cookies from being set, and prevents DoubleClick from collecting any data on you.

It also does the same thing with linkexchange.com, because I find their constant banners and requests for cookies annoying. If you'd prefer, you can take out the linkexchange lines.

However, this will also keep you from receiving *any* information from doubleclick or linkexchange directly... so you can't visit their web sites either.

On my machine, I put the script in

/etc/rc.d/rc.doubleclick
and run it from
/etc/rc.d/rc.inet1
at boot time, so I'm always protected from DoubleClick.
# Script begins below:

#!/bin/sh
# By Kragen Sitaker, 21 April 1997.

# Prevent any packets from reaching doubleclick.net
/sbin/route add -net 199.95.207.0 netmask 255.255.255.0 lo
/sbin/route add -net 199.95.208.0 netmask 255.255.255.0 lo

# And ad.linkexchange.com too!
/sbin/route add -net 204.71.189.0 netmask 255.255.255.0 lo


How to Mount/Unmount For Users

From: Kidong Lee kidong@shinbiro.com

When I mount/umount file, I have to login as root. It's not convenient for me & other users. but, I found the solution that user who is not root can do mount/umount in mount man page.

Take a look at /etc/fstab.

#          

/dev/hdb      /cdrom         iso9660          ro,user   0      0

Note "user" in options field. In options field, if you add "user", users can do mount/umount.


File Transfer With the z Protocol

From: Gregor Gerstmann, gerstman@tfh-berlin.de

Regarding Linux Gazette issue16, April 1997, I have some remarks regarding the article on file transfer with the z protocol: 'I type sz things go along fine, until about 40K then I get a couple of different error messages....' We have an internal modem with a transfer rate of 2880 cps on the telephone line. My son has an account at a Berlin university with a limited capacity of 5MB. We found the same error but not limited to a special file size! During the night hours, between 1 and 5h local time, when telephone costs are lowest, we sometimes transfered files up to 100KB without errors! To avoid any errors at all, I limited the packages to 20 * 1024 = 20480 bytes, if a CRC occurs, transfer begins once more but with- out timeout error, because the parcels are small. I use two proce- dures: the first, Chop, generates another procedure that chops the file to be transfered with the help of dd into packages and regu- lates the transfer and removing of transfered packages. At home we concatenate the packages again with cat ... ... > ... and everything is ok. The last step could be done by a procedure too. Of course, it is rather simple software, but it works until we will use ISDN.

first parameter - number of bytes
second		- begin of output names, e.g. p1
third		- name of file to be chopped
#!/bin/bash
echo "* Begin of procedure Chop *"
date
# rm alte Datei
if test -e /usr/TFH/EXAMPLE
	then rm /usr/TFH/EXAMPLE
fi
# Test auf Parameter
if test $# -lt 3
	then echo "Incorrect number of parameters !
Please repeat procedure call !"
echo "* End of procedure Chop (error) *"
	exit 1
	else echo "Call was ok"
fi
#
BY=$1
ANZZ=$[(($BY / 20480) + 1)]
quantity=$ANZZ
i=1
recs=0
while test "$i" -lt "$quantity"
do
echo dd if=$3 of=$2_$i bs=1024 skip=$recs count=20 >> /usr/TFH/EXAMPLE
echo sz $2_$i >> /usr/TFH/EXAMPLE
echo rm $2_$i >> /usr/TFH/EXAMPLE
	i="`expr $i + 1`"
	recs="`expr $recs + 20`"
done
echo dd if=$3 of=$2_$i bs=1024 skip=$recs >> /usr/TFH/EXAMPLE
echo sz $2_$i >> /usr/TFH/EXAMPLE
echo rm $2_$i >> /usr/TFH/EXAMPLE
#
echo "* End of procedure Chop (ok) *"
#


Using ftp Commands in Shellscript

From: Walter Harms, Walter.Harms@Informatik.Uni-Oldenburg.DE
Using FTP as a shell-command with ftplib

Working on several different networks means that you always need to copy your data from net to net. Most ppl use rcp but like most SysOps I found this to be a terrible security hole. So as I started this job my first business was to rewrite several scripts that were using rsh,rcp etc. I replaced them with an ftp based script ftp - <input> out 2> out.err. It's easy to see that this was not a good idea because ftp was not intended as shell-commando like cp,mv and the other guys. So I was happy to find the ftplib on a linux-CD. It's a nice lib that I used to build cmds like ftpmv, ftpcp, ftprm.. This made my scripts much slimmer and simpler. I have some terrible copy-scripts running but no problems copying on different systems like Ultrix or AIX.

Example using ftpget (from the ftplib Author Thomas Pfau)

ftpget sunsite.unc.edu -r /pub/Linux ls-lR.gz
This command reads the file
/pub/Linux/ls-lR.gz from sunsite.unc.edu
Likewise there are other commands with the lib: ftpdir ,ftpsend, ftprm

Who needs ftplib?
Everybody tired of typing ftp... every evening to get the latest patches or whatever. Everyone who is regularly copying with ftp the same Datafiles.

Why use ftplib?
Of course you can add it to you own application but more experienced users don't have to use these r-commands anymore. An ftpd is available for the majority of systems so it is easier to access more of them.

Any drawbacks?
Of course, for any ftp session you need a user/paswdr. I copy into public area using anonymous/email@ others will need to surly a password at login, what is not very useful for regular jobs or you have to use some kind of public login but still I think it's easier and better to use than the r-cmds.

-- walter


ACSII-Artwork Translator

Here is something interesting which you might consider for publication. It is a short program written in LEX and C, which takes ASCII-Artwork and translates it into HTML 3.0 compliant table data. It is a pretty interesting idea, and as far as I know, I'm the first person to try something like this, or automate the process. The translator (a2t) has a few options:

The program was completed just today, so it is very new. I've released it under the GNU license agreement.

For some examples of the output generated by a2t, see: http://wilkes.edu/~pkeane
I think you'll find the results to be pretty amusing, and slightly more interesting than the usual bag of HTML table-tricks.

Enjoy-- Patrick

%{

/* Ascii-to-Table version 2.0
**
** A conversion utility to convert gifscii type ASCII-Artwork into
** grayscale HTML 3.0 compliant html documents using tables.
**
** Copyright(C) 1997 by Patrick J.M. Keane --  All rights reserved.
** (pkeane@wilkes.edu)
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
**
*/

#include 
#include 
#include 

char shade1[4], shade2[4], shade3[4] ;
int reverse=0, widthset=0, width=0 ;
int shade1set=0, shade2set=0, shade3set=0 ;

void maketd(const char *value) {
  printf("",
	 ((shade1set==0) ? value : shade1),
	 ((shade2set==0) ? value : shade2),
	 ((shade3set==0) ? value : shade3)) ;
  printf(" ") ;
}

main(int argc, char *argv[]) {
  int c;
  extern int optind;
  extern char *optarg;
  extern int opterr;

  while ((c = getopt(argc, argv, "w:r:g:b:xh")) != EOF) {
    switch (c) {
    case 'x':
      reverse = 1 ;
      break;
    case 'h':
      fprintf(stderr, "Usage:\n\tcat asciifile | a2t [-h] [-x] [-[rgb] value] [-w width] > document.html\n\n") ;
      fprintf(stderr, "\t-h       : This help screen\n") ;
      fprintf(stderr, "\t-x       : Reverse output\n") ;
      fprintf(stderr, "\t-r value : Constant R GB value\n") ;
      fprintf(stderr, "\t-g value : Constant G RB value\n") ;
      fprintf(stderr, "\t-b value : Constant B RG<B> value\n") ;
      fprintf(stderr, "\t-w value : Set width of output table\n") ;
      exit(0) ;
      break;
    case 'r':
      shade1set = 1 ;
      strcpy(shade1, optarg) ;
      break ;
    case 'g':
      shade2set = 1 ;
      strcpy(shade2, optarg) ;
      break ;
    case 'b':
      shade3set = 1 ;
      strcpy(shade3, optarg) ;
      break ;
    case 'w':
      widthset = 1 ;
      width = atoi(optarg) ;
      break ;
    default:
      fprintf(stderr, "Bad option: %c\n", c);
      exit(1) ;
      break;
    }
  }

  printf ("Table Art!\n") ; 
  printf ("\n") ; 
  printf ("\n") ; 
  printf ("\n") ;
  printf ("
\n") ; printf ("", width) ; else printf(">") ; printf ("\n") ; yylex() ; printf("
\n") ; } %} %option yylineno ws [ ]* %% "$"|"@" { (reverse) ? maketd("00") : maketd("ff") ; } "W"|"M" { (reverse) ? maketd("20") : maketd("f7") ; } "B"|"%"|"8"|"&" { (reverse) ? maketd("20") : maketd("f0") ; } "#"|"*"|"9"|"6"|"H" { (reverse) ? maketd("20") : maketd("e7") ; } "o"|"h"|"k" { (reverse) ? maketd("27") : maketd("e0") ; } "4"|"5"|"S"|"K" { (reverse) ? maketd("30") : maketd("d7") ; } "a"|"e"|"s" { (reverse) ? maketd("37") : maketd("d0") ; } "b"|"d"|"p"|"q" { (reverse) ? maketd("40") : maketd("c7") ; } "w"|"m"|"3" { (reverse) ? maketd("47") : maketd("b7") ; } "z"|"O"|"0"|"Q" { (reverse) ? maketd("50") : maketd("b0") ; } "L"|"G"|"D"|"C"|"2" { (reverse) ? maketd("57") : maketd("a7") ; } "R"|"E"|"U"|"X" { (reverse) ? maketd("60") : maketd("a0") ; } "N"|"A"|"Y"|"P" { (reverse) ? maketd("67") : maketd("97") ; } "F"|"J"|"Z"|"z"|"c" { (reverse) ? maketd("70") : maketd("90") ; } "g"|"y" { (reverse) ? maketd("77") : maketd("85") ; } "x"|"v"|"u"|"n" { (reverse) ? maketd("80") : maketd("80") ; } "="|"I"|"r"|"j"|"T" { (reverse) ? maketd("87") : maketd("77") ; } "f"|"t" { (reverse) ? maketd("90") : maketd("70") ; } "|"|"?"|"V"|"/"|"\\"|"7" { (reverse) ? maketd("97") : maketd("67") ; } "["|"]"|"{"|"}" { (reverse) ? maketd("a0") : maketd("60") ; } "<"|">"|"("|")" { (reverse) ? maketd("c5") : maketd("50") ; } "i"|"l"|"1"|"|"|"!" { (reverse) ? maketd("d0") : maketd("40") ; } ":"|";"|"+"|"~" { (reverse) ? maketd("e0") : maketd("30") ; } "^"|"\"" { (reverse) ? maketd("e7") : maketd("27") ; } "-"|"_" { (reverse) ? maketd("ff") : maketd("20") ; } "'"|"`" { (reverse) ? maketd("ff") : maketd("20") ; } "."|"," { (reverse) ? maketd("ff") : maketd("20") ; } {ws}"\n" { printf(" ") ; printf("\n") ; } " " { maketd("00") ; } . { fprintf(stderr, "Warning: Character %s is not recognized.\n", yytext) ; fprintf(stderr, "Choosing a medium color!\n") ; maketd("97") ; } %% void yyerror(char *msg) { fprintf(stderr, "^GError :\tLine %d: %s at '%s'\n", yylineno, msg, yytext) ; } int yywrap() { return (1); }


Including Graphics in Linuxdoc SGML

From: Martin Michlmayrtbm@cyrius.com
Date: Thu, Apr 17, 1997 at 07:48:19PM +0200
You can already include PostScript images in Linuxdoc-SGML which will get included in TeX output (and consequently in DVI and PostScript). Linuxdoc-SGML doesn't support images for HTML, however.

An example:

You can make references to the figure with

PostScript is already supported and the developer version of SGML-Tools (the successor of Linuxdoc-SGML) now supports HTML as well. You can specify a PostScript and a GIF file and depending on the output (TeX or HTML) the respective image will be included.


X Configuration Issues

Date: Wed Apr 2 12:15:54 1997
From: Michael J. Hammel, mjhammel@emass.com

If you get sufficiently tweaked by the X monitor config problems, I suggest X Inside's AcceleratedX package. Its much simpler to configure than the XFree package for both cards and monitors. I used to work for them, but haven't in over a year. I still use their package because its the easiest to handle all the video card/monitor details.

BTW, the monitor setup is menu based. If your monitor is not listed you can just use one of the multisync if single frequency generic configs. No dot clocks, but you do need to no your monitors frequency capabilities. These should be listed in the monitors cdocumetntation.

The package is a commercial distribution and runs about $100 (last time I checked). They change their name to Xi Graphics recently and the domain for xinside.com might not be working right now. Try http://www.xig.com.

-- Michael J. Hammel


Multiple X Displays

Date: Wed Apr 2 13:38:08 1997
From: Michael J. Hammel mjhammel@emass.com

Setting up the software is probably fairly straight forward. I've never used MetroX (I use AcceleratedX instead), however. Basically you'll have two choices:

  1. Multiple displays (host:0.0 and host:1.0)
  2. Multiple screens of the same display (host:0.0 and host:0.1)

The second choice is the one you need if you want to move the mouse between the two monitors - like when the mouse goes past the right edge of the first monitor it shows up on the left edge of the second monitor. You'll have to check with Metro to find out which of these options is supported and how to configure for it.

The hardware problem is tougher. The problem lies in the fact that PC's were not originally designed with the idea that multiple display adapters would be installed. The BIOS looks for an adapter at certain locations (IRQ, I/O address) and, unless the second card is configurable to some other address, the system will find multiple cards. What happens next is in-determinant. Some systems won't boot. Some do but don't display to either monitor correctly.

The trick is to find video adapters that were designed to be used in conjunction with other video adapters. Many are not. The easiest way for you to find out is check with Metro about what combinations of video adapters they know work together. Chances are good the ones you have don't. I know X Inside had a list of cards they knew work together. You could search their web site (http://www.xinside.com or http://www.xig.com) and see if that info is still there.

Hope this helps.

-- Michael J. Hammel


Color Depths with X

Date: Wed Apr 2 13:27:40 1997
From: Michael J. Hammel mjhammel@emass.com
After fiddling with the xf86config file in a concerted effort to coax X into displaying 16 bit color, I was dismayed to learn that with my current hardware (16 megs RAM and a Cirrus Logic GL-5426) 16 bit color is *impossible*...not because of any hardware in-capability, but because of a certain limitation of X Windows itself...a problem with linear addressing. Seems that to have 16 bit color under X, one must have linear addressing enabled, which only works if the system has *no more than 14 megs RAM*.

Horse hockeys. 16 bit color is a limitation of the video subsystem and has nothing to do with the memory of your system. Linear addressing in the XFree86 X servers might be tied to system memory amounts, but that would be a limitation in the XFree86 server, not in X. X defines "method without policy", so such limitations just aren't built into X.

A couple of things you should note: The number of colors available under 16bit displays is actually *less* than the number available to 8bit displays. Why this is true has to do with the way 16bit display hardware works. The actual color palette for 8 bit displays can have millions of colors - it can only display 256 colors at a time, however. Frugal use of colormaps can allow you to have nearly exactly the right colors for any given application. 16 bit displays only have a palette of 65k (roughly) colors. Once those are used up, you're outta luck.

I'm not completely clear on what makes this difference such a problem but if you visit the Gimp User's mailing list (see the Linux Graphics mini-howto: http://www.csn.net/~mjhammel/linux/lgh.html) and ask this question you'll get similar replies. Its been discussed quite at length on the developers list, and most of them read the User's list.

BTW, if you want to see if Linear Addressing is the real problem, try the X Inside AcceleratedX demo server and see if it works in 16 bit color for you. Generally, your video card needs at least 1M of on board RAM (not system memory - this is video memory on the video card) to run in 16Bit mode, but then you'll probably only be able to run in 640x480 or (at most) 800x600 resolution. To run at higher resolutions you'll need more video memory.

Hope this helps.

-- Michael J. Hammel


Figuring Out the Boot Process

Date: Fri, 04 Apr 1997 13:20:40 -0600
From: David Ishee dmi1@ra.MsState.Edu
One of the things that is confusing about Linux at first is which files Linux uses to load programs and get the system started at bootup. Once you figure out which programs are run during the boot process, which order are they run? Here is an easy solution.

On my Red Hat 4.0 system, the /etc/rc.d directory tree is where everything happens. There are a lot of shell scripts in this set of directories that are run when the system boots. To give yourself a little more info, add some echo statements to the files. For example:

edit /etc/rc.d/rc.sysinit and add the following lines at the beginning

echo " "
echo "**** Running /etc/rc.d/rc.sysinit ****
echo " "

Now when the system is booting you can see exactly when rc.sysinit is run, and what programs it launches. Repeat the above process for all the scripts you find.

Now if the system hangs or gives an error during bootup you have a better idea of where to look. If you don't have any problems while booting then at least you have more info about what Linux is doing.

David


ftping Home

Date: Thu, 3 Apr 1997 20:38:02 +0300 (EET DST)
From: Kaj J. Niemi, kajtzu@4u.net
I read your article about ftping home with dynamic IPs.. Here's something you might need if you get tired of looking at the screen every time you want to find out the IP.

ADDRESS=`/sbin/ifconfig | awk 'BEGIN { pppok = 0}
                          /ppp.*/ { pppok = 1; next }
                          {if (pppok == 1 ) {pppok = 0; print} }'\
                          | awk -F: '{print $2 }'| awk  '{print $1 }'`

Just replace the ppp.* with whatever you want (if you have multiple ppps running). The easiest thing would to be write a script called ftphome (or similar) and make it first assign the address and then doing ftp or ncftp $ADDRESS. The snippet is originally from a local firewall, at the part where it needs to know what its' own address is. :-) A friend of mine at mstr@ntc.nokia.com wrote this for me.

-- Kaj J. Niemi


Published in Linux Gazette Issue 17, May 1997


[ TABLE OF 
CONTENTS ] [ FRONT PAGE ]  Back  Next


This page maintained by the Assistant Editor of Linux Gazette, gazette@ssc.com
Copyright © 1997 Specialized Systems Consultants, Inc.

"Linux Gazette...making Linux just a little more fun!"


News Bytes

Contents:


News in General


 GLUE Announcement

Every GLUE User Group To Receive Free Copy of BRU 2000 Backup And Restore Utility

Linux Expo, Research Triangle Park, NC (April 4, 1997) - Enhanced Software Technologies, Inc. announced today that Groups of Linux Users Everywhere (GLUE) will provide a free copy of the new BRU 2000 backup and restore utility to GLUE user groups.

Enhanced Software Technologies, Inc. has joined Linux International as a corporate member and is also offering members of GLUE user groups a 10-percent discount on purchases of BRU 2000.

Enhanced Software Technologies, Inc., a privately held corporation based in Tempe, Arizona, is a leading provider of high-reliability systems

Additional information on BRU Giveaway.

GLUE is a project of SSC publishers of Linux Journal. GLUE was implemented to provide a world-wide member group for Linux User Groups. GLUE member groups receive a subscription, materials for promoting and developing their group, a way of advertising their group in a global setting, list-serv and Linux Group location services, and discounts and samples from SSC and Linux Journal. Other vendors may also offer special services or discounts to GLUE member groups.

Additional information on Glue.


 SOLID desktop for Linux offered free of charge to developers

Solid Information Technology Ltd today announced a campaign targeted at the community of Linux developers. Between March and September 1997 Linux enthusiasts will be presented with a free personal version of the robust SQL database engine SOLID Server.

SOLID Server is a unique product by Solid Information Technology Ltd, a privately held innovator of database technologies.

To download your own copy of SOLID Desktop for Linux, access http://www.solidtech.com/linuxfre.htm to find a site near you.

Additional Information:
Solid Information Technology Ltd, http://www.solidtech.com.


 The Elsop Webmaster Resource Center

The Elsop Webmaster Resource Center
http:www.elsop.com/wrc/

Contains links and comprehensive coverage of computer industry trade publications, website development, HTML, servers, validators, link checkers, and software for webmasters.

Major sections include:

Produced and Sponsored by the Electronic Software Publishing Corporation http://www.elsop.com/linkscan


 Linux Jokes Wanted

Do you consider yourself witty? Do you want to show your fabulous sense of humor to the world? NOW IS YOUR CHANCE!

For several years now Linux Journal has been considering adding a monthly cartoon to our magazine. We know who we could have "draw" the cartoons, but we really don't have any idea what the jokes should be.

Please contribute any ideas you have for "Linux related" cartoons. The type of cartoon we are imagining are one panel cartoons akin to what they have in magazines like the New Yorker.

So send us your favorite Linux jokes (one liners are best), and we will turn them into cartoons.


 Too Good Not To Print

For a good time, check out this website! http://www.lightlink.com/fors/press/net-history.txt


 New User's Group in Knoxville

There is a new user's group for Linux in Knoxvill, TN They are called the Knoxville's Linux Users Base. Check out the web page at http://klub.ml.org


 AfterStep Themes Page

Take a look at the AfterStep Themes page! Trae Mc Combs has been devoting some time to creating themes for http://www.mindspring.com/~xwindow/as.html
or http://www.mindspring.com/~xwindow


 Version 7 of Corel's WordPerfect for Linux

Software Development Corporation http://www.sdcorp.com is working on releasing version 7 of Corel's WordPerfect for Linux. It's expected to ship sometime in April, with beta testing currently taking place.

Their webpages seem to warn that only beta testers have access to the software, but following the links takes you to the download area where they're freely available.


 Computer Comparison

Here is a URL that has some interesting data: http://fampm201.tu-graz.ac.at/karl/timings30.html
This web site is maintained by Karl Unterkofler, and has comparisons of various computers running the latest versions of Mathemetica. Karl and others run a series of tests on the machines, that involve timing mathematical problems.

8 of the 10 fastest machines are running the Mac OS! the first windows machine doesn't make a showing until 11th place( a pentium pro 200Mhz running Windows NT 4.0) Incidently this ppro 200 is beat by a Mac 7500 150 Mhz!

You might wonder how this can be when the SPECint95 for Pentium Pros and for Power PC 604's are so close? Its the operating system dummy!

What do I mean?

The Intel machines and the Macs are pretty equal, its Windows that slows things down. If you check out the URL you'll see that although 8 of the top ten are Macs or Mac clones, 2 of them are Intel pentium Pro 200Mhz machines. Sadly for the Mac, the number one spot is a Pentium Pro 200 with 64 Meg RAM and a 256kb L2 cache running LINUX 2.0.27.

This barely beats the number 2 machine, a 225Mhz Power Tower Pro from Power Computing with 256 Meg RAM and a 1Meg L2 cache. The other Intel in the top 10 is a Pentium Pro 200Mhz with 128Meg Ram and 256Kb L2 cache, running NeXT STEP 3.3.

I don't think that Mac owners should be ashamed of losing to a LINUX machine. LINUX is the result of an amazing effort put forth by many dedicated programmers to produce a state of the art 32bit operating system that utilizes hardware to the fullest. Mac users should be happy that they can go head to head with such an OS, and still maintain the great human interface of the Mac!

The only other contender is a NeXT machine! Wait'll your windows friends see redbox! Oh, BTW the first Win '95 machine doesn't make a showing until 15th place. its a Pentium pro 200, 64 MB, 256kb, OS: Win95 and is just below a PowerMac 7600/120, 48MB, 256kb, MacOS!

So if a windows user tells you their machine is faster, tell them that you know...if they switch to LINUX.


 Word Processor for the Linux Environment

The development of 'wp', a word processor for the Linux environment has recently been started. Although it's primary goal is a Linux-based word processor, wp will eventually be available for many other platforms.

WP is an open system, object orientated, and object driven; written mainly using C++, although little code has of yet been written. The current objective is a full design specification/mission statement and determining the current products that can be used to help the development of the product further.

Because of this openness, it is proposed to have the user interface seperate from the main program; the reason for this meaning that the user can choose whichever interface suits them best, from a ncurses driven text interface to an X-Windows display using different widget sets.

The web site for Wp is at http://sunsite.unc.edu/paulc/wp

If you wish to obtain the design specification notes for wp, they are also available at the above site.

A FAQ is currently being prepared, if you have any questions or suggestions, please send them to wp@squiznet.demon.co.uk

If you wish to contribute to the project in any form, please contact paulc@sunsite.unc.edu and introduce yourself, a copy of which will be sent to the wp-developers mailing list unless you specifically state that you do not wish for this to happen.


Software Announcements


 Xcoral 3.0

Xcoral-3.0 has been released and now available on the Net.

Xcoral is a multiwindow mouse-based text editor for the X Window System. It contains a built-in browser that enables you to navigate through C functions, C++ classes, Java classes, methods and files. It also contains a SMall Ansi C Interpreter (Smac) which is also built-in to extend the editor's possibilities (user functions, key bindings, modes etc). Xcoral provides variable width fonts, menus, toolbar, scrollbars, buttons, search, regions, kill-buffers, macros and undo. An on-line manual box, with a table of contents and an index, helps you to use and customize the editor. Xcoral also offers facilities to write Latex documents and Html pages. Xcoral is a direct Xlib client and runs on color/bw X Display.

OS: SunOS 4.1.x, Solaris 2.[45], LINUX, AIX, HPUX, IRIX and OSF-1.

Changes from xcoral-2.5:


 Beta Version of EM86

The Linux/Alpha team at Digital Equipment Corporation today is releasing a developers' beta version of EM86, a Linux/x86 emulator for Linux/Alpha. Using components of the DIGITAL FX!32 technology, EM86 is a software emulator that enables Linux/Alpha systems to run Linux/x86 software without modification.

EM86 currently supports statically linked and dynamically linked x86 ELF32 binaries under Linux/Alpha. Future enhancements will include support for iBCS-2 compliant executables, improved emulator performance, and interoperation with native Alpha code. A release incorporating these features is anticipated in July, 1997.

They are releasing a beta version of EM86 at this time to provide Linux developers early access to the software, to aid in the verification of software packages, and to provide feedback and bug reports to the Linux/Alpha team.

The following Linux/x86 software packages run successfully on this beta version of EM86, with some qualifications as described in the README file included in the distribution:

EM86 may be obtained via anonymous ftp from: ftp://ftp.digital.com/pub/DEC/Linux-Alpha/em86


 XForms V0.86

XForms V0.86 is now available from:

for Linux/i386, Linux/alpha, Linux/sparc, and Linux/m68k.

XForms is a graphical user interface toolkit and builder based on Xlib for X Window Systems. XForms is a portable and efficient C library that can be used in both C and C++ programs. The library works in all visuals and all depths (1-24) and comes with a rich set of objects such as buttons (of many flavors, including color XPMs as labels) , browsers, sliders, and menus integrated into an elegant event/object callback execution model that allows fast and easy construction of X-applications. It also has OpenGL (on SGI) and Mesa support.

XForms comes bundled with

perl, ada95, python and fortran bindings to xforms are in alpha/beta. Please visit the xforms' home page for more info.


 Debian 1.3 Available for Beta Test

Debian 1.3 is now in beta test. We are performing a month-long test with an organized quality control team. If you'd like to be an official beta tester, please contact Dale Scheetz dwarf@polaris.net .

The Debian 1.3 files are under the "frozen" directory on most of the Debian mirror sites. There are now 73 Debian mirrors worldwide! You can find the mirror list at ftp://ftp.debian.org/debian/README.mirrors or ftp://debian.crosslink.net/pub/debian/README.mirrors. Please consider that this is beta-quality software and there will be bugs. If you have any problem, please see the information on our bug-tracking system at http://www.debian.org/support.html, or write to Dale at the above address.


 Freedom Desktop Lite Announced (1.01)

Announcing the public availability of the Freedom Desktop Lite. Freedom Desktop Lite is a desktop environment/GUI integrated to the Unix environment. It helps users interact with Unix quickly and efficiently. Freedom Desktop runs transparently in a variety of Unix environments, from Desktop computers (i.e. Linux) to enterprise workstations.

The Freedom Desktop Lite environment bundles the following applications:

For more information and the ftp site feel free to visit http://freedom.lm.com/desktop.html


Published in Linux Gazette Issue 17, May 1997


[ TABLE OF 
CONTENTS ] [ FRONT 
PAGE ]  Back  Next


This page written and maintained by the Editor of Linux Gazette, gazette@ssc.com
Copyright © 1997 Specialized Systems Consultants, Inc.

"Linux Gazette...making Linux just a little more fun!"


The Answer Guy


By James T. Dennis jimd@starshine.org
Starshine Technical Services, http://www.starshine.org/


Contents:


 fs's

From: Aaron M. Lee aaron@shifty.adosea.com

Howdy Jim, My name's Aaron and I am sysadmin Cybercom Corp., an ISP in College Station, TX. We run nothing but Linux, and have been involved w/ a lot of hacking and development on a number of projects. I have an unusual problem and have exhausted my resources for finding an answer- so I thought you might be able to help me out, if you've got the time. Anyway, here goes...

I've got a scsi disk I was running under Sparclinux that has 3 partitions, 1 Sun wholedisk label, 2 ext2. That machine had a heart attack, and we don't have any spare Hypersparcs around- but I _really_ need to be able to mount that drive to get some stuff off of it. I compiled in UFS fs support w/ Sun disklabel support into the kernel of an i386 Linux box, but the when I try to mount it, it complains that /dev/sd** isn't a valid block device, w/ either the '-t ufs' or '-t ext2' options. Also, fdisk thinks the fs is toast, and complains that the blocks don't end in physical boundaries (which is probably the case for an fdisk that doesn't know about Sun disklabels), and can't even tell that the partitions are ext2 (it thinks one of them is AIX!). Any ideas?

 Consider the nascent state of Sparc support for Linux I'm not terribly surprised that you're having problems. You seem to be asking: "How do I get Linux/Intel to see the fs on this disk?"

However I'm going to step back from the that question and ask the broader question: "How do you recover the (important) data off of that disk in a usable form?"

Then I'll step back even further and ask: "How important is that data? (what is its recovery worth to you)?"

... and
"What were the disaster plans, and why are those plans inadequate for this situation?"

If you are like most ISP's out there -- you have not disaster or recovery plans, and little or no backup strategy. Your boss essentially asks you to running back and forth on the high wire at top speed -- without a net.

As a professional sysadmin you must resist the pressure to perform in this manner -- or at least you owe it to yourself to carefully spell out the risks.

In this case you had a piece of equipment that was unique the Sparc system -- so that any failure of any of its components would result in the lack of access to all data on that system.

Your question makes it clear that you didn't have sufficiently recent backups of the data on that system (otherwise the obvious solution would be to restore the data to some other system and reformat the drive in question).

My advice would be to rent (or even borrow) a SPARC system for a couple of days (a week is a common minimum rental period) -- and install the disk into that.

Before going to the expense of renting a system (or buying a used one) you might want to ensure that the drive is readable at the lowest physical level. Try the dd command on that device. Something like:

		dd if=/dev/sda | od | less

... should let you know if the hardware is operational. If that doesn't work -- double and triple-check all of the cabling, SCSI ID settings, termination and other hardware compatibility issues. (You may be having some weird problem with a SCSI II differential drive connecting to an incompatible controller -- if this is an Adaptec 1542B -- be sure to break it in half before throwing it away to save someone else the temptation (the 1542C series is fine but the B series is *BAD*)).

Once you are reasonably confident that the hardware is talking to your system I'd suggest doing a direct, bitwise, dump of the disk to a tape drive. Just use a command like:

		dd if=/dev/sda of=/dev/st0

... if you don't have a sufficiently large tape drive (or at least a sufficiently large spare hard disk) *and can't get one* than consider looking for a better employer.

Once you have a tape backup you can always get back to where you are now. This might not seem so great (since you're clearly not where you'd like to be) but it might be infinitely preferable to where you'll be if you have a catastrophic failure on mounting/fsck'ing that disk.

For the broader problem (the organizational ones rather than the technical ones) -- you need to review the requirements and expectations of your employer -- and match those against the resources that are being provided.

If they require/expect reliable access to their data -- they must provide resources towards that end. The most often overlooked resource (in this case) is sysadmin time and training. You need the time to develop disaster/recovery plans -- and the resources to test them. (You'd be truly horrified at the number of sites that religiously "do backups" but have an entire staff that has never restored a single file from those).

Many organizations can't (or won't) afford a full spare system -- particularly of their expensive Sparc stations. They consider any system that's sitting on a shelf to be a "waste." -- This is a perfectly valid point of view. However -- if the production servers and systems are contributing anything to the companies bottom line -- there should be a calculable cost for down time. If that's the case then there is a basis for comparison to the costs of rentals, and the costs of "spare" systems.

Organizations that have been informed of this risks and costs (by there IS staff) and continue to be unwilling or unable to provide the necessary resources will probably fail.

 Thanks in advance for any possible help, --Aaron

 It's often the case that I respond with things that I suspect my customer don't want to hear. The loss of this data (or the time lost to recovering it) is an opportunity to learn and plan -- you may prevent the loss of much more important information down the road if you now start planning for the inevitable hardware and system failures.


 Linux/Unix Emulator

From:Steven W., steven@gator.net

Can you help me? Do you know of a Unix (preferably Linux) emulator that runs under Windows95?

-- Steven.

 Short Answer: I don't know of one.

Longer Answer:

This is a tough question because it really doesn't *mean* anything. An emulator is a piece of software that provide equivalent functionality to other software or hardware. Hopefully this software is indistinguishable from the "real" thing in all ways that count.

(Usually this isn't the case -- most VT100 terminal emulation packages have bugs in them -- and that is one of the least complicated and most widespread cases of emulation in the world).

A Unix "emulator" that ran under Win '95 would probably not be of much use. However I have to ask what set of features you want emulated?

Do you want a Unix-like command shell (like Korn or Bash)? This would give you some of the "feel" of Unix.

Do you want a program that emulates one of the GUI's that's common on Unix? There are X Windows "display servers" (sort of like "emulators") that run under NT and '95. Quarterdeck's eXpertise would be the first I would try.

Do you want a program that allows you to run some Unix programs under Win '95? There are DOS, OS/2, and Windows (16 and 32 bit) ports of many popular Unix programs -- including most of the GNU utilities. Thus bash, perl, awk, sed, vi, emacs, tar, and hundreds of other utilities can be had -- most of them for free.

Do you want to run pre-compiled Unix binaries under Win '95? This would be a very odd request since there are dozens of implementations of Unix for the PC platform and hundreds for other architectures (ranging from Unicos on Cray super- computers to Minix and Coherent on XT's and 286's). Binary compatibility has playing only a tiny role in the overall Unix picture. I suspect that supporting iBCS (a standard for Unix binaries on intel processors -- PC's) under Win '95 would be a major technical challenge (and probably never provide truly satisfying results).

*note*: One of the papers presented at Usenix in Anaheim a couple of months ago discussed the feasibility of implementing an improved Unix subsystem under NT -- whose claim of POSIX support as proven to be almost completely useless in the real world. Please feel free to get a copy of the Usenix proceeding if you want the gory details on that. It might be construed as a "Unix emulation" for Windows NT -- and it might even be applicable to Win '95 -- with enough work.

If you're willing to run your Windows programs under Unix there's hope. WABI currently supports a variety of 16-bit Windows programs under Linux (and a different version support them under Solaris). Also work is continuing on the WINE project -- and some people have reported some success in running Windows 3.1 in "standard mode" under dosemu (the Linux PC BIOS emulator). The next version of WABI is expect to support (at least some) 32-bit Windows programs.

My suggestion -- if this is of any real importance to you -- is that you either boot between Unix and DOS/Windows or that you configure a separate machine as a Unix host -- put it in a corner -- and using your Win '95 system as a terminal, telnet/k95 client and/or an X Windows "terminal" (display server).

By running any combination of these programs on your Windows box and connecting to your Linux/Unix system you won't have to settle for "emulation." You'll have the real thing -- from both sides. In fact one Linux system can serve as the "Unix emulation adapter" for about as many DOS and Windows systems as you care to connect to it.

(I have one system at a client site that has about 32Mb of RAM and 3Gb -- it's shared by about 300 shell and POP mail users. Granted only about 20 or 30 of them are ever shelled at any given time but it's no where near it's capacity).

I hope this gives you some idea why your question is a little non-sensical. Operating systems can be viewed from three sides -- user interface (UI), applications programming interface (API), and supported hardware (architecture).

Emulating one OS under another might refer to emulating the UI, or the API or both. Usually emulation of the hardware support is not feasible (i.e. we can't run DOS device drivers to provide Linux hardware support).

If one implemented the full set of Unix system calls in a Win '95 program that provided a set of "drivers" to translate a set of Unix like hardware abstractions into calls to the Windows device drivers -- and one ported a reasonable selection of software to run under this "WinUnix kernel" -- one could call that "Unix emulation."

However it would be more accurate to say that you had implemented a new version of Unix on a virtual machine which you hosted under Windows.

Oddly enough this is quite similar to what the Lucent (Formerly Bell Labs?) Inferno package does. Inferno seems to have evolved out of the Plan 9 research project -- which apparently was Dennis Ritchie's pet project for a number of years. I really don't know enough about the background of this package -- but I have a CD (distributed to attendees of the aforementioned Usenix conference) which has demo copies of Inferno for several "virtual machine" platforms (including Windows and Linux).

Inferno is also available as a "native" OS for a couple of platforms (where it includes it's own device drivers and is compiled as direct machine code for a machine's platform).

One reason I mention Inferno is that I've heard that it offers features and semantics that are very similar to those that are common in Unix. I've heard it described as a logical outgrowth of Unix that eschews some of the accumulation of idiosyncrasies that has plagued Unix.

One of these days I'll have to learn more about that.

 I have Windows95 and Linux on my system, on separate partitions, I can't afford special equipment for having them on separate machines. I really like Linux, and Xwindows, mostly because of their great security features. (I could let anybody use my computer without worrying about them getting into my personal files). Windows95's pseudo-multi-user system sucks really bad. So, mainly, this is why I like Linux. I also like the way it looks. Anyways, I would just run Linux but my problem is that Xwindows doesn't have advanced support for my video card, so the best I can get is 640x480x16colors and I just can't deal with that. Maybe I'm spoiled. The guy I wrote on the Xwin development team told me that they were working on better support for my card, though. (Aliance Pro-Motion). But, meanwhile, I can't deal with that LOW resolution. The big top-it-off problem is that I don't know of anyway to have Linux running _while_ Win95 is running, if there even is a way. If there was, it would be great, but as it is I have to constantly reboot and I don't' like it. So this is how I came to the point of asking for an emulator. Maybe that's not what I need after all. So what can I do? Or does the means for what I want not exist yet?

-- Steven.

 If you prefer the existing Linux/X applications and user interface -- and the crux of the problem is support for your video hardware -- focus on that. It's a simpler problem -- and probably offers a simpler solution.

There are basically three ways to deal with a lack of XFree86 support for your video card:

Be sure to contact the manufacturer to ask for a driver. Point out that they may be able to make small changes to an existing XFree86 driver. You can even offer to help them find a volunteer (where you post to the comp.os.linux.dev...sys. newsgroup and one or two of the developer's mailing lists -- and offer some support). Just offering to do some of the "legwork" maybe be a significant contribution.

This is an opportunity to be a "Linux-Activist."

-- Jim


 Using X with 2 Monitors and 2 Video Cards

From:Charles A. Barrassocharles@blitz.com
I was wondering how I would go about using X with 2 monitors and 2 video cards? I am currently using XFree86 window manager. I know you can do this with the MetroX window manager but that costs money :(.

 I'm sure I gave a lengthy answer to this fairly recently. Maybe it will appear in this month's issue (or maybe I answered it on a newsgroup somewhere).

In any event, the short answer is: You don't.

The PC architecture doesn't support using multiple VGA/EGA cards concurrently. I don't think XFree86 can work with CGA cards (and who'd want to!). You might be able to get a Hercules compatible Monochrome Graphics Adapter (MGA) to work concurrently with a VGA card (since they don't use overlapping address spaces). I don't know if this is the method that Metro-X supports.

There are specialized video adapters (typically very expensive -- formerly in the $3000+ range) that can co-exist with VGA cards. Two sets of initials that I vaguely recall are TIGA and DGIS. Considering that you seem unwilling to pay $100 (tops) for a copy of Metro-X I think these -- even if you can still find any of them -- are way out of your price league.

Another, reasonable, alternative is to connect a whole Xterminal or another whole system and run X on that. You can then remotely display your windows on that about as easily as you could set them to display on the local server.

(I know -- you might not get some cool window manager to let you drag windows from one display server to another -- a trick which I've seen done with Macs under MacOS and with Suns and SGI's. But I've never set one of those up anyway -- so I couldn't begin to help you there).

You might double check with the Metro-X people to see what specific hardware is required/supported by their multiple display feature and then check with the XFree86.org to see if anyone has any drivers for one of those supported configurations.

As a snide note I find your phrase "that costs money :(" to be mildly offensive. First the cost of an additional monitor has got to be at least 3 times the price of a copy of Metro-X. Second "free" software is not about "not having to pay money."

I'm not trying to sell you a copy of Metro-X here. I don't use it -- and I specifically choose videos cards that are supported by XFree86 when I buy my equipments.

Likewise I don't recommend Linux to my customers because it "doesn't cost them anything." In fact it does cost them the time it takes me to install, configure and maintain it -- which goes for about $95/hr currently. I recommend Linux because it is a better tool for many jobs -- and because the benefits of it's being "free" -- in the GNU sense of the term -- are an assurance that no one can "have them over a barrel" for upgrades or additional "licensing" fees. They are always *free* to deploy Linux on as many systems as they want, have as many users and/or processes as they want on any system, make their own modifications to the vast majority of tools on the system or hire any consultants they want to make the customizations they need.

I'm sorry to be so "political" here -- but complaining that Metro-X "costs money" and asking me for a way to get around that just cost me about $50 worth of my time. Heck -- I'll go double or nothing -- send my your postal address and I'll buy you a copy of RedHat 4.1. That comes with a license for one installation of Metro-X and only costs about $50. I'll even cover the shipping and handling.

(Please call them first to make sure that it really does support your intended hardware configuration).

 Thanks for the time,

 No problem. (I did say "mildly" didn't I).

-- Jim


 Virtual Hosting

From: Wietse Venema wietse@szv.sin.tue.nl
tcpd has supported virtual hosting for more than two years. Below is a fragment from the hosts_access(5) manual page.

Wietse

 Thanks for the quick response. I'll have to play with that. I suppose a custom "virtual finderd" would be a good experiment.

Do you know where there are any working examples of this and the twist option posted to the 'net? I fight with some of these and don't seem to get the right results.

What I'd like is an example that drops someone into a chroot'd jail as "nobody" or "guest" and running a copy of lynx if they are from one address -- but lets them log in a a normal user if they are from an internal address. (We'll assume a good anti-spoofing packet-filter on the router(s)).

Did you ever add the chrootuid functionality to tcpd?

How would you feel about an option to combine the hosts.allow and hosts.deny into just tcpd.conf?

(I know I can already put all the ALLOW and DENY directives in a single file -- and I'm not much of a programmer but even *I* could patch my own copy to change the filename -- I'm just talking about the general case).

SERVER ENDPOINT PATTERNS
In order to distinguish clients by the network address that they connect to, use patterns of the form:

 	  process_name@host_pattern : client_list ...
 

(which is what he said one to me when I suggested merging his chrootuid code with tcpd).

I've blind copied Wietse on this (Hi!). I doubt he has time to read the Linux Gazette. -- Jim


 Response from Weitse Venema

From:Wietse Venema, wietse@wzv.win.tue.nl
Do you know where there are any working examples of this and the twist option posted to the 'net? I fight with some of these and don't seem to get the right results.

 Use "twist" to run a service that depends on destination address: fingerd@host1: ALL: twist /some/where/fingerd-for-host1

 What I'd like is an example that drops someone into a chroot'd jail as "nobody" or "guest" and running a copy of lynx if they are from one address -- but lets them log in a a normal user if they are from an internal address. (We'll assume a good anti-spoofing packet-filter on the router(s)).

 I have a little program called chrootuid that you could use.

 Did you ever add the chrootuid functionality to tcpd?

 I would do that if there was a performance problem. Two small programs really is more secure than a bigger one.

 How would you feel about an option to combine the hosts.allow and hosts.deny into just tcpd.conf?

 What about compatibility with 1 million installations world-wide?

 (I know I can already put all the ALLOW and DENY directives in a single file -- and I'm not much of a programmer but even *I* could patch my own copy to change the filename -- I'm just talking about the general case).

 This is because the language evolved over time. Compatibility can become a pain in the rear.

-- Weitse


 Automatic File Transfer

From:Kenneth Ng, kenng@kpmg.com
In Linux Gazette, there is a mention of how to transfer files automatically using ftp. Here is how:

 
 #!/bin/csh
 ftp -n remote.site << !
 user joe blow
 binary
 put newfile
 quit
 !

And that's it. Granted ssh is better. But sometimes you have to go somewhere that only supports ftp.

 That's one of several ways. Another is to use ncftp -- which supports things like a "redial" option to keep trying a busy server until it gets through. ncftp also has a more advanced macro facility than the standard .netrc (FTP).

You can also use various Perl and Python libraries (or classes) to open ftp sessions and control them. You could use 'expect' to spawn and control the ftp program.

All of these methods are more flexible and much more robust than using the standard ftp client with redirection ("here" document or otherwise).

-- Jim


 Installing wu-ftpd on a Linux Box

From: Stephen P. Smith, ischis@evergreen.com
I just installed wu-ftpd on my linux box. I have version 2.4. I can login under one of my accounts on the system and everything works just fine.

If I try an anonymous ftp session, the email password is rejected. what are the possible sources of failure? where should i be going for more help? :-)

 Do you have a user named 'ftp' in the /etc/passwd file?

 done.

 wu-ftpd takes that as a hint to allow *anonymous* FTP. If you do have one -- or need to create one -- be sure that the password for it is "starred out." wu-ftpd will not authenticate against the system password that's defined for a a user named "ftp."

 done.

 You should also set the shell to something like /bin/false or /bin/sync (make sure that /bin/false is really a binary and *not* a shell script -- there are security problems -- involve IFS (inter-field separators) if you use a shell script in the /etc/passwd shell field).

 done.

 There is an FAQ for anonymous FTP (that's not Linux specific). There is also a How-To for FTP -- that is more Linux oriented. If you search Yahoo! on "wu-ftp" you'll find the web pages at Washington University (where it was created) and at academ.com -- a consulting service that's taken over development of the current beta's.

 Guess I will just have to do it the hard way. Will tell you what I find (just in case you want to know.

 What does your /etc/ftpaccess file look like?

Did you compile a different path for the ftpaccess file (like /usr/local/etc/)?

What authentication libraries are you using (old fashioned DES hashes in the /etc/passwd, shadow, shadow with MD5 hashes -- like FreeBSD's default, or the new PAM stuff)?

Is this invoked through inetd.conf with tcpd (the TCP Wrappers)? If so, what does your /var/log/messages say after a login failure? (Hint: use the command: 'tail -f /var/log/messages > /dev/tty7 &' to leave a continuously updated copy of the messages file sitting on one of your -- normally unused -- virtual consoles).

One trick I've used to debug inetd launched programs (like ftpd and telnetd) is to wedge a copy of strace into the loop. Change the reference to wu.ftpd to trace.ftpd -- create a shell or perl script named trace.ftpd that consists of something like:

		#! /bin/sh
		exec strace -o /tmp/ftpd.strace /usr/sbin/wu.ftpd

... and then inspect the strace file for clues about what failed. (This is handy for finding out that the program couldn't find a particular library or configuration file -- or some weird permissions problems, etc).

-- Jim


 Trying to Boot a Laptop

From: Yash Khemani, khemani@plexstar.com
I've got a Toshiba satellite pro 415cs notebook computer on which I've installed RedHat 4.1. RedHat 4.1 was installed on a jaz disk connected via an Adaptec slimscsi pcmcia adapter. the installation went successfully, i believe, up until the lilo boot disk creation. i specified that i wanted lilo on a floppy - so that nothing would be written to the internal ide drive and also so that i could take the installation and run it at another such laptop. after rebooting, i tried booting from the lilo floppy that was created, but i get nothing but continuous streams of 0 1 0 1 0 1...

i am guessing that the lilo floppy does not have on it the pcmcia drivers. what is the solution at this point to run RedHat on this machine?

 You've got the right idea. The 1010101010101... from LILO is a dead giveaway that your kernel is located on some device that cannot be accessed via the BIOS.

There are a couple of ways to solve the problem. I'd suggest LOADLIN.EXE.

LOADLIN.EXE is a DOS program (which you might have guessed by the name) -- which can load a Linux kernel (stored as a DOS file) and pass it parameters (like LILO does). Basically LOADLIN loads a kernel (Linux or FreeBSD -- possibly others) which then "kicks" DOS "out from under it." In other words -- it's a one-way trip. The only way back to DOS is to reboot (or run dosemu ;-) .

LOADLIN is VCPI compatible -- meaning that it can run from a DOS command prompt even when you have a memory manager (like QEMM) loaded. You can also set LOADLIN as your "shell" in the CONFIG.SYS. That's particularly handy if you're using any of the later versions of DOS that support a multi-boot CONFIG.SYS (or you're using the MBOOT.SYS driver that provided multi-boot features in older versions of DOS).

To use LOADLIN you may have to create a REALBIOS.INT file (a map of the interrupt vectors that are set by your hardware -- before any drivers are loaded). To do this you use a program (REALBIOS.EXE) to create a special boot floppy, then you boot off that floppy (which records the interrupt vector table in a file) -- reboot back off your DOS system and run the second stage of the REALBIOS.EXE.

This little song and dance may be necessary for each hardware configuration. (However you can save and copy each of the REALBIOS.INT files if you have a couple of configurations that you switch between -- say, with a docking station and without).

With LOADLIN you could create a DOS bootable floppy, with a copy of LOADLIN.EXE and a kernel (and the REALBIOS.INT -- if it exists). All of that will just barely fit on a 1.44M floppy.

Another way to do this would be to create a normal DOS directory on your laptop's IDE drive -- let's call it C:\LINUX (just to be creative).

Then you'd put your LOADLIN.EXE and as many different kernels as you liked in that directory -- and maybe a batch file (maybe it could be called LINUX.BAT) to call LOADLIN with your preferred parameters. Here's a typical LINUX.BAT:

		@ECHO OFF
		ECHO "About to load Linux -- this is a one-way trip!"
		PAUSE
		LOADLIN lnx2029.krn root=/dev/sda1 ro

(where LNX2029.KRN might be a copy of the Linux-2.0.29 kernel -- with a suitable DOS name).

I'd also recommend another batch file (SINGLE.BAT) that loads Linux in single-user mode (for fixing things when they are broken). That would replace the LOADLIN line in the LINUX.BAT with a line like:

	LOADLIN lnx2029.krn single root=/dev/sda ro

Another way to do all of this is to simply dd a properly configured kernel to a floppy. You use the rdev command to patch the root device flags in the kernel and dump it to a floppy. This works because a Linux kernel is designed to work as a boot image. The only problem with this approach is that it doesn't allow you to pass any parameters to your kernel (to force single user mode, to select an alternate root device/filesystem, or whatever).

For other people who have a DOS system and want to try Linux -- but don't want to "commit" to it with a "whole" hard drive -- I recommend DOSLINUX.

A while back there was a small distribution called MiniLinux (and another called XDenu) which could install entirely within a normal DOS partition -- using the UMSDOS filesystem. Unfortunately MiniLinux has not been maintained -- so it's stuck with a 1.2 kernel and libraries.

There were several iterations of a distribution called DILINUX (DI= "Drop In") -- which appears to have eventually evolved into DOSLINUX. The most recent DOSLINUX seems was uploaded to the Incoming at Sunsite within the last two weeks -- it includes a 2.0.29 kernel.

The point MiniLinux and DOSLINUX is to allow one to install a copy of Linux on a DOS system as though it were a DOS program. DOSLINUX comes as about 10Mb of compressed files -- and installs in about 20-30Mb of DOS file space. It includes Lynx, Minicom, and a suite of other utilities and applications.

All in all this is a quick and painless way to try Linux. So, if you have a DOS using friend who's sitting on the fence, give them a copy of DOSLINUX and show them how easy it is.

thanks!
yash

 You're welcome. (Oh -- you might want to get those shift keys fixed -- e.e. cummings might sue for "look and feel")

-- Jim


 zmodem Reply

From: Donald Harter Jr., harter@mufn.org
I saw your post about zmodem in the Linux Gazette. I can't answer the readers question, but maybe this will help. My access to the internet is a dial in account(no slip, no ppp). I access the freenets. I can't use zmodem to transfer files from the internet and freeenets to my pc. I can use kermit though. It seems that there are some control characters involved in zmodem that prevent it from being used with my type of connection. I saw a some information about this on one of the freenets. They suggested using telix and another related protocol. I tried that, but it didn't work either. Kermit is set up to run slow. You can get kermit to go faster in certain circumstances by executing its "FAST" macro. I can download data at about 700cps with the "FAST" macro of kermit. Unfortunately kermit hangs up the line for me so I have to "kill -9 kermitpid" to exit it. That problem can probably be eliminated with the right compile options. In certain cases I can't use the "FAST" macro when uploading.

 I'm familiar with C-Kermit. In fact I may have an article in the June issue of SysAdmin magazine on that very topic.

The main points of my article are that C-Kermit is a telnet and rlogin client as well as a serial communications program -- and that it is a scripting language that's available on just about every platform around.

I know about Telix' support for the kermit transfer protocol. It sucks. On my main system I get about 1900 cps for ZMODEM transfers -- about 2200 for kermit FAST (between a copy of C-Kermit 5A(188) and 6.0.192 and about 70 cps (yes -- seventy!) between a copy of C-Kermit and Telix' internal kermit.

Other than that I've always liked Telix. Minicom has nice ncurses and color -- but is not nearly as featureful or stable as either Telix for DOS or any version of C-Kermit.

Your line hangups probably have to do with your settings for carrier-watch. Try SET CARRIER-WATCH OFF or ON and see if it still "hangs" your line. I suspect that its actually just doing read() or write() calls in "blocking" mode. You might have to SET FLOW-CONTROL NONE, too. There are lots of C-Kermit settings. If you continue to have trouble -- post a message to the comp.protocols.kermit.misc newsgroup (preferred) or send a message to kermit-support@columbia.edu.

When I first started using C-Kermit (all of about two months ago) my initial questions where answered by Frank da Cruz himself (he's the creator of the Kermit protocol and the technical lead of the Kermit project at Columbia University). (That was before he knew that I'm a "journalist" -- O.K. quit laughing!). Frank is also quite active in the newsgroup. I think he provides about 70 or 80 per cent of the technical support for the project.

Oh yeah! If you're using C-Kermit you should get the _Using_C-Kermit_ book. It was written by Frank da Cruz and Christine Gianone -- and is the principal source of funding for the Kermit project. From what I gather a copy of the book is your license to use the software.

-- Jim


 StartX

From: Robert Rambo, robert.rambo@yale.edu
Hi, I was wondering if you can help me out. When I use the command 'startx -- -bpp16' to change the color depth, the windows in X are much bigger than the monitor display. So, nothing fits properly and everything has become larger. But the color depth has changed correctly. I use FVWM as my display manager. Is there some way to fix this problem?

 If using the 16 bit plan (16bpp) mode to increase your color depth -- that suggests that selecting this mode is causing the server to use a lower resolution.

That is completely reasonable. If you have a 2Mb video card and you run it in 1024x768x256 or 1024x768x16 -- then you try to run it with twice as many colors -- the video RAM has to come from somewhere. So it bumps you down to 800x600 or 640x480. These are just examples. I don't deal with graphics much so I'd have to play with a calculator to figure the actual maximum modes that various amounts of video RAM could support.

There are alot of settings in the XConfig file. You may be able to tweak them to do much more with your existing video card. As I've said before -- XConfig files are still magic to me. They shifted from blackest night to a sort of charcoal gray -- but I can't do them justice in a little article hear. Pretty much I'd have to lay hands on it -- and mess with it for a couple of hours (and I'm definitely not the best one for that job).

If you haven't upgraded to a newer XFree86 (3.2?) then this would be a good time to try that. The newer one is much easier to configure and supports a better selection of hardware -- to a better degree than the older versions. I haven't heard of any serious bugs or problems with the upgrades.

You may also want to consider one of the commercial servers. Definitely check with them in advance to be absolutely certain that your hardware is supported before you buy. Ask around in the newsgroups for opinions about your combination of hardware. It may be that the XFree86 supports you particular card better than Metro-X or whatever.

You may also want to look at beefing up your video hardware. As I've said -- I don't know the exact figures -- but I'd say that you probably need a 4Mb card for anything like 16bpp at 1024x768. You should be able to look up the supported modes in your card's documentation or on the manufacturer's web site or BBS.

 Also, is there some way to change the color depth setting to start X with a depth of 16 every time. I do not use the XDM manager to initiate an X session.

 Yes -- it's somewhere in that XConfig file. I don't remember the exact line. I really wish a bona fide GUI X wiz would sign up for some of this "Answer Guy" service.

It doesn't matter whether you use xdm or not. If you put the desired mode in the XConfig file. However -- since you don't you could just write your own wrapper script, alias or shell function to call 'startx' with the -- -bpp16 options. You could even re-write 'startx' (it is just a shell script). That may seem like cheating -- but it may be easier than fighting your way through the XConfig file (do you get the impression that I just don't like that thing -- it is better than a WIN.INI or a SYSTEM.INI -- but not be much).

-- Jim Dennis,


 IMAP and Linux

From: Brian Moore, bem@thorin.cmc.net
Being a big IMAP fan (and glad to see it finally getting recognition: Netscrape 4 and IE4 will both support it), your answer left a lot out.

 Will these support the real features (storing and organizing folders on the server side)?

I heard that NS "Communicator" (the next release Netscape's Navigator series is apparently going to come with a name change) supports IMAP -- but it's possible to implement this support as just a variant of POP -- get all the message and immediately expunge all of them from the server.

It seems that this is how Eric S. Raymond's 'fetchmail' treating IMAP mail boxes -- as of about 2.5 (it seems that he's up to 3.x now)

 The easiest IMAP server to install is certainly the University of Washington server. It works, handles nearly every mailbox format around and is very stable. It's also written by the guy in charge of the IMAP spec itself, Mark Crispin. As for clients, there is always Pine, which knows how to do IMAP quite well. This is part of most Linux distributions as well.

 I did mention pine. However it's not my personal favorite. Do you know of a way to integrate IMAP with emacs mh-e/Gnus (or any mh compatible folder management system)?

 For GUI clients there is ML, which is a nice client, but requires Motif and can be slow as sin over a modem when you have a large mailbox. That's available in source at http://www-CAMIS.Stanford.EDU/projects/imap/ml

 I thought I mentioned that one as well -- but it's a blur to me.

I personally avoid GUI's like the plague. I'm typing this from my laptop, through a null modem link to my machine in the other room.

I run emacs under screen -- so I can use mh-e for most mail, Gnus for netnews and for some of my mailing lists (it can show news folders as though they were threaded news groups). screen allows me to detach my session from my terminal so I can log out, take off with the laptop, and re-attach to the same session later (via modem or when I get back home).

 Asking on the mailing list about static linked linux versions will get you one (and enough nagging may get them to actually put one of the current version up). ML is really the nicest mail client I have ever used. As for pop daemons with UIDL support, go for qpopper from qualcomm. ftp.qualcomm.com somewhere. Has UIDL and works fine.

 O.K. I'll at that to my list.

Does that one also support APOP's authentication mechanism (which I gather prevents disclosing your password over an untrusted network by using something like an MD5 hash of your password concatenated with a date and time string -- or something like that)?

Does qpopper allow you to maintain a POP user account file that's separate from your /etc/passwd file?

Do you know of an IMAP server that supports these sorts of features (secure authentication and separate user base)?

(I know this probably seems like a switch -- the so called "Answer Guy" asking all the questions -- but hey -- I've got to get my answers from *somewhere*)

-- Jim


 More IMAP

From: Graham Todd, gtodd@yorku.ca
PINE - one of the easiest to use mail clients around - does IMAP just fine. You can read mail from multiple servers and mailboxes and save it locally or in remote folders on the servers - which is what IMAP is all about: Internet Message Access Protocol = flexible and configurable *access* to mail servers without having to pop and fetch messages all over the place (but still having the ability save locally if you want).

The Netscape's Communicator 4.0b2 thing does too but there are so many other ugly bits that I'm not gonna bite.

Jeez pretty soon with this fancy new IMAP stuff you'll be able to do almost as much as you can right now with emacs and ange-ftp (which I use regularly to access remote mail folders and boxes with out having to login - it's all set up in .netrc). Of course the answer is almost always "emacs" .... BTW Linux makes a GREAT program loader for emacs ;-)

 Seems kind of kludgey. Besides -- does that give you the main feature that's driving the creation of the IMAP/ACAP standards? Does it let you store your mail on a server and replicate that to a couple of different machines (say your desktop and your laptop) so you can read and respond to mail "offline" and from *either* system?

 Yeah, more or less. If you save the mail on your server to local folders or make a local folder be /me@other.mail.host:/usr/spool/me. Using ange-ftp to me seem exactly like IMAP in Pine or Netscape communicator 4.0b2. Though apparently IMAP will update folders across hosts so that only that mail deleted locally (while offline) will get deleted on the remote host on the next login etc. etc. I don't know much about IMAP's technical standard either but find I get equal mail management capability from ange-ftp/VM. (equal to Pine and Communicator so far).

WARNING: In a week or so when I get time I'm gonna ask you a tricky question about emacs and xemacs.

 Feel free. Of course I do know a bit more about emacs than I do about X -- so you may not like my answer much.

 Heh heh OK... (comp.emacs.xemacs is silent on this). Emacs running as emacs -nw in a tty (i.e console or an xterm) runs fine and lets me use all the job control commands (suspend/fg etc) but with Xemacs job control won't work unless I'm running as root. That is if I'm running "xemacs" or "xemacs -nw" in an xterm or at the console and do C-z and then once I'm done in the shell I do "fg", xemacs comes back but the keyboard seems to be bound to the tty/console settings (Ctrl-z Ctrl-s Ctrl-q etc all respond as if I were in a dumb terminal). The only recourse is to Ctrl-z back out and kill xemacs. This does not happen if I run xemacs setuid root (impractical/scary) or as root (scary). Something somewhere that requires root permission or suid to reset the tty characteristics doesn't have it in xemacs - but does in emacs... My only response so far has been that "you'll have to rebuild/recompile your xemacs" - but surely this wrong. Does anything more obvious occur to you? I feel it must be something simple in my set up (RH Linux 2.0.29). Of course if I could get this fixed I'd start feeling more comfortable not having GNU-Emacs on my machine ;-) which may not be an outcome you would favour.

 I once had a problem similar to this one -- suspending minicom would suspend the task and lock me out of it. It seemed that the ownership of the tty was being changed.

So -- the question comes up -- what permissions are set on your /dev/tty* nodes. It seems that most Linux distributions are set up to have the login process chown the these to to the current user (and something seems to restore them during or after logout).

I don't know enough about the internals of this process. I did do a couple of experiments with the 'script' command and 'strace' using commands like:

	strace -o /tmp/strace.script /usr/bin/script

... and eyeballing the trace file. This shows how the script command (which uses a psuedo tty -- or pty) searches for an available device.

I then did a simple 'chown 600 /dev/ttyp*' as root (this leaves a bunch of /dev/ttyq* and /dev/ttyr nodes available). The 'script' command then reports that the system is "out of pty's."

Obviously the script command on my system don't do a very thorough search for pty's. It effectively only looks at the first page of them.

The next test I ran was to add a new line to my /etc/services file (which I called stracetel) -- and a new line to me /etc/inetd.conf that referred to it.

This line looks like this:

stracetel  stream  tcp     nowait  root    /usr/sbin/tcpd  \
	/usr/bin/strace -o /root/tmp/t.strace /usr/sbin/in.telnetd

... all on one line, of course.

Then I connected to that with the command:

		telnet localhost stracetel

This gives me an strace of how telnetd handles the allocation and preparation of a pty. Here, as I suspected, I saw chown() and chmod() calls after telnetd did it's search through to list of pty's to find the first one.

Basically both programs (and probably most other pty clients) attempt to open each pty until one returns a valid file descriptor or handle. (It might be nice if there was a system call or a daemon that would allow programs to just say "give me a pty" -- rather than forcing a flurry of failed open attempts -- but that's probably too much to ask for.

There result of these experiments suggests that there are many ways of handling pty's -- and some of them may have to be set as compile time options for your system.

It may be that you just need to make all the pty's mode 666 (which they are on my system) or you might chgrp them to a group like tty or pty, make them mode 660 and make all the pty using programs on your system SGID.

I've noticed that all of my pty's are 666 root.root (my tty's root.tty and ttyS*'s are root.uucp all are mode 660 and all programs that need to open them are either root run (getty) or SGID as appropriate).

Some of the policies for ownership and permissions are set my your distribution. Red Hat 2.x is *old* and some of these policies may have changed in the 3.03 and 4.1 releases. Mine is a 3.03 with *lots* of patches, updated RPM's and manually installed tarballs.

Frankly I don't know *all* of the security implications of having your /dev/tty* set to mode 666. Obviously normal attempt to open any of these while they're in use return errors (due to the kernel locking mechanisms). Other attempts to access them (through shell redirection, for example) seem to block on I/O. I suspect that a program that improperly opened it's tty (failed to set the "exclusive" flag on the open call) would be vulnerable.

Since you're an emacs fan -- maybe you can tell me -- is there an mh-e/Gnus IMAP client?

 No Kyle Jones (VM maintainer/author) has said maybe IMAP4 for VM version 7. I think his idea is to make VM do it what it does well and rely on outside packages to get the mail to it ...

 Also -- isn't there a new release of ange-ftp -- I forget the name -- but I'm sure it changed named too.

Yes it's called EFS - it preserves all the functionality but is more tightly meshed with dired - supposedly it will be easier to use EFS in other elisp packages (I don't know why or how this would be so).

 I'll have to play with those a bit. Can VM handle mh style folders?

-- Jim


 UUCP Questions

From: David J. Weis, weisd3458@uni.edu
I had a couple minor questions on UUCP. If you have a few minutes, I'd appreciate the help immensely. I'll tell you a little bit about what we're doing.

 Glancing ahead -- I'd guess that this would take quite a bit more than a few minutes.

 My company has a domain name registered (plconline.com) and two offices. One is the branch office which is located in the city with the ISP. The head office is kind of in the sticks in western Iowa. I've been commissioned to find out how difficult it would be to set up the uucp so the machine in Des Moines (the big city ;-) would grab all the domain mail and then possibly make a subdomain like logan.plconline.com for all the people in the main office to use email.

This would all be running on RedHat 4 over dialup uucp. The system in Des Moines uses uucp over tcp because it has to share the line with masquerading, etc.

Thanks for any advice or pointers you have.


Unfortunately I this question is too broad to answer via e-mail. O'Reilly has a whole book on uucp and there are several HOW-TO's for Taylor UUCP and sendmail under Linux.

My uucp mostly works but I haven't configured it to run over TCP yet. I also haven't configured my system to route to any uucp hosts within my domain.

You can address mail to a uucp host through a DNS by using the '%' operator. For example I can get my main mail system (antares.starshine.org) to forward mail to my laptop using an address like:

	jim%mercury@starshine.org

... the DNS MX record for starshine.org routes mail to my ISP. My ISP then spools it up in UUCP until my machine (antares) picks it up. The name antares is basically transparent to most of this process.

When antares gets the mail it converts the percent sign into a "bang" (!) and spools it for mercury (which happens to be my laptop).

Obviously requiring all of your customers and correspondents to use percent signs in their addressing to your users is not going to work very well. It will probably result in alot of lost mail, alot of complaints and a constant barrage of support calls.

There are two ways to make your internal mail routing transparent to the rest of world. You can create a master aliases list on your mail hub (the easy way) or you can create DNS and MX entries for each of the hosts.

If you'd like more help we could arrange to talk on the phone. UUCP is difficult to set up for the first time (nearly vertical initial learning curve). Once it's set up it seems to be pretty low maintenance. However my meta-carpus can't handle explaining the whole process via e-mail (and I don't understand enough of it well to be brief).

-- Jim


 Using MS-DOS Floppies

From: Barry, remenyi@hotmailcom
Hi, I have a problem that I can't find the solution to:

I run Redhat 4.1 with mtools already installed, with it, I can copy a file to or from a dos disk in A: with mcopy etc.. But if I change the disk & do mdir, it tells gives me the listing of what was in the last disk. The only solution is to wait hours for the cache to expire before I can look at another disk.

The problem occurs no matter how I access the floppy, I also tried using dosemu, and mount, but I have the same problem. I can read and write from the first disk that I put in with no problems, but if I change the disk, the computer acts as if the first disk is still in the drive. It also doesn't matter who I am loged in as eg. root has the same problem. I also upgraded mtools to 3.3 but no change.

Is there some way to disable the disk cache (I assume thats the problem) for the floppy drive?

 You probably have a problem with the "change disk" detection circuitry on your floppy.

There's a pretty good chance that you'd see the same thing under DOS too.

Unfortunately I don't know of an easy way to solve this problem. You could try replacing the floppy ($30 or so) the controller ($20 -- to ???) and/or the cable.

If that's not feasible in your case you could try something like a mount/sync/umount (on a temporary mount point). This might force the system to detect the new floppy. It's very important not to try to write anything to a floppy when the system is confused about which floppy is in there.

DOS systems that I have used -- while they were afflicted with this problem -- sometimes severely trash the directories on a diskette in that situation.

It probably doesn't even matter if the mount, sync, umount that I describe fails -- just so the system is forced to "rethink" what's there. I'd consider writing a short script to do this -- put a temporary mount point that's "user" accessible to avoid having to be root to do this (and especially to avoid having to create any SUID root perl scripts or write a C wrapper or any of that jazz).

Here's a sample line for your /etc/fstab:

# /etc/fstab
/dev/fd0                  /mnt/tmp       umsdos  noauto,rw,user 0 0

(according to my man pages the "user" options should imply the nosuid, nodev etc. options -- which prevent certain other security problems).

So your chdisk script might look somethi