-------- 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