next up previous contents index
Next: Desired functionality Up: Porting cfengine to Windows Previous: Overview of cfengine   Contents   Index

Choosing a porting layer

To port cfengine to NT, we need to compile the program on an NT machine. This is only possible if the compiler understands certain UNIX system calls (i.e. pipe, fork, etc), or if we rewrite the cfengine code. The latter option would clearly require a lot of time and effort, and since the creation of the porting layers such as UWIN, CygWin and their likes, it is hardly necessary. What we needed to do was to find a porting layer that supported most (or all) of the calls needed by cfengine, and then code the rest by hand.

The porting layers we had to choose from was NuTCracker from DataFocus, OpenNT from Softway Systems, UWIN from AT&T and CygWin from Cygnus Solutions. The two first options were promptly discarded as they are both proprietary. UWIN is also proprietary but is available for free non-commercial use. We were pleased to find that CygWin is a free software solution, and we decided that if it could compete with UWIN, i.e. it supported all (or most of) the functions that UWIN did, CygWin's library would be our preferred choice. From the documentation of the two porting layers it seemed as though their functionality was just about the same. We therefore decided to try compiling cfengine with CygWin and if it worked satisfactorily we would use it. If not, we would have to test UWIN as well.



Subsections
next up previous contents index
Next: Desired functionality Up: Porting cfengine to Windows Previous: Overview of cfengine   Contents   Index
Mark Burgess 2001-10-20