Multicore suppport for DOS is real – partly
- Programming
- Hardware
- Operating Systems
- Retrocomputing
The Vogons post is about a binary found on an old company DVD that starts extra x86 cores while DOS keeps running on the primary core. It is not DOS gaining scheduler, threads, or symmetric multiprocessing support. It is a program taking control of the hardware directly and using the second core as a helper that runs code without the normal DOS environment around it. Commenters converged on that distinction fast. DOS has no native concept of multicore and no built-in threading model, so any useful design has to look like tiny-kernel work inside an application. Shared memory is the obvious bridge. One core keeps handling DOS, BIOS, files, and anything interrupt-heavy. Other cores do compute work, poll ring buffers, and avoid touching services that assume a single CPU world. Several people noted that this is how low-level systems already work on x86 anyway. Bring up each CPU, communicate with shared memory or inter-processor interrupts, and serialize access to code that is not SMP-safe. That made the claim feel less magical and more like a clever proof that old software environments do not fully constrain modern hardware if you are willing to own the runtime yourself. The comments also filled in useful historical nuance. DOS was more structured than the usual joke suggests. It had a process model built around Program Segment Prefixes, parent-child execution, handle tracking, and terminate-and-stay-resident programs, even if it never offered preemptive multitasking or threads. People also pointed to modern demoscene releases that already exploit multiple cores under pure DOS, which makes this less of an isolated curiosity than a niche but established technique.
If you build on bare metal or in unusual legacy environments, multicore can be added below the OS line, but you inherit synchronization, memory sharing, and device access yourself. Treat this as an OS-kernel problem, not an application portability feature, and expect emulators to be a poor test target unless they expose APIC behavior correctly.
-
vogons.org
- Discuss on HN