Archive Index (1999-2012) | 2013-current at | About  

GPL’d DOS workalike adds features

Apr 27, 2007 — by LinuxDevices Staff — from the LinuxDevices Archive — 5 views

[Updated 3:20 PM] — A fairly new GPL-licensed 16-bit, real-time, networkable, DOS-workalike operating system appears to be under intensive development. “NXDOS” boots from a floppy, and has recently gained a new device driver design with some hardware autodetection capabilities.

(Click for larger view of NXDOS screenshot)

Spread the word:
digg this story

DOS, short for “MS-DOS” (Microsoft Disk Operating System) is a venerable operating system that powered most of the first personal computers (PCs) sold by IBM, Compaq, and others (IBM's customized version of MS-DOS was called “PC DOS”). DOS is still used in some legacy industrial computing applications, and some single-board computers continue to ship with versions of FreeDOS, another free DOS clone licensed largely under the GPL. However, DOS in general is in steady decline, at least according to results from LinuxDevice's freshly published 2007 reader survey report.

Which OSes have been in your (company's) embedded designs during the past two years?
(Click to enlarge)

According to a recent FreeDOS list discussion thread, NXDOS can currently detect some hardware at bootup, including the ADLIB sound card shown in the screenshot below.

NSDOS boot-up screenshot
(Click to enlarge)

Asked why he started work on NXDOS, project founder Christopher Evans replied, “The project started initially as an educational project to teach myself how to write an OS. It may be re-inventing the wheel, but that is how new innovations come about — by exploring what others have already done and enhancing off that.”

The 32-year old programmer added, “I have been writing DOS console programs for over 10 years. I developed software for the fidonet bbsing scene during the 90's (mostly sysop maintenance).”

According to documentation files in the NXDOS source code, NXDOS was born in 1992, shortly after Evans took possession of an IBM-PC, “an 286XT Monochrome w/ dual 360K floppy drives.” He began by disassembling MSDOS 2.1 and 3.1 “using nothing but debug program,” he wrote.

Evans appears to have set the project aside for a time in the late 90s, when he obtained a GED before going on to take computer programming, engineering, and astronomy courses at a local community college. Evans also lists formal training in fork-lift operation and Cisco networking on his resume, along with jobs in telemarking and amusement park and ballpark food service.

Initially, Evans conceived NXDOS as the OS for a “low cost SVGA 386 4MB PC modem networkable handheld unit fully capable of running DOS programs and accessing 1.44MB floppies and PCMCIA cards.” However, budget limitations apparently led to a software-only approach, at least for now.

By 2005, Evans had completed a bootloader, kernel, command interpreter, floppy installer, fdisk partition tool, disk volume labeler, NE2000 Ethernet boot program, interactive password application, “maketime” build tool, and “fossil” serial port communication driver, and compiled a “UML model” of the OS (shown below). He then released NXDOS under the GPL, writing, “Hopefully, with many minds this OS will be what it should be.”

(Click to enlarge)

Asked about the current state of NXDOS, Evans replied, “I would say it is roughly 60 percent percent complete. I just completed the majority functions in the dosmem library for managing the memory arena above the kernel image. It still needs work done to the filesystem and service interrupt handlers.”

Evans added, “Another of the goals is to make the kernel a reduced memory footprint that is packed with functions that the embedded hardware people could use. If you already inspected the source you'll have notice that USB and networking drivers are not completed.”

Recent accomplishments from the current changelist include:

  • APR-22-2007 17:10 — Finished nextmcb/firstmcb/minit/getlastarena/mmconfig in DOSMEM.ASM. Needs setup_arena(), malloc amd mfree.
  • APR-10-2007 22:00 — Using a new device driver design. wrote CLOCK$ handler, now sets dos time values from INT 1A Real time clock from BIOS
  • MAR-22-2007 22:00 — added mbr loader for first IDE drive
  • MAR-05-2007 15:00 — USB4DOS code library added…

Items from Evan's (possibly out-dated) to-do list include:

  • Built in networking with routing functions and TCP/IP stack interfaced through fossil driver
  • Network packet handlers for POP3/SMTP/HTTP/FTP server amd client. I did like how the MSN connect menu poped up over the clock, would be cool to snook that design for the vp/2 shell
  • PHP to augment batch file scripts. The idea being be a script engine, that way dos box in vp/2 can be a script and not built into the code taking up precious stack space
  • Functional Vga support
  • Rudimentary multi-tasking; at-least two task at once
  • a CRON scheduler

Evans concluded, “I honestly didn't think [NXDOS] would be attracting as much attention as it is receiving, since most people do think of 'DOS' as obsolete these days.”

The project homepage can be found here.

Thanks to Marcus Dornier for letting us know about NXDOS

This article was originally published on and has been donated to the open source community by QuinStreet Inc. Please visit for up-to-date news and articles about Linux and open source.

Comments are closed.