Pat Villani | |
---|---|
Born |
Pasquale J. Villani 18 April 1954 Nocera Inferiore, Italy |
Died | 27 August 2011 Freehold Township, New Jersey, USA |
(aged 57)
Education | Master's in Electrical Engineering from Polytechnic Institute of New York; Master's in Project Management from George Washington University |
Known for | author of DOS-C, the FreeDOS kernel |
Call-sign | WB2GBF |
Pasquale "Pat" J. Villani (18 April 1954 – 27 August 2011) was an American computer programmer, author, and advocate of free software, best known for his creation of DOS-C, a DOS emulator written in the C language and subsequently adapted as the kernel of the FreeDOS operating system and a number of other projects including DOSEMU for Linux. He used to sign his edits with "patv".
Villani had already been working on a DOS-like operating system for use in embedded systems for some while before the advent of FreeDOS.
His efforts started when he developed an MS-DOS 3.1-compatible interface emulator to write device drivers in the C high-level language instead of in assembly language, as was the usual approach at that time. This interface emulator grew into a minimal operating system named XDOS around 1988.
He added an IPL to set up a boot environment before loading the actual operating system and developed an MS-DOS-compatible frontend API to applications. In contrast to MS-DOS, which is not designed to be reentrant, the system calls of his operating system were, which is often a requirement for multitasking and real-time applications in embedded systems. This system was named NSS-DOS and also offered commercially.
When one potential contractor sought to use the OS in a system equipped with Motorola 680x0 processors instead of Intel x86 processors, for which the system was designed originally and which utilize different instruction sets and memory models, Villani was able to redesign his system to become portable across a range of different compilers and target environments. This move to a completely different target platform, while losing binary compatibility with existing applications, would have required a complete rewrite from scratch had his system not been written in a high-level language such as C, which allowed him to reuse large parts. His new DOS/NT used a microkernel architecture with logical separation of file system, memory and task manager.