€€ Ã*Ã"VIR:" The Virtual Deviceƒ Ã*'é or ©ƒ Ã*à "Poor Mans Floptical"ƒ Ã*ÃProject Concept Documentƒ Ã*#ÃBy Anselm Hookƒ Ã* ÃLast Edit: Feb 7 1991ƒ Prologue: ©©©©©©©©© This proposal contains as its main thesis an outline of the virtual device driver. This proposal also contains outlines for a number of additional utilities related to the Virtual Device, which may in fact be stronger selling points that the VIR: Device itself, but are not as novel. In reading this proposal remember that I use the VIR: device every day, as well as other utilities described herein (such as Encrypt). I defy YOU, the reader, to read this proposal and return to your computer without a significant paradigm shift in the way you perceive your workspace! VIR:, related utilities and related mems ©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©©© VIR: ©©© The virtual device is a piece of software which provides a fascimile workspace within which all your files appear to be. Requests to read/write actual data are patched onto the real media which owns that data. The VIR: device is entirely software, and has these mems: VirtualÜjÜŒ ©©©©©©© The Virtual Device allows the client to read/write files which are not necessarily online, without that client having to know the location of the physical media on which the files reside. Rather the Virtual Device knows the media location itself and requests it if it is not online. Where the user and the device driver share a mutually agreed upon method for refering to and retrieving offline media. Transparent ©©©©©©©©©©© The Virtual Device appears, and is, just another device on the system, much like "C:" is just another device. This means that non©human clients can issue requests in a data©transparent manner. Its important to understand that to call the Virtual Device a File/Disk Manager is not quite right. As far as the system can detect it is the physical residence for all the files it claims to have. This makes it an extension of the users enviroment, not merely a memory aid. [ You'll have to bear with me if this all seems patently obvious. ] Flat ©©©© VIR: presents a flat dataspace to the client, that is files inside of archives are visible and accessible to the client. Files packed onto tape©backup, or otherwise difficult to access conventionally also appear to be visible and accessible to the client (where VIR: automates the process of unpacking). Learn ©©©©© VIR: acquires knowledge of a file by a user explicit command. It stores as much information as possible about the file, with the exception of the file contents itself. It assigns or accepts a media number for that diskette (or thing). VIR: will peer inside of various types of non©standard archives and media as part of its duty (ARC/LZH/QBAK/CHEETAH). Given time you can teach the VIR: every single software property you own. Coalesce ©©©©©©©© By maintaining a virtual reference of every single file inÜjÜ your software universe the VIR: device is able to act as a very intelligent coalescer. Able to spot every single duplicate, or near duplicate instance of every file that you've ever taught it. And chain all multiple references to only one real instance, or to delete all redundant references if you wish. VIR: *never* deletes original media, its more like a CD©WORM in that it just forgets the *reference*. This ability is particularily useful if you want to keep entire copies of enviroments online, but don't want the overhead of actual duplicate instances of any utilities they might share. I find it extraordinarily useful as a tool to sort all the unique contents of all the disks I've accumulated over the years. Secure ©©©©©© The Virtual Device builds up incremental checksums across each file it "learns", and as such can act as an implicit Link© Virus Detection © being able to do crude "diffs" as well as absolute compares. WhatIs ©©©©©© Some people may find it useful to use the VIR: capacity for determining file type (which it does as part of its aquisition phase; much like the UNIX "whatis"? command). Reboot ©©©©©© It would be nice to support AUTO©BOOTING products, where the VIR: could say "Please insert disk X", and then request a REBOOT. Related Utilities: ©©©©©©©©©©©©©©©©©© The Virtual Device is so trivially simple to write that it‰ really needs something to "put some meat on its bones". These are some other related bits of code and ideas that I've found myself needing or wanting at various times. Tool Box ©©©©©©©© An ICON tool box, a'la NeXT, except running off scripts not‰ merely executing the named icon. The NeXT enviroment successfully seperates the idea of aÜjÜ toolspace from a dataspace. On the NeXT its as if the user has a window flying through their dataspace, with all their tools handy off to one side. Wheras on other systems such as the MAC and AMIGA and IBM, the toolbox and dataspace are mixed up, and the poor user is forever shuffling windows about to click on executables. The Tool Box would feature a clock, a trashcan, and also the entry point to VIR: priviliged commands, such as LEARN, COALESCE. Finally the Tool Box would have a power off button, which would issue an orchestrated power off request to the entire system, such that partial writes to HARD MEDIA are prevented. This feature alone should trigger a spending spree among BBS owners. Additionally © and this is highly optional © with a bit of hardware it could turn of your harddrive when it wasn't in use (or even do a park/shutdown supported in some drives software). ARCHIVAL ©©©©©©©© Archival © particularily on the Amiga © is one of the most poorly addressed issues. I think we all pretty much know what makes a good archival program. Things like: Holographic © Retaining some image of the master disk, or at least that particular disks contents such that a loss of the master disk doesn't result in complete failure of the entire archive. Automated © Being able to perform delta archives on a regular basis without human intervention. Comprehensive © Real Backups for Real People! Just a general complaint about poor option selectability (degree of compression, speed etc.) Biggest © Being able to know just exactly which file it is that is contributing the other 953 disks to the otherwise single disk archive (ARG!). The Amiga Community is crying out for a decent Archival Utility, I have some nice ones on the MAC, and some OK ones on the IBM, but I just haven't seen anything really comprehensive for the Amiga yet. JUNK ©©©©ÜjÜŒ Undelete ©©©©©©©© Standard File Undelete Norton Dir ©©©©©©©©©© A proper directory and subdir display, as well as some other Norton type Utilities. Defragger ©©©©©©©©© A proper graphical harddisk defragger; one that puts all the freed space next to the tail of the most recently accessed files. Real Copy ©©©©©©©©© A disk copier that dispenses with the common idiocy of protection schemes by scanning tracks for weak©bits and then duplicating the media across the same write©splice, thus emulating what the heavy industry media duplicators do. (basically a perfect copier) (I have no idea why nobody has done it, except that few other people have had to fight with those monstrosities to get them to recognize a protected format). Encrypt ©©©©©©© Its possible to encrypt an entire media partition such that the entire media appears to be garbage unless decoded against a proper key. This key then in a sense becomes a very secure password. Since all the data on the physical media is cyclically run length encoded against the password it becomes not possible to simply "pass thru a gateway" to crack the media. Rather the entire media is by its very nature open, yet secure. I have an implementation of this scheme as originally conceived of by Randy Linden, and I have been running it for over 2 years as a way of securing my dataspace against errant pirates and police. So far its performed flawlessly. I go thru customs with my 130 megabytes of quasi©legal code without qualm, and I leave other people access to my computer for hours on end without concern. Ideally the password is not only secure, but also slightly redundant, having a validity checksum imbedded in itself suchÜjÜ that an inadvertant typing error doesn't end up corrupting your entire media (much like social security numbers). I mention Encrypt in such detail because its a big idea, but the actual code is only 2700 bytes long under my implementation. (Now how do you protect 2700 bytes from piracy??? © imbed it in a much larger product!). Product General ©©©©©©©©©©©©©©© The product should have an AREXX port (for Amigaoids). The product isn't necessarily Amiga Specific, but at the same time I don't think its a weakness to address the Amiga Market only, if the development costs are low enough. I'd personally like to tackle the MAC as a second option (since mine is a stunningly unbelievable organizational catastrophe!). As a final point, imagine, now that you have your entire system on VIR:, and you've performed a total COALESCE on everything. Now you want to make a "real" backup to your brand new, just purchased, Floptical harddrive. What do you do? Simply drag the VIR: device icon overtop the Floptical Icon. Anselm Hook ©©©©©©©©©©© I want to emphasize myself a little bit here because its important to make clear my competence in relation to this project. I've written a few arcade games here and there, certainly worked on a lot, such as, VIDEO©KIDS, ZOOM, SWORD OF SODAN AMIGA, HYBRIS, BATTLE SQUADRON, DRAGONS LAIR II, VORTEX, DATASTORM, MS PAC MAN SEGA. But before all that I spent what is still the majority portion of my programming career working in the Oil Patch; where I did the main body of my work (but of course my accomplishments there aren't really visible to anybody outside of the company for whom I worked). This means that my code is very clean, and sharable; yet not bizzarely obfuscating). I've worked at a lot of different Companies, I actually seem to have a bad knack of bankrupting all my Employers © no fault of mine I assure you! I think that I have a tendency to overwhelm them with ideas and they just explode © natural causes... But by working at so many different organizations, and often at such close distance to the executive, I've gained quite an insight into what makes a Company work, and what makes productsÜjÜ work. At the moment I find myself very frustrated because I know precisely exactly technically what to do to put a product together, but I simply don't have the time to address all the products that I wish to do. If you wish to see a picture of me goto your nearest software retailer and take a look at the inside jacket of SEGA SWORD OF SODAN. What Else I know: ©©©©©©©©©©©©©©©©© How to write an extended DOS handler for the IBM in 80286 machine code! (including RESET to leave PROTECTED MODE!) (wow!). My interests ©©©©©©©©©©©© I'm currently pursuing a bit of University Education. I'm most interested in the nature of computer languages, and lately I've been exploring the EIFFEL OOPS system. The idea of CYBERSPACE excites me, although I believe the vernacular perception of it is a bit unclear. I believe in the idea of an Anticipatory Democracy above and beyond the idea of Cyberspace (but then CyberSpace is just now hitting common press whereas "us hackers" were exposed to the idea over a decade ago). I'd like to see technology like this help mankind chart a course out of the treacherous years ahead (wouldn't we all). I enjoy teaching, I am typically a fairly public person with my program code in that way, see my PD TETRIS on Fred Fish #324 (original un©yanked editions) or DIMENSIONS on Fred Fish #14. I like to teach because I want to help other people out of poor situations like I was once in. Community ©©©©©©©©© Calgary is my home of choice, we have an robust Amiga Community here with the A.M.U.C users group, Steve Vermulen (Express Paint) and a generally very healthy Amiga Market. My father owns The Computer Shop, North America's Oldest Computer Retailer, opened in 1976 and still going strong. Its here that I've been massively exposed to virtually every new retail software product in existance (as well as having my pick of the choicest hardware). One of my self depreciating jokes is that I used to be one of those Whiz Kids, but now I'm just old! But at 23 years of ageÜjÜ I'm probably one of the most exposed oldsters around. And hey! only 2 more years till retirement! (Apparently most high pressure programmers kick it at age 25 (either burnout or $$) ). Yours Truly Anselm Hook Supplementary Materials ©©©©©©©©©©©©©©©©©©©©©©© copy of l:Virtual©Handler copy of devs:mountlist copy of c:learn copy of c:coal copy of c:encrypt ( NOT INCLUDED) picture of toolbox ( NOT INCLUDED ) picture of archival device ( NOT INCLUDED ) Money and Timing ©©©©©©©©©©©©©©©© Project Components: VIR: ©> to machine code (currently in C) ©> recognize archives, whatis ©> decide good database format (perfect hash?) 5 weeks TOOL BOX: ©> orchestrated power off (AREXX 'em) ©> AREXX ©> Clock / Garbage ©> Scripts 1 week ARCHIVE: ©> Backup ©> Compression ©> Automated 8 weeks OTHER: ©> undelete/dir ©> defrag ©> realcopy ©> encrypt 2 weeks ©©©©©©©© 16 weeks at $4000 a mon (min) for myself and another programmer. ©©©©©©©©ÜjÜŒ$16000 dollars US total development cost Not counting bonus©to©start Not counting my overhead (time/training/hardware). So it looks like at a minimum it would take 4 months and $8000 dollars to produce this package assuming that I find a good programmer at project start. Now Discovery sold 50000 units of Marauder initially, and since they did distribution they got $15 per unit, so thats about $1500000 off that product. They ended up having a ton of sales due to the brainfiles eventually (transitive property of free upgrades I presume). So at $10 per unit the distributing company should generate about $500000 dollars. So I guess that $8000 asking price is a bit low, I'd suggest trying to get about double that. At the same time there is the problem of scope, the VIR: device is a simple little idea, and should be marketable as perhaps seperate of the other ideas once these kinds of numbers start to be thrown around. Yet there isn't anyway to protect the product against rampant piracy unless the package has some more grandiose theme. In which case it becomes an advertising problem of trying to express the fundamental applicability of products as diverse as a "VIR:" device, a "ToolBox" an "Archival Tool" and an "Encrypter".