Subject: Linux-Development Digest #815
From: Digestifier <Linux-Development-Request@senator-bedfellow.MIT.EDU>
To: Linux-Development@senator-bedfellow.MIT.EDU
Reply-To: Linux-Development@senator-bedfellow.MIT.EDU
Date:     Sat, 11 Jun 94 06:13:04 EDT

Linux-Development Digest #815, Volume #1         Sat, 11 Jun 94 06:13:04 EDT

Contents:
  Re: WINE Status (Dave Gardner)
  Re: Why are there no streamss in Linux ? (Brandon S. Allbery)
  Real-time kernel (Bouwmeester)
  Re: Making a Boot disk for Gateway 2000  (was LI040404) (Jim Michael)
  Re: Filesystem semantics protecting meta data ... and users data (Stefan Esser)
  signal() with BSD semantics (Ruediger Helsch)
  TeX bug? (Andreas Kabel)
  Re: Filesystem semantics protecting meta data ... and users data (Burkhard Neidecker-Lutz)
  Re: DIP: Aborts with Errors. Help! (Matthias Urlichs)
  Re: SLIP panic still with 1.1.19! (was Re: Bugs in 1.18) (Janne Sinkkonen)
  Re: GCC __asm__ bug with %[abcd]h registers (Bruno Haible)
  Re: Linux game development (Was Re: Why [DOS, W (Andy Beal)
  Re: USERFS installation. Need help! (Brian Stoler)

----------------------------------------------------------------------------

From: dgardner@netcom.com (Dave Gardner)
Subject: Re: WINE Status
Date: Thu, 9 Jun 1994 18:26:27 GMT

John McCartin (jmccartin@melpar.esys.com) wrote:

: What is the current development status of WINE?  When is it supposed 
: to be out?

Please see the Wine FAQ posted in:

        comp.os.linux.announce
        comp.os.386bsd.announce
        comp.answers
        news.answers
        comp.emulators.announce

or ftp and grab:

        tsx-11.mit.edu:/pub/linux/ALPHA/Wine/Wine.FAQ
        ftp.netcom.com:/pub/dgardner/Wine.FAQ


------------------------------

From: bsa@kf8nh.wariat.org (Brandon S. Allbery)
Subject: Re: Why are there no streamss in Linux ?
Date: Fri, 10 Jun 1994 15:49:52 GMT

In article <2t9heh$jam@news.cs.tu-berlin.de>, leitner@cs.tu-berlin.de (Felix v.Leitner) says:
+---------------
| I have used my modem to connect to my university, but now I upgraded to ISDN.
| There are some unofficial patches for 1.0.6 of Linux out there, but I did
| not get them compiled. When trying to understand what the changes were, I
| saw that they took the BSD networking code and adapted Linux to use it.
| When I asked around, someone explained to me that Linux has no stream support
| and that the SLIP was a big hack ;)
+------------->8

Oh, boy, are you confused.  On the other hand, it's a rather confusing
subject, at least as it appears to have been presented to you.

Firstly, STREAMS is from System V, *not* BSD.

Secondly:  the Linux ISDN driver consists of the following components:

        * BSD networking (the author didn't trust Net2D, probably with good
          reason... :-)
        * a STREAMS implementation, which is orthogonal to the above
        * an ISDN STREAMS driver

These patches are against 1.0; 1.1 has changed considerably, and the patches
most likely won't apply and won't be all that easy to change.  Use the 1.0.9
kernel instead.

++Brandon
-- 
Brandon S. Allbery         kf8nh@kf8nh.ampr.org          bsa@kf8nh.wariat.org
The FUDs at Microsoft are shouting "Kill The Wabi!"

------------------------------

From: bouwmees@dutian.twi.tudelft.nl (Bouwmeester)
Subject: Real-time kernel
Date: Fri, 10 Jun 1994 07:16:44 GMT

Hi, 

As most of you probably know, the pthreads library has been ported to Linux
and is running quite well. However, not all Posix features have been implemented
yet, such as timed conditional waits. A timed conditional wait requires full 
kernel support so you might as well incorporate the library as a whole into 
the kernel.

What I would like to know is:
1) Is there anybody out there who has written documentation about the Linux
   kernel, or I am stuck with the source code (or general Unix books)?

