== Frequently Asked Questions ("FAQ") about VSTa == === What is VSTa? === VSTa is a copylefted operating system created by Andy Valencia (vandys@vsta.org) and later enhanced by numerous others. It uses a microkernel organization, in which the "kernel" code is very small (~40k) and all filesystems and drivers reside in "user" mode processes. At user level it looks substantially like a POSIX-type system. VSTa is quite different than your typical free UNIX. First, it does not even try to be exactly a UNIX; areas which have proven to be problematic for extensibility or efficiency have been changed. For instance, signals are strings, as are error "numbers". Thus, VSTa is much more of a platform for experimentation with beyond UNIX ideas than simply another implementation of UNIX. VSTa was mainly inspired by two commercial systems, QNX and Plan-9. QNX provided an example and the motivation for a clean, small, and efficient microkernel organization and has the performance that any kernel (of any organization) would be proud to have (see QNX's home page). Plan-9 is the next OS from the fathers of UNIX and supports a filesystem view similar to QNX with an interesting system organization (see Plan 9's home page). VSTa pushes to incorporate the strengths of both these systems into an OS which is both useful and available in source form for experimentation. VSTa supports concepts similar to the Hurd's translators. This is because of its Plan9 inspired "filesystem view" of the system. All "servers" (a process which publishes a port for connections) export a filesystem view of their resources, so that the connection to a "hard drive device" such as (in unix-ease) /dev/hda, is no different from connecting to an actual file on a filesystem. This allows a user, with no special security, to mount a server into his own pathname space. This server could give a filesystem view of a tar file, a special proxy network connection, or anything else one wants to do. ==== What does "VSTa" stand for? ==== The "Valencia Simple Tasker". Actually, the 40K in the kernel suports kernel preemption, shared memory MIMD multiprocessors, and virtual memory. It really isn't all that simple! === Hardware and software === ==== What does VSTa run on? ==== VSTa was originally written for the i386 PC. It has since run on several platforms varying from 2 meg RAM 386sx based machines to 128 meg Pentium Pro based machines, and 68030 based Amigas. It has even run on a MIPS based Cisco router! VSTa has driver support for ST-506, IDE, and Adaptec 1542[bc] disk interfaces. It supports floppy drives, MGA and CGA monitors, RS-232 interfaces, parallel interfaces, NE2000 and 3c509 LAN cards, and bus or serial mice. Under SCSI, it also supports CDROM. VSTa has a port to the Amiga with 68030. It supports the display, keyboard, and SCSI disk. While operational, it is not being actively maintained. ==== Does it network? ==== An initial port of KA9Q has been done. It uses the ne2000 or the 3c509 driver and can be used to telnet and FTP. Some code has been written to provide a /inet server so that, for instance, a telnetd can be run to allow logins via the net. A server has also been written so that any VSTa message operation can be run transparently over IP. === Installation and administration === ==== How do I get VSTa and what is the current version? ==== The current version of VSTa is (1.6.8). It is available at: * http://vsta.sf.net/ ==== How do I boot it? ==== VSTa uses the Multiboot standard, and can be loaded from any bootloader which uses that standard. The most common is GRUB ("GRand Unified Bootloader), which is available at http://www.gnu.org/software/grub/. GRUB loads the kernel image and any "boot servers" (which are like any program running under VSTa, except they exist as processes at boot time, so they can provide disk I/O and such without having to build this into the kernel). For the nuts and bolts of doing this, see the file vsta_*.readme on the FTP site. This will point you to the files "license" and "readme" in the vsta.tz compressed archive. These provide information on the terms and conditions for use of VSTa. Then it points you to doc/roadmap.txt in the same archive, which tells you how to boot up the system. ==== Ok, I booted it, but how do I find out more about its design? ==== The VSTa WWW Home page can be found at: http://www.vsta.org/ Most of the actual content is stored within the VSTa Wiki, linked to from the web page. ["VSTa"] indexes to the available documents (you are welcome to add to it!). Finally, the code itself has relatively consistent and numerous comments. ==== I boot up, and see the disk blink, but my screen doesn't show anything ==== The default in boot/boot.lst is for a CGA system. MGA cards place text at a different address; add the -mono flag to the "cons" server. The kernel debugger also needs to be flagged this way; you need to edit the file os/mach/dbg_ibm.c and then rebuild your kernel. ==== How do I make a vstafs filesystem? ==== (Gary Shea, shea@xmission.com) [[br]] For DOS 6.2, there are two possible partitions on a disk: the main one, and a secondary one. It is possible to create logical partitions in the secondary partition to subdivide that partition even further. To see what partitions you have available, add a line of the form: disk/wd /wd to the /vsta/etc/fstab file and reboot, or use the command $ mount disk/wd /wd to accomplish the same effect temporarily. Look in the /wd directory for the names of available partitions. Supposing you wish to use the partition wd0_dos1, use the command $ stat /wd/wd0_dos1 to find the exact size of the partition. Divide that number by 512 to get the number of sectors, then the command $ mkfs_vfs /wd/wd0_dos1 number_of_sectors will initialize a vstafs file system on that partition. Now you can run the filesystem server: $ /vsta/boot/vstafs /wd/wd0_dos1 fs/vfs Finally, you must map the namer pathname fs/vfs into the root heirarchy with a mount command: $ mount fs/vfs /vfs If you want the filesystem mounted at boot time, find the vstafs command in the /vsta/etc/inittab and correct it to your device name (note the different syntax when portnames are used); uncomment or introduce the necessary mount line in the /vsta/etc/fstab file. ==== What should I do if/when VSTa crashes? ==== To help us fix the bug that caused it you should send a bug report. There's a paper describing how to do just that here. You should also take a look at the paper on crashes under the VSTa documentation.