8. Summary of numerical characteristics

The table below gives the number of files in the UnixWare source delivery in respect to the programming language being used. Header files are not counted.

CKernelasm
Libraries2555 (83%)278 (9%)254 (8%)
Kernel997 (94%)/67 (6%)
Commands4464 (94%)216 (5%)38 (1%)
Total8016 (90%)494 (6%)359 (4%)
Table 3. Source files / language

The following table applies to the DRA-NAT build; it gives the number of C source files and ratios of code compiled by TenDRA versus code compiled by the native compiler. We distinguish the two reasons for using the native C compiler: because of assembly language inclusions, or because of use of pragma pack directive.

TenDRAcc (asm)cc (pack)
Libraries1678 (65%)62 (2%)851 (33%)
Kernel664 (66%)216 (22%)117 (12%)
Commands4439 (99%)169
Total6781 (84%)294 (4%)977 (12%)
Table 4. DRA-NAT build: C source files / compiler

Note that for libraries, the Netware protocols are responsible for the high number of C sources dependent on the pragma pack feature.

The following numbers characterize the maturity of the TenDRA C compilation chain and the level of UnixWare source code portability, as shown by the DRA-NAT phases of our project:

KB of C source code# of changes in sources# of problems, build# of problems, validation
59,0006987
Table 5. Maturity of TenDRA & UnixWare sources portability

The table below shows the performance of the native system versus that of DRA-NAT kernel and libc library as measured by the AIMIII benchmark; the shared variant of libc is used.

# of usersjobs/min, nativejobs/min, DRA-NATdelta
33109.6108.2-0.7%
43106.7105.1-1.5%
53102.6101.3-1.3%
63100.6100.2-0.4%
Table 6. Native vs. DRA-NAT performance, AIMIII

While the DRA-DRA phase was only partially realized, it is interesting to note that 62 additional source files were so far modified to enforce the portability of code, e.g.to avoid implicit function declarations. The following tables give an idea of the volume of items which must be added to the base API to compile a limited set of commands in DRA-DRA mode.

API# of commands to build# of commands built
svid3 + xpg460057 (9.5%)
Table 7. DRA-DRA: commands built with base API
# of extensions# of commands to build# of commands built
17754346 (10%)
Table 8. DRA-DRA: extending the base API

By extension we mean the adding of a specification such as defining a function, a constant, a field inside a structure, etc.