This paper explains the needs for a portable operating system, and the approach that was taken by the NetBSD pkgsrc team in order first to port their packaging system to another platform.
The situation was then reviewed, and problems with both the approach and the
implementation were identified.
Having learned from this approach, a different and more scalable approach was tried, and has had tremendous benefits. This scalable approach is explained, along with the problems and solutions in supporting multiple different operating systems, and finally the results of this approach are examined and explained.
pkgsrc now runs on AIX, BSD/OS, Darwin, FreeBSD, IRIX, Interix, Linux, NetBSD, OpenBSD, Solaris and Unixware, and some of the features of these operating systems are compared and contrasted.