Welcome to PDOS (Public Domain Operating System) and PDPCLIB (Public Domain Project C Library)

There are two major components to the PDOS project.

The most commonly used component, thanks to GCCMVS (port of GCC to IBM mainframe) is PDPCLIB which is a public domain C runtime library which you can link your own C programs against to produce executables with no licencing restrictions (even if you use a compiler, commerical or non-commercial, that does have licencing restrictions). PDPCLIB works on DOS, OS/2, Win32, PDOS, MVS (mainframe) and CMS. The library conforms to the ISO/IEC 9899:1990 (aka ANSI X3.159-1989 aka C90 aka C89) standard. It has no extensions so is particularly good at finding out if your code is truly portable.

Secondly there is an operating system, with a user interface as simple as MSDOS, but behind the scenes the story is quite different. There are 2 completely different APIs supported (MSDOS and MVS). The MSDOS API is supported on both the 16-bit 8086 and 32-bit 80386. On the 80386, it isn't really the MSDOS API, it is a theoretical 32-bit MSDOS API (note that while the API and applications are pure 32-bit, it internally switches to 16-bit in order to be able to use the BIOS, a fact that the application and end user is completely unaware of). The MVS API is supported on the 24-bit S/370 and 31-bit S/390 IBM mainframe hardware. The 31-bit S/380 from Jujitsu is also supported. The 16-bit MSDOS API and the 24/31-bit MVS API are both able to run a subset of real-world applications that were targetted to the original environment that they are in some ways a clone of.

Note that a 3rd API - Posix - is expected to be implemented at some point, starting with the S/3x0 hardware. After which, a port of NetBSD may be possible. It is hoped that programmers from around the world who subscribe to this worldview will make themselves available to push this project forward.

You can find documentation for PDOS and PDPCLIB in text files in the downloadables here.

There is also some miscellaneous programs with source code there, including OZPD (snippets of PD code), PDPZM (public domain zmodem), PDCOMM (PD communication routines for DOS, OS/2 and Windows), BBS-related stuff (Devil Dialer C, RSEND, Tobruk), RZSZPE - a port of rzsz (zmodem) to DOS and OS/2, and PDCRC - a set of CRC routines.

Most discussion of PDPCLIB takes place here, amongst mainframe enthusiasts. And there is a discussion group for PDOS here. PDOS also has an IRC channel - irc.freenode.net #pdos . PDOS is also mentioned in the alt.os.development newsgroup. Anyone interested in making (explicitly public domain) enhancements to either component is most welcome. Note that although this is a free project and thus is expected to rely on volunteer programmers, I am willing to pay people a small amount - US$1/hour (instead of the normal US$0/hour) to work on this project. Note that I am an individual, not a company.


E-mail Paul Edwards here.