For further information
Do note that the
bulk of VSTa information is
at sources.vsta.org.
This includes source with change history, along with most of the
extant documentation.
VSTa Release Notes by Version
(this is included with the VSTa snapshot in "vsta/doc/features.txt")
1.6.8
- Port CVS. Found a bug in CVS. :->
- Convert main source repository to CVS.
- Fix regoff_t type to be a signed quantity... fixes bug in expr(1)
where it would not correctly indicate match length
in its colon operator.
- Convert kernel build to use vsta/src/makefile.all.
- Retool boot and doc subdirs to use "make install".
- Add support for "a" mode of fopen() (I thought I had already done this...).
- Make sscanf() family of API's declare their input string buffer "const".
- More performance tuning on "ls", also do alpha sort on -l format.
- Construct font/hfont/icon directories in MGR from latest MGR distro...
these contents were munged by the old DOS 8.3 filenaming lossage.
- With long filename support, ".foo" is now a legal filename, so remove
the .foo -> _foo mapping hack from the DOS filesystem.
libmgr.a and libbitblit.a are moved under /vsta/mgr/lib.
- Fix bug in KA9Q's generic ethernet driver... port_t versus file
descriptor mixup.
- vim.old removed.
- Added some section 6 and section 3 man page entries.
- Fix name length bug in RCS.
- select() support for the mouse driver.
- fd_rstat() added to permit access to rstat() stat strings via
file descriptor.
- Pseudo-TTY support via vsta/src/srv/pty server.
- Various bugs fixed in select(), especially with respect to reads
which do not consume all available data, and how this
is reflected in a subsequent select() for readability.
- Fix day-one bug in handling of file descriptors under execv[p]().
Also related bug in setup of FD's in init.
- stat(1) has some special syntax added so you can stat raw file
descriptors or ports open within the stat(1) process.
Probably not generally useful, but I needed this to debug
the problem with file descriptors listed right above this
entry.
- Missing file for DOS fsck code.
- Convert to vt100 as system terminal type. Emulate quite a bit more
of vt100 behavior.
- Fix onlcr emulation (which was kinda sorta working for RS-232, but not
otherwise used. Now it's pretty much fixed, and used by console
as well).
- Add "reset" wstat message to reset console state.
- ascii(1) command because I can never remember my ASCII table.
- Port of teco(1) to VSTa.
- A sample RAM disk server is available in the new vsta_contrib archive.
- vsta/etc and vsta/lib text files put under source control (duh,
should have happened a long time ago).
- Port of old rolodex(1) utility.
- "offset" field of mmap() for MAP_PHYS now lets you specify an attached
virtual address.
- Quietly cap memory at 768 megs, to avoid limits in our 1:1 mapping
area in kernel virtual address space.
- Port of ARC 5.2.1 (old PC/DOS archive format).
- File preallocation in FAT-32 (see wstat contig= command).
- Add dirname(1).
- Fix segv in usage message of purge(1).
- Support scanf family %n format for # chars read.
- All /bin shell programs under source control in vsta/src/bin/cmds.
- Added some symbol/string utilities in <symbol.h>.
- A small stty(1) emulation.
1.6.7
- Ported unzip
- Fixed output corruption problem in fmt(1)
- Fixed race condition in aborting a kernel read request which completes just
as you abort it. Could leave the server hanging.
- Fixed edge condition in signal generation from mach/cons2 which
could keep future select() clients from working.
- Fixed subtle bug where using the kernel debugger and then continuing
could corrupt the first page of console server code.
- Tweak kernel capability handling so that the default process label
isn't ever changed to reflect a "root" capability (which, being
zero-length, isn't a good label to use for ownership).
- 3c509 network driver added
- KA9Q networking generic ether driver now takes driver path as argument
- Tightened up some TLB treatment in the page allocator and
debug memory examination code.
- Fix edge condition where large reads from /tmp would complete with a
short count--many apps interpret this as EOF, instead of reading
further data. tmpfs will now always return the full read request
(assuming the data's there!).
- Ported GNU chess 5.00
- Added basic CPU profiling support--see vsta/src/lib/mcount.c.
- Alias view->vi (for read-only viewing via vim)
- Fix annoying behavior where some program exceptions either don't
get caught by the debugger ("process exited normally") or
the stack frame doesn't include the failing routine.
- Fix environment variable inheritance between processes; in some cases,
you wouldn't get variables you expected. In others, variables
would hang around in places which were not expected.
- Nice facelift to "ls" courtesy of Erik Dalen.
- Erik also contributed some section 1 man pages.
- A port of Tim Budd's latest/greatest "Tiny Smalltalk". Actually, this was
total revamp of his design, but he stopped working on it before
it was really shaken out. Check the RCS logs to get an idea of
what I fixed. :-> The result is a pretty nice little language
environment.
- Have fputc() honor unbuffered flag in IOB. Fixes problem where things
like fprintf to stderr or perror would misplace a trailing newline.
- ash missing from "shells" package due to pathname mismatch... fixed.
1.6.6
- Added FS_BLK{READ,WRITE} operations to support true sector-oriented
I/O. Offsets and counts are in units of 512-byte sectors, and
thus the 4 gigabyte offset limit of byte-oriented I/O is
avoided. vsta/src/lib/abc.c uses this, and falls back to
the old I/O primitives if it finds these not supported.
For now, IDE supports it.
- Filename completion is available in the shell. TBD... right now it's
a separate plug-in from libusr.a; should it be made a part of
getline()? When should it be active versus the regular tab
expansion function?
- TTY state (vsta/src/lib/tty.c) is now per-TTY.
- Added "dev" FS_STAT parameter to the console server, also fixed a bug
where interrupts didn't clear typeahead.
- Fixed shift key rollover--if you hold one shift, then the other,
then release the first, you'll still be shifted until you
release the final key.
- Converted current regexp package to use libregexp.a (note the new 'p').
This is made possible by long filenames in VFAT, and makes
room for...
- Ported POSIX libregex.a package.
- Ported BSD's expr.
- Added lots more details on how to implement select() in a server.
See /vsta/doc/select.txt
- RS-232 server now supports select().
- Fix output positioning so things like "make > make.log" now give you
usable output. Fixed some latent race conditions in port
duplication messaging.
- Made the shell use wait.h macros; non-zero exits don't get listed
as signal terminations now.
- Shell doesn't hang on pipe when doing some types of here documents.
- Add some options to kill, and convert to getopt().
- Create aliases for awk (=gawk), egrep/fgrep (=grep), [ (=test).
We still have cc (=gcc).
- hostname emulated in shell script using uname.
- Fix long-standing latent bug in "fstab" with no arguments.
- Ported vim-5.7... multiple edit buffers, filename completion,
lotsa good stuff. The new one is more than 3x the size
of the old one, though, so I'm going to keep the old
one available for now as "ovim".
- access for W_OK doesn't change the file's mtime any more.
- Since the output positioning fix spares us needing to do clone()
operations on each fork(), I've decided to live it up and
have /vsta/bin mounted as /bin as a standard configuration.
This means standard shell scripts which start with #!/bin/sh
will now work, too.
- Ported file utility.
- Fixed up libgcc.a so it holds all the functions needed for floats,
doubles, and long longs.
- Port of dosfsck... native filesystem checking of DOS filesystems
- Fix DLL loader so short filename conversion always works (missing
null termination)
- Fix MGR's startup so it gives a clear message and exits when it can't
attach to the mouse.
1.6.5
- Added a little flexibility in use of MAP_FIXED.
- Port of GNU Smalltalk.
- Added realpath(), gettimeofday().
- Added prototype for rename() to <stdio.h>.
- Added rmap_grab() to the <rmap.h> library routines.
- Fixed long-standing edge case bug when resource map is too fragmented.
- Added alias remove() mapping to unlink().
- Added two new partition types to disk partition support.
- Added "xkeys" stat -w message to console server, so you can disable
F<n> and arrow key escape sequence generation (if you want).
Default is they still generate their escape sequences.
(But I hate'em, so my personal config has them shut off!)
- Fix memory leak in selfs server.
- Fix "make distribution" to include new DLL's in distribution. This
manifested itself as any of your -ltermcap type programs dying
when you tried to run them. Sorry!
- Implement inbuf/outbuf counts for console. fionread() now works there.
- Always let owner (UID) to chown operations on vstafs. Otherwise you
can paint yourself into a corner, where you remove all abilities
of all users to touch the file!
- Fix some more long-filename compilation errors.
- Have DLL loader ld.shl try the truncated 8.3 filename in addition to
the full DLL name. This helps when the VSTa distribution was
loaded via a utility which only supports 8.3 filenames.
1.6.4
- Added -o to MGR's "startup" command. Lets output be written to the
named file.
- Added VFAT (long filename) support to DOS filesystem.
- Ported Plan 9's nroff/troff.
- Generalized system shared library support; converted libm,
libregex, and libtermcap.
- Allow dumping of ranges of sectors in dumpsect.
- Accomodate various flavors of RCS directory names for rcsdo. Save quite a
few
cycles in its operation.
- Port of PDP-11 emulator; runs V7 UNIX under VSTa!
- Avoid gcc lame inline support; -O isn't needed any more to correctly get
an inline compilation of getc/putc.
- Auto-flush stdout when read from an interactive stdin happens.
- Conversion of man pages to nroff -man format.
- Ported BSD's "units" command.
- vstafs, file/dir creation inherits protection of parent dir.
- less's help ('H' command) fixed.
1.6.3
- FAT-32 support.
- Fix race condition in parallel threads faulting same vaddr.
- Fix bug in execvp which would sometimes hose the last argument
- M_TIME is gone. RIP.
- Add select() emulation. select() is supported by ka9q/networking,
MGR terminals, and the console(s).
- Fix bug in grep(1), which used the wrong value of O_RDONLY.
- Fix crash when fork()'ing while another thread is blocked in
a msg_connect attempt.
- Fix hang when quitting MGR (had to hit a key on the terminal to
actually let it exit).
- MGR's $HOME/mgr.rc file now works... example in /vsta/guest.
- Port of ctags.
- Cleaned up MGR's "resetwin" command.
- Implemented ephemeral threads to support alarm(), SIGCHLD, ABC, etc.
See sched_op().
- Implemented ANSI C atexit().
- Low-level VSTa event handler API, handle_event() from <event.h>
- Fix crash when m_to_sm() fails, but a segment cleanup is attempted anyway.
- DOS now maps ".<file>" to "_<file>". Renamed sh.profile to _shrc,
rh.rc to _rhrc, mgr.rc to _mgrrc. _exrc for vim remains the same.
- Re-org of makefile structure; creation of global makefile.all.
- Move a bunch of binary ports to a new vsta/src/bin/ports subdir.
- Create a vsta/src/include, which holds the RCS-managed versions.
The "make install" phase copies header files to their
place in vsta/include.
- POSIX signal emulation. This is all the signal set handling stuff
beyond the basic signal() API (which has existed for a while).
- User and system CPU times of getrusage() are now filled in.
- clock_t and clock() are now supported.
- A <linux.h> has some stuff useful for porting Linux programs.
- testsh wouldn't wait and retry to connect with the console. In some
scenarios, this would put it in an endless silent tight loop.
- Added a fionread() to <fcntl.h> to provide the ioctl FIONREAD function.
- Ported zmodem rz/sz. Not working exactly right just yet....
- Ported svgalib and jpeg6b. Got some of the svgalib demo apps working.
- Ported PD m4 from FreeBSD.
- Ported the 8-bit color driver from mgr-0.69 into the VSTa MGR port.
Adapted it to use svgalib. Got high res working with MGR.
- Added BSD's err/warn API's.
- Added true/false/whoami commands.
v1.6.2:
- Add rcsdo/changed, my tools for working with RCS trees.
- Fix docs on rawrite'ing, also more spots missed in the great
filesystem server command line change fiasco.
- Update sample boot/menu.lst to reflect file server command line syntax.
- On usage() errors, have DOS and vstafs put out a message to syslog
as well as stderr (which, DOS being a boot server, isn't active).
- Fixed memory leak in ethernet driver
- Added memory leak instrumentation to libc malloc.c
- Added standard filesystem switch support to all filesystems
- KA9Q and proxyd now work for open/close/read/write/stat. So distributed
kernel messaging is now working. Mount remote filesystems.
Even /proc! Kill remote processes! Wheee!
- Implement support for ISA bus limitation "bounce buffers".
- Use bounce buffers in our two ISA DMA drivers--SCSI and floppy disk.
- Fix a nasty race condition in vstafs.
v1.6.1:
- Fix KA9Q so it doesn't lock up on "real" network interfaces.
- Add packet buffering to srv/mach/ne. TCP/IP is now actually
usable.
- Convert srv/dos to getopt().
- Add -B flag to dos and vstafs to set buffer cache size.
- Fix PATH inheritance bug in /bin/sh; shell scripts could
otherwise fail pathname lookup for their commands.
- Fix bug in environ[] emulation; garbage chars at end of some
strings.
- Help for kernel debugger.
- PID's now start at 1 so even the first process can be
notify()'ed.
- Enable SIGINTR/SIGQUIT generation from console keyboard. Fix
login to mark process group to TTY, and TTY mode handling
to permit updating of the TTY input signal state. Said
signals are generated with the assumed identity of the
client who set the process group.
- Add -k to rs232 server so it's easy to control whether ^Z
puts you into the kernel debugger.
v1.6:
- Conversion to gcc 2.x. Now requires an FPU to use gcc,
sorry!
- Port of gdb using a.out stabs. Symbolic source debugging
(both under gdb as well as dynamic attach) works.
- Emulations of environ[], sys_errlist[], and sys_nerr.
- Stubs for setrlimit stuff.
- Proxy functions over KA9Q TCP/IP now working.
- Ports of GNU awk, bison, flex, make, text utils, file utils.
- VSTa is Multiboot compliant; boots from GRUB loader. Boot
from under DOS is no longer used.
v1.5.2:
- vstafs fsck will now repair damage (not just find it)
- vstafs now uses ABC (Asynchronous Buffer Cache)
- Namer entries are cleared when the registering server exist
- Added "purge" command to clean up old entries in vstafs
versioning filesystem
- Prototype of proxyd for doing proxy of VSTa messages over tcp/ip
- A couple of really painful MGR bugs fixed (it's not usable)
- Taught various commands about window resizing (ls, editors, less
, termcap)
- ar won't cause vstafs to dump (renaming on top of an active
file is not safe in vstafs)
v1.5.1:
- Bug fixes for kernel preemption
- Performance: remove unneeded entries from default namespace
- First implementation of ABC, Asynchronous Buffer Cache library
- Semaphore server
- Kernel-level thread mutexes
- More MGR cleanup (less memory, slightly faster)
- vFAT entries don't kill DOS server any more
- Floating point support
- popen/pclose
- funopen/fropen/fwopen
- Ports of sc, bc, Tiny Smalltalk
v1.5:
- Fix case where "swapd -n" was still trying to push dirty pages
- Add "core" kdb command
- Performance: shaved a cycle off the shlib call path,
deleted t_qsav and reaped a whole setjmp() of writes on
each syscall
- Kernel preemption
- More man pages
- Permit I/O interruption w/o server ack for still-queued messages
- Add setsid(), and have login move each session to its own
signal group
- Permit client disconnects w/o server ack; along with I/O
interruption, this should permit a client to interrupt
out and disconnect from a moribund server. It also
solves an interesting deadly embrace in the exit of a
server where a cache MMAP reference still exists.
- Protect against buggy server operating against non-requesting
client
- Fix bug in explicit server port closing
- Fix bug in fseek() from relative position
- Revamp mouse handler
- Add port of MGR windowing system
v1.4.1:
- Speed up and bug fix event delivery code
- Add support for "bt X" in kdb to backtrace an arbitrary thread
- Make FDL memory file descriptors work as a FIFO ring
- Fix a crash where a connect request is dropped due to server death
- Protect against a debugged process clearing its debugger port_t
- Networking. /inet server, telnet daemon, remote console.
- A speed/memory tweak for tmpfs; larger single I/O as a side effect
- RCS is working (knock on wood)
- chmod() maps onto VSTa permissions (was a no-op)
- O_CHMOD supported for open() and friends
- DOS server permits switching between RO and RW permissions now
- Shadow password file
- A couple more man pages
- VSTa VM page stealing rework. Actually seems to work! (YMMV :->)
- SCSI Tape & autosense support from Mike Larson
v1.4.0:
- Significant work by Dave Hudson on performance. Also a new malloc()
which allows fast inline allocation for most common cases.
- Source reorganization; a src/ subdirectory now holds the source. Long
promised, finally delivered.
- New syscall convention using registers
- Add "include" directive to make
- Organize source and makefiles to support multiple architectures
- Added source for 68030 Amiga port
- Per-page TLB flushing where available
- DOS filesystem performance tweaks
- tfork() passes argument now
- Lots of new C library functions
- /dev/null server now supports an "always full" switch--useful for testing
- Added xargs, echo, strings
- vstafs: fix up how directories are grown
- Cleanup of pset data structure and routines
- Cleanup of adb, add :n to step over procedure calls
v1.3.3:
- /proc filesystem, ps(1) uses this, as does kill(1).
- Canonical ("line") input mode has command line editing and
history.
- Stripped a.out format uses one less block, in general.
- Fixed ld(1) bug which broke code living in the last 32 bytes of
an a.out image.
- Add cc(1) compiler, based on lcc compiler. Fast, simple,
less than optimal code generation.
- More support of read-only files in dos filesystem.
- Greatly improved stat(2) emulation.
- Major fixes in permission calculations. Now works pretty
much like it was originally described.
- Fixed namer to allow logins (actually, access to fs/root
entry for shlib startup) from other than sys.sys capability.
- Performance tweaks for vstafs.
- Removed various dead code, added more pstat(2) support for
kernel config values.
- Added $s/$S to adb to allow incremental symbol table loading
(so you can "$s /vsta/lib/libc.shl" and get shlib symbols).
- Allow VM page stealing to be active before swap space is
configured. Only stealing of unmodified pages is possible,
but this can still be a help on smaller systems.
- Port of "rh" find(1)-like tool using C syntax.
- Add ~ and ~user processing for open()
v1.3.2:
- Added TCP/IP networking with KA9Q package.
- Added ne2000 ethernet interface server.
- Added shared libraries.
- Enhanced RS-232 so you can set parity, data bits, and so forth.
- Added ps(1) command, via the pstat system call interface.
- Added CDROM filesystems.
- Converted all servers to use syslog.
- Port of "vim" vi clone editor.
- Floppy driver now works.
- i387 FPU supported by kernel--library support still TBD.
Last updated: March 28, 2001
Page Maintainer: Andy Valencia