-------- Original Message --------
Subject: FunkyOS
Date: Wed, 08 Nov 2000 15:30:11 +0000
From: Simon Wistow <simonw(at)digimob.com>
To: xxx@xxx.xx


Anyway, re: what we were talking about ...

This bit about QNX impressed me for sheer 'oooh' value alone but it
showsthat it's a completley network transparent OS which is the way
forward AFAIC.


"As an example of its flexibility; you could have a game running on
one computer in a network, while it is being controlled by a joystick on
another computer within the network, and its graphical output being
displayed on amonitor of another machine again! One demonstration was of
Doom running on two connected machines to begin with; it was running on
one machine, then the window it was running in was dragged onto the
display of the second machine, then it was partially dragged back, so the
game was running synchronic and seamlessly with half a window on each
screen"


Then Mac OS X (remember - it's pronounced '10') has a cool config system
which sits on top of BSD/Mach called NetInfo.


"NetInfo is a distributed configuration database consisting of
information that would normally be queried through a half-dozen separate
sub-systems ona typical Unix platform. For example, NetInfo encompasses
user and group authentication and privilege information, name service
information, and local and remote service information, to name just a
few.

When the NetInfo system is running (i.e. when the system is not
in single-user mode), it supersedes the information provided in the
standard/etc configuration files, as well as being favored as an
information source by system services, such as the resolver. The Apple
engineers have accomplished this by hooking a check into each libc system
data lookup function to see if NetInfo is running. If so, NetInfo is
consulted,otherwise the standard files or services are used.

The genius of NetInfo is that it provides a uniform way of accessing
and manipulating all system and network configuration information. A
traditional Unix program can call the standard libc system lookup
functions and use NetInfo without knowing anything about it. On the other
hand, MacOSX-centric programs may directly talk to NetInfo using a common
access and update facility for all types of information. No longer does
one have to worry about updating multiple configuration files in multiple
formats, then restarting one or more system daemon or daemons as
necessary.

The other benefit of the system is that it is designed to be
network-aware from the ground up. If information cannot be found on the
local system, NetInfo may query upward to a possibly more knowledgeable
information host. Thus, NetInfo settings can be set for a central server,
and all of these settings (users, network, etc.) can be shared by its
client computers. Even better, it also knows how to forward requests to
the appropriate traditional services if it does not have the requisite
information. It can hook into DNS, NIS, and other well-known services,
all without the knowledge of the application making the initial data
request."


The Hurd (The Gnu kernel) is a micro kernel with a load of servers round
it (Hurd = Hird of UNIX-replacing daemons. Hird = Hurd of
interfaces representing depth). Basically the kernel only has to provide
scheduling, memory management and process creation/deletion. This makes
it very portable. Everything else is provided by the daemons or servers.
This means that functionality can be provided without a kernel restart.
The other important feature is 'translators' -


"Each file in the Hurd file hierarchy is associated with a program
called a"translator." When a user program accesses this file, control is
passed to the translator to handle the operation. If the access is a read
of an actual disk file, the translator for the file system type acquires
the data from the disk and returns it to the application. If the access
is to a device, the device driver for that device type handles the call.
Similarly for a symbolic link -- a translator can simply redirect an
access to somewhereelse in the file hierarchy.

So far, translators provide nothing that cannot be found in standard
UNIX systems, which already provide unified access to files, devices, and
links. But Hurd translators can be applied to any kind of data. One
example is FTP access. Files on remote systems can be mapped into your
file hierarchy (at, for example, /ftp/ftp.mydomain.com/pub/myfile) and
copied, deleted, or edited with the same tools you use on local files.
The translator simply translates the normal file access function calls
into those FTP operations needed to fill the request. You can easily
imagine other useful translators. Hierarchically arranged data in a
database could be exposed for browsing bymeans of cat, ls, and so on. Or
a network administration tool could be implemented, with all computers on
the local network mapped into a local directory. Cat would list network
data such as the machine's IP address. Those machines that are gateways
could simultaneously be viewed as directories -- by executing a cd to a
gateway, the computers on the connected subnet might be visible. As with
servers, translators require no special privileges. Anyone can write one,
debug it, and experiment with it until it is ready for use by other
users."


Finally an interesting idea is 'Argon' which is another attempt at a
network transparent OS. In fact it utilises the idea of the network as
the OS, making your machine more powerful is as simpel as adding another
computer. Most of the more in depth information has gone now that it has
a proper website but there is the mailing list archives. It has some
neat ideas and it's best thought of as and entire OS based on Corba but
better. It's language independant.



Subject: Re: (void) scopeware
Date: Thu, 05 Jul 2001 15:19:34 +0100
From: Simon Wistow <simonw(at)digimob.com>
To: xxx@xxx.xx


'someone' wrote:
>
> I like David Gelernter's new(ish) desktop system, Scopeware

"In addition, every information asset would be displayed on your desktop
with a thumbnail picture so you could see its first page, a summary of
its content, and facts like who it belongs to and when it was created.
Along with this display would be options to edit, forward, reply, copy,
or delete the document and more."


This has already been done to some extent. Windows will do it, plus the
full text searching, if you enable the HTML part of Explorer.

In the *nix world there's Nautilus which used to be written mainly by
Eazel. Who are now tits up. But since it's Free software it lives on,
Yay Free Software!

http://louissypher.yi.org/nautilus/index.html

Is some screen shots of it.

The Enlightenment Dev team used to be working on something called Efm
which also did the same stuff but they stopped work on that branch and
are completley recoding E from the ground up (again) to have that sort
of stuff built in and fully integrated. E17 is goign to rule by the
looks of it.

I found these screen shots of it which shows some of what it does but
not much

http://mandrake.net/images/april22.2000.jpg
http://saturn5.locnet.net/ee2/shots/ee2s-1.jpg

For example, the later versions would put a thumbnail of some sample
text for a TTF file and a text file would show the first few lines of
itself in the icon.

As for file organisation - I think this is deja (void) but I use my
inbox of my email cleint as a todo list. I hate the clutter of having
stuff in there and so will reply to emails just to stop myself being
irritated. Now I also send stuff to myself with TODO items in them
because it's so effective.

The idea of organising file chronologically is nice but it only works
for a document editing system ... for organising code or other
heirachical structures it wouldn't work. Unless you organise stuff into
projects and have the projects ordered chronologically.

<hat type="coder">
Chronolgically organised files would be a mare to code for. Unless the
chronologically ordered files were layered ontop of a heirachical file
system.
</hat>

A long time a go I had a an idea for a flocking (that's not as in
f-lock) file system - associations would be built up between different
files, so for example every time you open index.html it works out that
you also open up mylogo.jpg and so stregnthens the association between
them. When you look at the 'directory' with index.html in then
mylogo.jpg is also there and when you open index.html mylogo.jpg is
preoloaded into cache.

I've wanted to play around with filing system stuff like this (I'd also
like to do a CVS/other version system filing system, an MP3 file system
[0], a Mail file system[1], and a Net file system [2]  for a start) for
a while using something like PerlFS (http://www.assurdo.com/PerlFS/). In
fact in designing a new FS I'd make sure that it had the ability to make
userspace modifications easy.

I really like BeOS's file system which is (or used to be, it's been
watered down a bit now) a fully relational database. Having arbitary
keys for organising and searching data by rules (Doesn't MacOS have
something like this?) but being able to do it on a fully relational
model would be great. And would make doing very complex DB driven web
sites easy. Espcially if you could set up a folder as a query
("latest=all files where date<$midnight_yesterday", "all_pics=all files
where path=jpg|png|bmp|gif" or "my_progrs=all files where owner=simon &&
executable=true" for example) would be great. This would also let you do
stuff that scopeware wants and more.

I was talking to $local_os_guru about stuff like this back in November,
it has some more info on BeOS and some other cool OS and file system
stuff and lots of links.


It's also references Alaric's ideas for Argon which rocks my world.

[0] Have all MP3 in a directory/db. When you CD into the MP3 FS it looks
at a preference file for you and then lays out MP3 how you like them. So
/home/simon/.mp3fsrc might look like

DIRECTORY=${band_name}/${album}
FILENAME=${track_number(?)}-${band_name}-${song_name} # the (?) modifier
dictates that you only have it when it's available
SORTBY=$FILENAME

But someone else might have

FILENAME $track_number(?)}_-_${song_name}

