NV Exec README AUTHOR Benjamin Cox ABOUT NV Exec (N-Variant Executor) is a program designed to bring an N-Variant System Framework into execution. For more information on the N-Variant System Framework itself refer to the following paper: USAGE To invoke an N-Variant System framework using NV Exec, call NV Exec with the command lines of the different variants separated by "---". For example: nvexec ENV=V1 ./v1_prog v1_arg --- ENV=V2 ./v2_prog v2_arg This command will invoke an N-Variant system with the first variant executing v1_prog with the environment variable ENV=V1 and v1_arg as its only argument. The second variant will execute v2_prog with the environment variable ENV=V2 and v2_arg as its only argument. COMPILING: 1. Unpack the tarball: #> tar -xzvf nvexec.tar.gz 2. Move into NV Exec's directory: #> cd nvexec 3. Compile the program: #> make FAQs: Q1: My binary has one or more equals ('=') characters as part of its name, how do I keep NV Exec from interpreting it as an environment variable? A: The easiest way to do this is to rename your binaries. If this isn't an option, just like executing the binary from the shell you will need to place a backslash "\" before each equals ('=') character. NV Exec will see this and interpret it correctly. The shell from which you call NV Exec may remove a single '\' from the command line argument. If this is the case (it is with /bin/sh) you'll need to put two backslashes before the equals sign to ensure the backslash is included in the arguments. For example, to run the variants "prog.v=1" and "prog.v=2" you will need to type the following command into the shell: nvexec ENV=V1 ./prog.v\\=1 v1_arg --- ENV=V2 ./prog.v\\=2 v2_arg ----------------------------------------------------------------------- Q2: One or more of my variants require that it be passed "---" as an argument, what do I do to keep NV Exec from interpreting it as the delimiter between different variant command lines? A: You will need to modify the source code to do this. Simply change the DELIMITER string found in nvexec.c to something that works for you. ----------------------------------------------------------------------- Q3: I don't want to recompile NV Exec each time I run into a conflict with the delimiter, what else can I do? A: Since this program is licensed under the GNU Public License you can easily modify the source code to dynamically set the delimiter. -----------------------------------------------------------------------