2) Has anybody experience incorporating libraries into the kernel and, if so,
   are you willing to share this experience?

I'm asking this because quite some stuff must be thread-safe (stdio, networking,
memory allocations, etc). Any help would be appreciated.

Regards,
        Leon

PS. Please response by E-mail, since our site has some trouble with the 
    news server

+----------------------------------------------------------------------------+
|Ir. L. Bouwmeester         Delft University of Technology                   | 
|Phone : +31-(0)15-783588   Dept. of Applied Mathematics and Computer Science|
|Fax   : +31-(0)15-787141   Julianalaan 132, 2628 BL, Delft                  |
|E-mail: L.H.A.Bouwmeester@twi.tudelft.nl                                    | 
+----------------------------------------------------------------------------+
|" Monday is a day designed to add depression to an otherwise happy week "   |
|  -- Garfield                                                               |
+----------------------------------------------------------------------------+



------------------------------

Crossposted-To: comp.os.linux.admin
From: genepool@netcom.com (Jim Michael)
Subject: Re: Making a Boot disk for Gateway 2000  (was LI040404)
Date: Sat, 11 Jun 1994 02:41:58 GMT

Lee J. Silverman (ljs@cs.brown.edu) wrote:


: 1)Buy an HD disk

: 2)Format it with the command:
: %>fdformat /dev/fd0H1440   (/dev/fd0H1200 for HD 5.25's, I think)

: 3)Repartition it with fdisk.  type:
: %>fdisk /dev/fd0
: The machine will tell you that you need to give it a disk geometry.
: Type "x" to get to the expert menu, then:
: (h)eads=2
: (c)ylinders=80
: (s)sectors=18
: Type "r" to return to the main menu.  If you look at the partition
: table now, it's a mess.  I'm not sure I understand why.  In any case,
: the next move is to delete all four partitions with the "d" option.
: Just type d...1 d...2, etc.
: Now make a new partition with the "n" command: it should be a primary
: partition, starting at track 1 and ending at track 80 (numbers will
: vary for a 5.25 disk).
: Finally, write the partition table to disk with the "w" command.

Interesting, I get to this point and get an error. I am using the 
Yggdrasil '94 release. To get where I am presently I booted with the
installation floppy, logged in as install, did the custom installation,
made a boot floppy, rebooted from the installation floppy with an
additional argument saying where root is, edited lilo.conf, ran lilo.
I wanted to try your method because things seemed a little odd, lots of
files with filename and filename~. Anyway, when I try to write the 
partition table to the disk, I get an error of illegal argument.

Jim

------------------------------

From: se@fileserv1.MI.Uni-Koeln.DE (Stefan Esser)
Crossposted-To: comp.benchmarks,comp.sys.sun.admin,comp.security.unix
Subject: Re: Filesystem semantics protecting meta data ... and users data
Date: 10 Jun 1994 16:29:11 GMT

In article <2t6u8dINNnhf@usenet.pa.dec.com>, neideck@nestvx.enet.dec.com (Burkhard Neidecker-Lutz) writes:
|> NOT
|> >
|> >            file Y is deleted --->
|> 
|> so blocks are being released, causing metadata to be updated *on disk*
|> before any other file gets a chance of reusing that block.
|> 
|> >                                    <--- file X is written, using
|> >                                         blocks formerly from file Y
|> 
|> Which are zero-filled at that time.

They are zero filled on disk ????
In case of a crash it doesn't make much of a difference, whether 
they had been zero filled in RAM ...

|> >                                    <--- file X's inode is written
|> >                               <CRASH>
|> >                                    <--- file X's data was never written
|> >
|> >Now, after recovery and reboot, file X contains some blocks that used
|> >to be in file Y... which still contain the data from file Y.
|> >
|> >Security breach.
|> 
|> Maybe on UNIX V6 15 years ago.

Really ?

Is there an implied fsync on the file being closed, before writing 
updated inode information to disk ? 

