Common Internet File System

Jan Bottorff janb at pmatrix.com
Mon Feb 14 03:10:04 UTC 2000


>In general, I agree that any kind of effort to make Squeak to interface
>other system is a good idea.  I had a quick look at the web page you
>mentioned and saw that despides the name, the CIFS is a proposal from
>Microsoft.  It's an extension of their SMB protocol so it needs a tool like
>SAMBA on all but Microsoft platforms.  This leads to the question whether
>this "standard" is really "common internet filesystem".

As I know quite a lot about Microsoft OS's, I'll my $0.02. CIFS is
Microsoft's renaming of it's SMB protocol (using the TCP/IP transport) by
the marketing folks to make it sound more "Internet" friendly. This is a
stateful file,printer, and named pipe sharing protocol that's been used by
Microsoft for more than a decade in Windows. The Samba open source project
is an implementation intended to be used on UNIX type boxes.

By implementing ANY file sharing protocol (NFS, CIFS) in an easy to twiddle
form, you can develop applications using a "virtual" file system that would
be impossible otherwise. For example, a file system that presented a file
system like view to remote clients of data actually stored in tar files.
Personally, I believe this would be a nice standard feature of every OS.
Your app registers with the OS, and the OS routes
read/write/open/close/directory calls to your app. Unfortunate, many OS's
don't allow this and force you to implement tricky kernel driver code to
get something that looks like a file system.

For Smalltalk, I'd think a "filesystem" that presented a hierarchical view
of object memory to remote machines might be more interesting (and much
simpler to implement). You then might write statements like:

(((RemoteSystem at:'image.foo.com')
	withCredentials:mySecurityCredentials)
		at:'Smalltalk')
			at:'MySharedClass')
				doSomeClassMessage:someParameter.

I'm sure the concept of publishing network access to objects is very old,
and implemented many times. Being more a VM hacker kind of guy than a high
level Squeak user, maybe Squeak already has this, if you just turn it on.

>Perhaps this would solve the problem that at the moment, not even UNC names
>are supported by the VM and by the Squeak system as for example the file list!

I can't imagine what the current VM would be doing to prevent UNC names
from working. If you pass a filename like "\\rover\shared\foo\x.txt" to the
Windows file open API, it just works. Passing
"\\rover.zzz.com\shared\foo\x.txt" also should work if you set the OS
options right. What you probably can't do is set different security
credentials for each remote connection (NT/Win2000 supports this WIn9x
doesn't).

- Jan





More information about the Squeak-dev mailing list