[1] All your mail is in a DB. From, To, Date, Subject, Body and other
headers are all keys. You then set up mail folders as queries e.g

inbox=all mail where already_filed="true" and unread="true"

or something.

Auto filtering. With Automatic archiving. And if you change your folder
definitions then you don't need to re-sort it all, it's done
automagically. (NB there are issues with this, such as arbitary
classification of mails and mails that are not covered by any filter but
I'll just waft my hands over that)

[2] the directory twoshortplanks.com in my Net fs is just my home
directory on twoshortplanks.com or something. c.f The Hurd on that there
link that I did just give now.



....

and - relax
--
simon wistow            wireless systems coder
    just another shin jin rui






- References : -

Mac OS X
http://www.daemonnews.org/200011/osx-daemon.html

QNX
http://slashdot.org/article.plsid=00/11/01/1315250&mode=thread

Hurd
http://www.ddj.com/articles/2000/0012/0012a/0012a.htm
http://www.cs.pdx .edu/~trent/gnu/hurd/
http://www.technetcast.com/tnc_play_stream.html?stream_id=381 

BeOS
http://www-classic.be.com/developers/March98/presentations/BeFileSystem/
http://www.be.com/documentation/be_book/The%20Storage%20Kit/topic_Architecture.html


Argon
http://www.argon.org.uk/
http://lists.warhead.org.uk/pipermail/argon/

Scopeware
Article in FeedMag by Stephen Johnson: http://www.plastic.com/article.pl?sid=01/05/18/1818239
This is what it looks like: http://www.scopeware.com/products/products_whatis.htm
NY times article: http://www.nytimes.com/2001/07/02/technology/02NECO.html