3. Description of Project phases
In this section we describe the tasks which have been performed under this project on the Intel/386 platform. As already mentioned in this report, the work has been split into three main stages, named the NAT-NAT, DRA-NAT and DRA-DRA steps. Preliminary to these steps, an installation phase was needed to set up the environment and tools for this project.
Installation phase:
T1. UnixWare installation.
-
Install the complete binary code of UnixWare.
This task consisted in running the UnixWare installation procedure, from the tape we received, on an Intel/386 machine. When this was completed, we installed a second identical machine with the same configuration. Because we used a beta version of the system, we found a few problems, which were solved with assistance from Novell, Inc.
-
Perform some checks to verify that the installation is correct.
We used these two machines as our normal development machines.
-
Install UnixWare source code and setup various build environments.
A build environment was provided with the source code delivery of the system. We made a few modifications to it in order to create one build environment for each of the NAT-NAT, DRA-NAT and DRA-DRA phases.
Delivery: System running.
T2. TenDRA installation.
-
Install the TenDRA technology for UnixWare.
We obtained from DRA a complete TenDRA technology delivery for the UnixWare system. We just needed to recompile some executables since we were not running the same version of the system as them.
Delivery: TenDRA installed.
T3.Validation suites installation.
-
Install the VSX4 suite which is used to check the kernel, the main libraries and some commands of the system built in DRA-NAT phase.
The VSX4 suite was installed for the NAT-NAT version of the system. Next, a new image of the suite for the validation of the DRA-NAT system was created.
-
Install the AIMIII suite which is used to check the robustness and performance of the system.
The AIMIII suite was installed to check the native system and then the DRA-NAT one.
Delivery: Validation suites installed.
NAT-NAT phase:
T4. NAT-NAT build.
-
Compile the UnixWare build tools and libraries.
Tools such as make, cc, ld, ..., were built during this step and then used to proceed with the compilation of the libraries.
-
Compile the UnixWare kernel.
A kernel, along with dynamically loadable modules, has been produced.
-
Compile the UnixWare commands.
All the UnixWare commands have been built in this step.
Delivery: Reference system to which the DRA-NAT built system will be compared.
DRA-NAT phase:
T5. DRA-NAT build.
-
Compile the UnixWare build tools & libraries, kernel and commands using the TenDRA technology. This may show up some bugs in the TenDRA technology, as well as assembly language issues in the UnixWare source code.
The native cc compiler was replaced by a shell script which modified some options and called the tcc TenDRA compiler in DRA-NAT mode.
-
Report the build problems to DRA.
When we found problems with the tcc compiler, we isolated the problem in a few lines of C code which were provided to DRA.
-
Use temporary workarounds to complete the task as much as possible.
When it was possible, we made temporary modifications to the source code in order to bypass the problem.
-
Update the TenDRA technology with the fixes for the build problems.
When fixes were received from DRA, the tenDRA technology was updated. Then, the sources where the problem showed up were recompiled.
Delivery: Details of build problems
System to be validated.
T6. DRA-NAT validation.
-
Replace native commands and libraries by those built in DRA-NAT mode, and boot the system with a DRA-NAT kernel.
We progressively replaced native commands and libraries by the ones produced with the TenDRA technology in DRA-NAT mode. Similarly, we booted the system with a kernel in which we gradually added more and more components built in DRA-NAT mode.
-
Validate the system against the VSX4 validation suite. This will exercise some commands, usual libraries and related system calls implementation inside the kernel.
First, we ran the VSX4 validation suite on the native system. Then, we ran it on a system built in DRA-NAT mode and compared the results against those obtained with the native system.
-
Validate the system against the AIMIII validation suite. This will check the performances and robustness of the system with respect to time-sharing.
We compared the results obtained when running the suite on a native system and a DRA-NAT one.
Delivery: Validation report.
DRA-DRA phase:
T7. API definition.
-
Define the non-explicit API used by the commands. Machine dependent code issues will be addressed specifically.
We determined the basic standard interfaces upon which the interface was built. Then we extended it in order to cover a minimum set of commands.
-
Build the token libraries for the API used by the commands and libraries.
We used the TenDRA technology tools to describe and build the interface.
T8. DRA-DRA assessment.
-
Build a selected set of commands.
We built the commands which were covered by the extended interface we implemented.
-
Report problems to DRA.
-
Update the TenDRA technology with the fixes.
-
Complete the compilation of the selected set of commands.
-
Delivery: Assessment report.