[comp.sys.atari.st] mx2v230

apratt@atari.UUCP (Allan Pratt) (12/30/88)

> Submitted-by: madsen@sask.usask.ca (Jorgen Madsen)
> Posting-number: Volume 3, Issue 52
> Archive-name: mx2v230/part01

This multi-tasking system was submitted to comp.binaries.atari.st and
comp.sources.atari.st...  I have been looking at the program which gives
one ST remote access to the other's disk drives. 

Until I look a little further, my advice is this: DO NOT USE THIS PROGRAM!  
I am talking about the network file system part of the MX distribution:
the rest, for all I know, works fine.

The problem with the networking part is this: it changes the contents of
the disk without GEMDOS's knowledge.  This can be disasterous if the
program changes a disk block which GEMDOS has in memory.  There is no
(legal) way to know if GEMDOS has a block cached, and even less of a way
to tell GEMDOS that a block is suddenly changed, and it's even WORSE
when GEMDOS has a block cached AND HAS CHANGED THE CACHED IMAGE (that
is, the cached block is "dirty"). 

If you use the networking for reading only, or if you are EXTREMELY
careful about how you use it, you can succeed.  By being careful, I mean
that the person using the ST locally and the one using it remotely
should never access the same logical drive.  I don't mean not accessing
it at the same time: I mean accessing it EVER. 

If you restrict both users to read-only access to a logical drive,
you'll do okay.  So if you both access drive E: for reading only, and
one of you accesses drive D: for reading and writing, and the other one
accesses drive F: for reading and writing, you should do OK. 

If you want a detailed disaster scenario, here it is:

	User L is local, user R is remote, and mx2net is running on both
machines. 

	User L begins editing D:\SRC\FILE1.C.  GEMDOS caches part of the
FAT from drive D:. 

	User R begins D:\WORK\FILE2.C (that's D: on L's system).  *His*
GEMDOS also caches part of the FAT from drive D:. 

	User L writes his edited file to disk.  It got bigger, so a new
cluster is allocated.  The new FAT is written to disk. 

	User R writes *his* edited file to disk.  It got bigger, too, so
a new cluster is allocated.  But User R's GEMDOS uses the cached FAT
from drive D: to allocate the new cluster, and allocates the same one!

BAD NEWS.  It can get worse, too.  Notice that it doesn't matter that
they aren't accessing the same folder, and it doesn't matter if they
don't do it at the same time: the problem is that user R has an
out-of-date local copy of a sector on drive D:, and his GEMDOS can't
know it. 

But if all the drives they both use are read-only, then they can each
use other drives for read/write and never get into trouble. 

This is not as much of a problem under TOS 1.0 or 1.2, because GEMDOS is
really stupid about invalidating perfectly clean, cached sectors, but
TOS 1.4 is *not* stupid about it, and it is really easy to get bitten by
this.  It's still possible under TOS 1.0 or 1.2, however. 

I applaud the effort which the author has clearly put into this.  I have
not tried, let alone analyzed, the multitasking part.  I hope he has not
fallen into the same local-copy-of-global-data trap.  Has anyone out
there had experience with the previous versions of this code?

============================================
Opinions expressed above do not necessarily	-- Allan Pratt, Atari Corp.
reflect those of Atari Corp. or anyone else.	  ...ames!atari!apratt

david@bdt.UUCP (David Beckemeyer) (01/04/89)

Allan Pratt describes a fatal flaw in the above network software.

It seems very common that someone thinks a network for the ST is
easy and tries it.   I have looked at several (at least five)
supposed "networks" for the ST.  Some were supposed to eventually
be commercial  products.   I can't tell you how many times someone
has told me "Well Company X has a network for the ST - It will be
out in two weeks."

BEWARE! *NONE* of these networks have been even close to being real.

