Apollo workstations running the Domain/OS (and previously Aegis)
operating system used a proprietary backup utility (wbak - write
backup) to create tape (or disk) archives.  A complementary program
known as rbak (read backup) was used to restore these archives.
Depending on age, Apollos used 1/2" magtape, QIC-24, 8mm (Exabyte),
4mm DDS (DAT), and sometimes floppy disk, for backups.

--------------------------------------------------------------

Rbak is a public-domain implementation of the Apollo program of 
the same name.  I wrote it to avoid the chore of converting our 
moderately huge pile of wbak-format tapes to some other format 
when we abandoned Domain/OS in favor of HP-UX on our HP Apollo 
9000/400's.

In addition to my contributions, parts of the program are
based on rm(1), dump(8), and restore(8) from 4.3 BSD (a copy
of vsprintf(3) from 4.3 BSD is also provided for those systems
that do not have it), and the ANSI header support is based
on ansitape(1), by David S. Hayes.  These other contributions
are clearly marked in the code.

Most of the information about the program can be found in the
manual page, and will not be repeated here.  The new manual page
(with nroff/troff sources) has been updated from the original
preformatted manual page provided with Domain/OS.  The information
has been reorganized for clarity, more details have been provided,
errors have been corrected (where noted), and new features have
been described (along with previously undocumented features).

I have not attempted to describe wbak format in detail, because
I do not claim to understand it.  I wrote the program without
access to any Apollo documentation describing the format, and
I have only been able (and willing) to discover those aspects
of the format that apply to non-Apollo systems.  I would welcome
more detailed information if anyone (from Apollo?) could provide
it, though, so a manual page wbak(5) could be constructed and
distributed with this program.

Rbak has so far been ported to the following systems:

  cpp symbols            CPU types        operating systems
---------------      ------------------  --------------------
vax                  MicroVAX II         mt Xinu (circa 1988)
hp300                HP 9000/300         mt Xinu (circa 1990)

__hpux __hp9000s300  HP 9000/300         HP-UX 7.0
__hpux __hp9000s300  HP Apollo 9000/400  HP-UX 7.0.3 - 9.00
__hpux __hp9000s700  HP 9000/700         HP-UX 8.0.5 - 9.01

apollo               HP Apollo 9000/400  Domain/OS 10.3.4

sun                  Sun 4               SunOS 4.1 - 4.1.3

ibm032               IBM PC/RT           AOS 4.3 BSD

__386BSD__ i386      Intel 486           NetBSD 0.9

__sgi sgi            MIPS                Irix 5.3

Porting to other other systems shouldn't be too hard ...  Most of
the issues related to BSD vs. System V, big- vs. little-endian byte
orders, and alignment for RISC architectures have already been addressed.
The sources have been extensively de-linted.  I would be interested in
hearing about other ports.

To install, just type "make", and after testing, "make install".
Rbak is normally installed setuid root to support the -remote
option (for the same reason that rrestore is installed this way:
rcmd(3) needs root access to obtain a reserved port).  The program
does setuid(getuid()) to set the real and effective user ID's back
to those of the real (non-root) user ID immediately after using rcmd(3)
(or before opening the wbak file if -remote is not used), so I do not
believe there are any security holes.  If you are paranoid, and are
willing to insist that -remote can only be used by the superuser, then
rbak can be installed without the setuid bit.

The latest version of rbak can be obtained via anonymous ftp from
tesla.ee.cornell.edu, in the directory /pub/apollo.

Please send bug reports, suggestions, etc. to me ...

Robert G. Byrnes
301 Phillips Hall
School of Electrical Engineering
Cornell University
Ithaca, NY 14853

E-mail:	byrnes@ee.cornell.edu

Phone:	607-255-1460
Fax:	607-254-4565


----------------------------------------------------------------------

March 1998 - Russell Ayling (rayling@rta.nsw.gov.au)

Over the last few months I've taken Bob's code and made a few enhancements,
in particular support for QIC tapes.  These changes were based on Bob's 
rbak-2.beta-5 code; I guess this could be release 2.0

Have a look at the README.* files in the doc directory for more
information; see Changes for info on changes & bug fixes beyond 2.0.  

I understand Bob is no longer at Cornell, although e-mail still gets
through.  Try byrnes@deshaw.com