(I remember that closing a file under Ultrix 4 could take quite some 
time, so maybe this is really done in Ultrix ? It made our main server 
often unusable for minutes, since one of the most important programs 
wrote some 20 files of 64MB each on exit. We reduced the size of the 
buffer cache, to shorten the time to flush the file to disk, since 
other disk operations on that drive were blocked, from the moment fclose
was called until it returned ...)


How about indirect inode blocks on large files (say 2GB), you can't keep 
all of them in RAM at all times (2GB/8KB * 4Byte = 2Mbyte), can you ?
(We DO write files of that size on our system regularly, so its not 
only of academic interest to me).

If you update the meta date of large files before the corresponding 
data blocks are guaranteed to be written to disk, the above scenario 
doesn't seem impossible to me, even under modern UNIXes.

You'd have to keep buffer cache blocks and the corresponding meta data 
linked in some way, to be sure you always write data before meta data.

The main problem with asynch. inode updates was, if a directory had just 
been created, the inode already written to disk, but the data block still 
contained ordinary file data (or, worse a previously deleted directory), 
then fsck often did silly things. Worst of all was the possibility of 
an indirect block number being written into an inode (on disk), when this
block (on disk) still contained ordinary file data.

Always writing inode blocks synchronously when creating or removing a 
directory or allocating a new indirect block, makes fsck work much more 
reliably. 

But it doesn't guarantee that data blocks from another data file don't
end up in your data file, since that doesn't confuse fsck, but it may 
confuse the previous owner of that data :).

And that's what the initiator of this thread said ...

-- 
 Stefan Esser                           Internet:       <se@MI.Uni-Koeln.DE>
 Mathematisches Institut                Tel:            +49 221 4706010
 Universitaet zu Koeln                  FAX:            +49 221 4705160
 Weyertal 80
 50931 Koeln

------------------------------

From: rh@unifix.de (Ruediger Helsch)
Subject: signal() with BSD semantics
Date: Fri, 10 Jun 1994 15:39:45 GMT

I would like to change the default handling of signal() in my
system to BSD semantics, but first I want to get some
opinions.

What is the reason that under Linux signal() uses by default
the unreliable SYSV mode, and BSD functionality has to be
expilicitly enabled if desired? Lets look at it from different
points of view:

1) Standard conformance: Neither C nor Posix nof XPG favour
one of the two signal() semantics over the other.

2) Reliability: The SYSV semantics are unreliable and have no
useful properties over their BSD counterparts.

3) Ease of ports: There is much software available that relies
on BSD semantics and fails under Linux if not modified. Best
example are the recurring problems with zombies, caused by
automatic deinstallation of the SIGCHLD handler. I know not
one program that relies on the (in my opinion useless) SYSV
semantics.

It may be argued that neither Posix nor XPG favour the use of
signal(), and whoever wants reliable signal handling shall use
sigaction(), but

1) The C standard knows only signal(), and many people prefer
to program strictly to the C standard and not to Posix; there is
no reason to make life for those people unnecessary hard.

2) The use of signal() is much simpler than sigaction().

3) In existing software signal() is used more than sigaction().

So what are your opinions? Does anybody know a program
that would break with BSD signal() semantics?

Ruediger Helsch <rh@unifix.de>

------------------------------

From: kabel@marvin.tphys.uni-heidelberg.de (Andreas Kabel)
Subject: TeX bug?
Date: 10 Jun 1994 08:25:03 GMT


Hi,

I am using the TeX/LaTeX system that comes with Slackware 1.2.0.
(v3.1415 / C Version 60, C libraries v4.5.26 installed)

When I installed a set of .pk-files yesterday, TeX wouldn't run
after, reporting a segmentation fault. dvitype wouldn't run 
either.

The names of the newly created font directories were

/usr/TeX/lib/texmf/fonts/public/postscript/pk/(times|helvetia|...)

When I renamed the above to .../ps/pk/... , everything ran smoothly 
again. 

I suspect TeX ran over some hard-wired limitations on the
length of the filename when searching  for *.tfm-files in the 
.../font/ directory. 
Is this correct? Any other ideas/comments/remedies?