It is an extremely difficult task to make a useful general purpose
(i.e. remote file-system) network for the Atari ST.   You can make
something look like it works, good enough for a trade show, with
little difficulty.  You can also get special purpose networks running
like for transaction processing, or a controlled disk access (especially
read only), without too much work.   But if someone tells you they have
a LAN-type network for the ST (or they're going to to have one real soon),
be *very* cautious.

The first one I saw was announced in 1985.  It was never released.  Since
that time I have seen many announcements of Networks for the Atari ST.
I have also seen many PD attempts.  A lot of effort was put into everything
I saw, and I don't want to flame anybody who has tried it.  This is just
a warning to would-be "believers" - be wary of ST network claims.
-- 
David Beckemeyer (david@bdt.UUCP)	| "Lester Moore - Four slugs from a .44
Beckemeyer Development Tools		|  no Les, no more."
478 Santa Clara Ave. Oakland, CA 94610	|   - Headstone at Boot Hill
UUCP: {uunet,ucbvax}!unisoft!bdt!david	|     Tombstone, AZ

hafer@infbs (Udo Hafermann) (01/04/89)

In article <471@bdt.UUCP> david@bdt.UUCP (David Beckemeyer) writes:
>
>BEWARE! *NONE* of these networks have been even close to being real.
>
>[...] This is just
>a warning to would-be "believers" - be wary of ST network claims.

This puts me in a difficult position - but nevertheless: 

We have a transputer-based network connecting (at this time) seven STs
to (at this time) two servers up and running for over a year now.  A
short description follows:

Introduction
------------

The Atari network described here has been heavily used in our own
projects for a year.  It provides multi-user access to shared disk space
using the familiar TOS interface. 

The network utilises Inmos transputers with their fast link connections. 
Work is currently being done to integrate IBM-compatible PCs into the
network and to implement an interface to the inter-user communication
facilities. 

Hardware
--------

The network requires at least one server.  A server is an Atari ST (512
Kbytes of RAM are sufficient) with a harddisk (although in principle any
drive, including large RAM disks, could be used).  It has the sole task
of handling requests from the network, thus managing access to its disk
data.  A server Atari cannot be used otherwise while the network is in
operation. 

There may be many servers in the network.  All other network
participants are called users.  A user thus is an Atari with or without
a local (non-server) harddisk, connected to the network via a so-called
Adapter Box which plugs into the ROM port.  An RS424 line connects the
Adapter Box to a transputer.  In this manner, the network can be
extended to almost any size. 

Software
--------

From a user's view, the network provides additional TOS drives, for
which the drive specifiers P downto minimally G are used.  Drive
specifiers are assigned to disks or partitions of servers independently
(and dynamically) for each user.  The icon-driven desktop user interface
is fully operational.  A single file can be opened for reading by any
number of users (if no-one has write access); however, a file can be
opened for writing only if no other user is accessing it. 

The user's computer gains network access by loading a resident program
which redirects TOS requests for network drives.  All TOS calls are
supported; BIOS calls for network drives are not possible (and
protection mechanisms therfore cannot be by- passed).  A few new TOS
calls for internal network purposes have been added.  Network access can
be dynamically de-installed. 

Programs can be loaded and run from network drives (although they are
actually executed on the local computer).  Hierarchical inheritance of
I/O-redirection and current paths are implemented in the usual manner. 

If a user program crashes (bombs etc.), the network remains operational
for other users.  The crashed computer must simply be rebooted.  It may
however be necessary to explicitly close files which were opened on a
server but not closed.  Software support for this is provided. 

Two additional programs allow users to have temporary exclusive access
to the printer connected to the Boot Server.  All printer output via DOS
calls is then redirected to the boot server's printer. 

---------

As said, the network is *operational* (and, incidentally, will be on
display at the CeBiT Hannover Fair this year), and we are quite happy
with it.  Mail me for more details.


	Udo Hafermann
	Abteilung fuer Theoretische Informatik
	Bueltenweg 74/75
	Techn. Univ. Braunschweig
	D-3300 Braunschweig
	W. Germany

email:
	hafer@dbsinf6.bitnet		(preferred)
	hafer@infbs.uucp

apratt@atari.UUCP (Allan Pratt) (01/06/89)

In article <116@infbsgr.infbs> hafer@infbsgr.UUCP (Udo Hafermann) writes:
> The user's computer gains network access by loading a resident program
> which redirects TOS requests for network drives.  All TOS calls are
> supported; BIOS calls for network drives are not possible (and
> protection mechanisms therfore cannot be by- passed).  A few new TOS
> calls for internal network purposes have been added.  Network access can
> be dynamically de-installed. 

Your terminology confuses me.  In Atari parlance,

	AES + VDI + GEMDOS + BIOS + XBIOS = TOS

Therefore saying "All TOS calls are supported" but "BIOS calls are
not possible" doesn't make sense.

If you mean GEMDOS where you say TOS, it makes more sense, and it will
work.  The reason I said networks can't work is that GEMDOS will cache
sectors which might then change on the media, without GEMDOS knowing
that its cached sectors are out of date.  If you reimplement GEMDOS
it'll work fine.

============================================
Opinions expressed above do not necessarily	-- Allan Pratt, Atari Corp.
reflect those of Atari Corp. or anyone else.	  ...ames!atari!apratt

david@bdt.UUCP (David Beckemeyer) (01/07/89)

In article <116@infbsgr.infbs> hafer@infbsgr.UUCP (Udo Hafermann) writes:
>We have a transputer-based network connecting (at this time) seven STs
>to (at this time) two servers up and running for over a year now.  A
>short description follows:

[ Long description of network edited out ]

I did not mean to imply that networks were impossible on the ST.  I said
they were dificult and that I had seen many that were far from being real.

I have not seen the one described in the reference article.   But it does
back up my point that netwrosk are *non-trivial* on the ST.  It sounds
like this network has a lot of effort put into it and they may well have
done it right.  Some things in the descriprion imply that they had to
solve a few things:

>A server Atari cannot be used otherwise while the network is in
>operation. 

>...  A single file can be opened for reading by any
>number of users (if no-one has write access); however, a file can be
>opened for writing only if no other user is accessing it. 

>The user's computer gains network access by loading a resident program
>which redirects TOS requests for network drives.  All TOS calls are
>supported; BIOS calls for network drives are not possible (and
>protection mechanisms therfore cannot be by- passed).  A few new TOS
>calls for internal network purposes have been added.  Network access can
>be dynamically de-installed. 

All the above tells me they have done more homework than usual.  A centralized
dedicated server is the easiest approach to implement.

The third paragraph above, to me, implies that they may have done what
has to be done: re-implement all GEMDOS File I/O calls to handle the network.
But it can present compatibility problems.  The fact that BIOS calls are not
supportted, already means that some programs aren't going to work; and I believe
even the GEM Desktop uses the BIOS for some stuff, which means those Desktop
functions won't work.  It means a special Pexec handler must be written too,
which means either hacking into GEMDOS memory management, or taking over all
memory management from GEMDOS.  This can create even more compatibility 
problems - one hack to TOS always tends to cross-over into more parts
of TOS than expected.

They also used the cartridge port instead of the AHDI DMA port, which makes
it sound like it has more potential than anything I've seen yet because
you have a lot more hardware control here than the other I/O ports, but the
speed might be marginal.

I'm also wondering what's running on the server.  What about "too many files
open" problems if it's running regular TOS?   Normal TOS can't dish out too
many file handles at once.  And what if the server crashes? And since only
one user can open a file for writing, data-base applications will be very
restricted.  Most data-base applications assume you can lock records and/or
files at will.
-- 
David Beckemeyer (david@bdt.UUCP)	| "Lester Moore - Four slugs from a .44
Beckemeyer Development Tools		|  no Les, no more."
478 Santa Clara Ave. Oakland, CA 94610	|   - Headstone at Boot Hill
UUCP: {uunet,ucbvax}!unisoft!bdt!david	|     Tombstone, AZ