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.
C | Kernel | asm | |
---|---|---|---|
Libraries | 2555 (83%) | 278 (9%) | 254 (8%) |
Kernel | 997 (94%) | / | 67 (6%) |
Commands | 4464 (94%) | 216 (5%) | 38 (1%) |
Total | 8016 (90%) | 494 (6%) | 359 (4%) |
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.
TenDRA | cc (asm) | cc (pack) | |
---|---|---|---|
Libraries | 1678 (65%) | 62 (2%) | 851 (33%) |
Kernel | 664 (66%) | 216 (22%) | 117 (12%) |
Commands | 4439 (99%) | 16 | 9 |
Total | 6781 (84%) | 294 (4%) | 977 (12%) |
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,000 | 69 | 8 | 7 |
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 users | jobs/min, native | jobs/min, DRA-NAT | delta |
---|---|---|---|
33 | 109.6 | 108.2 | -0.7% |
43 | 106.7 | 105.1 | -1.5% |
53 | 102.6 | 101.3 | -1.3% |
63 | 100.6 | 100.2 | -0.4% |
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 + xpg4 | 600 | 57 (9.5%) |
# of extensions | # of commands to build | # of commands built |
---|---|---|
177 | 543 | 46 (10%) |
By extension we mean the adding of a specification such as defining a function, a constant, a field inside a structure, etc.