Thanks,

        Andreas




==================================================================
Andreas Kabel                                   Bahnhofstr. 9-13
                                                D-69115 Heidelberg
kabel@marvin.tphys.uni-heidelberg.de            Tel.: 06221/181552

------------------------------

From: neideck@nestvx.enet.dec.com (Burkhard Neidecker-Lutz)
Crossposted-To: comp.benchmarks,comp.sys.sun.admin
Subject: Re: Filesystem semantics protecting meta data ... and users data
Date: 9 Jun 1994 09:00:10 GMT

In article <idletimeCr2vIs.5zJ@netcom.com> idletime@netcom.com (Totally Lost) writes:
>Are you tring to say that having files
>undetectably corrupted with uninitialized deleted file contents is an
>acceptable result of a "normal" operational failure?

No modern BSD file system will show up with deleted file contents in
a file after any kind of disk crash,

>In the last 19 years 3 cases occured where sensitive information/mail ended
>up in another users file for the systems I have mothered ... first time was
>at SRI 1977 under V6 unix on a PDP-11.

V6 Unix. Oh boy. What were the other to cases running ?

>AND if it still allows meta  data to be written prior to file data then it
>is operationally unsafe and a major security risk. Supporting per file
>ordered writes as Advfs is fine, but why did they stop there?

Advfs doesn't suffer from the meta data problems you mention. A complete
transactional mechanism is used inside that works regardless of the number
of writers, files or physical disk devices involved (after all, some things
have improved since UNIX V6 came out...).

>What is the point you are trying to make? That the security and file
>corruption aspects of current filesystem design during OS/Hardware
>failure is acceptable?

There shouldn't be any security breaches (and to the best of my knowledge
any recent UFS implementation doesn't have any). To solve file corruption
problems of the kind you mention (multiple writers) requires a lot more
than just writing some metadata in any particular order (Berkely UFS
is very careful to order the writes it does to disk so that that can't
happen).

Also, you don't seem to be familiar with really *current* UNIX file systems
like Advfs or JFS which suffer from none of your problems.

                Burkhard Neidecker-Lutz

Distributed Multimedia Group, CEC Karlsruhe 
Advanced Technology Group, Digital Equipment Corporation
neideck@nestvx.enet.dec.com

------------------------------

From: urlichs@smurf.noris.de (Matthias Urlichs)
Subject: Re: DIP: Aborts with Errors. Help!
Date: 10 Jun 1994 18:27:21 +0200

In comp.os.linux.development, article <2svrv8$il9@watnews1.watson.ibm.com>,
  uri@watson.ibm.com (Uri Blumenthal) writes:
> 1. Upgrade your DIP ("sunsite.unc.edu", "dip337b-uri.tgz").
> 2. Make a link
>       ln -sf /usr/sbin/dip /usr/sbin/diplogin
> 3. Put that into your /etc/passwd instead of dip-i.
> 
Grumble.

PLEASE, whoever currently hacks at diplogin:

Just forget about calling dip "diplogin", making scripts call dip
with -i, waiting for the correct phase of the moon, etc.

All shells just check argv[0][0] to see if they're a login shell -- if that
character is '-', they assumes they are. (This special character comes for
free, c/o /bin/login. Just look at the sources.)

dip should behave likewise. Anything else is just plain stupid. Really.

-- 
Matthias Urlichs        \ XLink-POP N|rnberg  | EMail: urlichs@smurf.noris.de
Schleiermacherstra_e 12  \  Unix+Linux+Mac    | Phone: ...please use email.
90491 N|rnberg (Germany)  \   Consulting+Networking+Programming+etc'ing     42

Click <A HREF="http://smurf.noris.de/~urlichs/finger">here</A>.

------------------------------

From: janne@avocado.pc.helsinki.fi (Janne Sinkkonen)
Subject: Re: SLIP panic still with 1.1.19! (was Re: Bugs in 1.18)
Date: 10 Jun 1994 20:13:13 +0300

In article <1994Jun10.045258.11554@unlv.edu>,
Frank Lofaro <ftlofaro@unlv.edu> wrote:

