Saturday, March 8, 2008

Metakit Database Library For Vault OS

I think the first time I saw the Metakit database was about ten years ago. I was considering using it as a library for Visual Basic for DOS for the original Vault Commander software back in 1998.

Then SQLite came along and I always assumed that would be the database I'd use. Alas, I got the Metakit compiled under 32 bit WATCOM, tried a few experiments and was so smitten I pulled out SQLite and stuck this in as the default database for everything. You can stick binaries in like pictures and sounds as easily as freeform text or any other kind of data, including XML. Searches are lightning fast and can be described as very flexible string queries.

The runtime package should consist of three files - a 32 bit executable, a resource WAD file built with my proprietary tools and a Metakit Database that holds literally, everything. I am trying to make the OS intelligent enough to know the limitations of the system it is running on and only permitting operations that the system specifications will support, in terms of RAM and storage.

I also got the desktop screen running with an experimental interface I have been thinking about for ten years. Instead of one global GUI page where the GUI "appears" (windows, icons, buttons, etc.) instead I have always envisaged a way where you could make a basic GUI look like a high powered real-time screen manager with windows dynamically changing underneath ... but without all the abstractions required that slow the final product down ... dirty rectangles, re-entrant GUI code driven totally by events, a huge and bloated interface manager, etc. ... so I could have the first version of Vault OS running by April 2008 instead of April 2028.

I had a very straightforward idea of how to replace something like QNX with a village idiot system that consisted of two visual layers ... one for the real time monitor display and a second window layer where the GUI appears. At runtime, the first page is laid down in the visual buffer, constantly changing in real time (server window, logging, monitors, alerts and sensors) and on top of it the more conventional GUI window is laid on top of it transparently before it is flipped to the visual page. This works! Really good, in fact! So you'll be looking at a front panel window and behind it you have a scrolling status bar, log window and sensors changing underneath it while you are in that window! Sort of how it took Bill Gates ten years and 100 megabytes of code to get working properly without flickering (actually it still flickers to this day), only I did it in 200K and about 80 lines of interface manager code and it is as smooth and flickerless as a Mode X hacker demo! My test platform is a 200 mhz 486 Pentium with a 640x480 256 color display and I got it running at 94 fps with the vertical sync on! I figured I get this system running with an LCARS-looking custom GUI, I'll really be on top of this game.

So if your neighbor gets ready to chuck a portable laptop that looks like it was unearthed by an archaeologist, tell him to give it to you, you're going to need it for your multitasking, multiuser Vault OS network.


A Thousand Good Intentions said...

Vault OS sounds really cool. I'd love to get it for my own bunker, and build a system. How would it interface with, say, a geiger counter? can you put extensive archive files on it, like books on agriculture, medicine, etc.

and most importantly, with all the fancy words you use to describe what Vault OS is and does, is it going to be something that non-computer programmers, lay persons like myself, can get up and running? or am I going to need to take some classes just to hook everyting up?

Texas Arcane said...

Everything you asked about is important to me in VaultOS.

It has to be able to view reference files from a huge library you mount on some storage device located on the internet. (Could just be a CD/DVD/ROM drive on a laptop). It has to be able to view universal "diagrams" of things you can save, edit or add markers to. (Maps, layouts, equipment, floor plans, etc.)

It has to be able to interface so easily with standard CD-715 or other radiation meters that a novice can hook it up just by plugging one audio jack into the meter panel and the other end into his soundcard microphone input. (Standard on almost all laptops)

I think the hardest part about getting it running for most people will be installing ethernet card and configuring the AUTOEXEC.BAT file. Some people may just have the card, plug it in and run the floppy software to do it for them. Or ethernet may already be installed. I will try to provide as much help as I can. Once they have a network driver running and the Vault software boots up, the program will take of everything from there on.

The part I am running right now is the failsafe screen. It's a text screen that appears with interface controls (checkboxes, combo boxes) that shows you all your current settings, what graphics card it has autoidentified, etc. If you don't touch this screen in five seconds it just continues on and boots up the main program in 640x480 256 color mode. If you do anything, even press a key in this screen, it will then wait for you to edit your configuration and press "Continue" to run the program. So no matter what happens, you can always edit the OS to be totally safe, by turning off network access, setting a safe mode for the graphics like override to VESA instead of chip specific, turn off or edit sound driver. This screen also allows people to set basic functionality, like check a box to say this machine is to act as a server and a client, this machine has a storage reference library, this machine should advertise it's services when it starts, etc.

Because I need it to run even on a Fujitsi Stylistic Tablet with no keyboard, no storage drive other than compact flash and no more than 4 megs of ram, I need this initial screen to help me conrol the boot process on-the-fly to configure it for any environment when it starts instead of in some special text edit of the preferences beforehand, etc.

There are automated programs now for USB and flash cards that will allow you to write all of the needed files for Vault OS to a single card/plugin USB and then you might need to do a little editing of the BIOS to simply make this plugged in device the boot drive when the laptop/tablet/junk machine starts. I will post as much information as I can to help with this. It's much easier than it sounds, I have just described the details of how it will work.

There are a lot of laptops nowadays you can get for free that already have ethernet installed, they have a functioning hard drive, so most of this nitty-gritty will never have to be dealt with. You can just run a PC-Install program off a floppy that will install the Vault OS, period.

I think or hope that a novice with little or no expertise beyond user level will be able to get this OS running on anything they can fish out of the dumpster over a 386 or better.