>ALWAYS panics any Linux kernel 1.1.x with x>12. And all the older kernels 
>I tested if the new tty patches are put in (they were mainstreamed in 1.1.13)

Mine too, but that has never been a problem in practice. I run CSLIP
between two linux machines through a 14.4k V42bis modems; one of the
machines is in the Internet. No single panic despite X, Mosaic etc,
except once when I wrote ping -l 100 <server>

--
Janne

------------------------------

From: haible@ma2s2.mathematik.uni-karlsruhe.de (Bruno Haible)
Subject: Re: GCC __asm__ bug with %[abcd]h registers
Date: 10 Jun 1994 17:32:04 GMT

Drew Eckhardt <drew@kinglear.cs.colorado.edu> wrote:
>
> Under GCC 2.5.7 for the i486 linux platform, the __asm__ construct
> doesn't handle the %[abcd]h registers correctly when they are used 
> in the input/output operand fields.  Apprantly, it considers them 
> equivalent to the %[abcd]l registers.  Am I doing something wrong, 

Yes. gcc doesn't know about the registers "ah", "ch" and so on. Only
the assembler and the cpu know about them. gcc views "al", "ax", "eax"
as one single register which may contain data of different size.

>     __asm__ ("" : "=bh" (result));

The string "=bh" should contain register constraints as explained in the
gcc manual. "=" means output, "b" constrains the result to the bl register,
and "h" is not a valid constraint.


                    Bruno Haible
                    haible@ma2s2.mathematik.uni-karlsruhe.de

------------------------------

From: bealar@ndlc.occ.uky.edu (Andy Beal)
Subject: Re: Linux game development (Was Re: Why [DOS, W
Date: 10 Jun 1994 12:32:02 -0500

David Luyer (luyer@tartarus.uwa.edu.au) wrote:
: I tried Linux with 2mb (but fixed the problem by going to 8mb).

: First I got an Oops [0002] from the kernel, and then it tried to
: free up memory - it killed task 0 [swapper] and sat there crashed.

: This was SlackWare Linux install standard "bare" 1.44m boot disk.
: (1.2.0 and the one before)

I have a 386 W/ 3 meg of ram, and I can run linux.  The slackware did the 
same thing to me, so I decided to try some other distributions.  
Eventually Debian worked.  
-- 
                /^\      /^\               
___________/\  /   \    /   \  /\________  Andy Beal
             \/     \  /     \/            bealar@ndlc.occ.uky.edu
                     \/

------------------------------

From: sto2@netaxs.com (Brian Stoler)
Subject: Re: USERFS installation. Need help!
Date: 9 Jun 1994 21:21:13 GMT

Yasuo Ohgaki (yasuo@via.term.none) wrote:
: Yasuo Ohgaki (yasuo@via.term.none) wrote:
: : I have problem installing (compiling) userfs. Kernel patch 
: : works w/o any problem on 1.1.18. (at least, it seems there
: : is no problem) However, non-kernel code can't be compiled.

: : It complians there is no "userfs_types.h" and there is 
: : "userfs_type.ty", but no "userfs_type.h".
: : lex also complains there is undefined symbol.

: : I'm using userfs-0.7.1. 

: : Am I missin some? Thanks in advance.

: I thought I had better to post error msg, too.
: Here is the error msg.


: lex.yy.o: Undefined symbol _yywrap referenced from text segment

Edit the Makefile .. uncomment the part that has something like "-lfl".. 
should do it.

--
- Brian Stoler
- sto2@netaxs.com

------------------------------


** FOR YOUR REFERENCE **

The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:

    Internet: Linux-Development-Request@NEWS-DIGESTS.MIT.EDU

You can send mail to the entire list (and comp.os.linux.development) via:

    Internet: Linux-Development@NEWS-DIGESTS.MIT.EDU

Linux may be obtained via one of these FTP sites:
    nic.funet.fi				pub/OS/Linux
    tsx-11.mit.edu				pub/linux
    sunsite.unc.edu				pub/Linux

End of Linux-Development Digest
******************************
