HN Debrief

CP/M-386 – CP/M for 386 protected mode, derived from CP/M‑68K

  • Programming
  • Operating Systems
  • Open Source
  • Hardware
  • Developer Tools

The repo is an early-stage attempt to build a CP/M-like operating system for 386 protected mode by starting from CP/M-68K instead of the better-known 8-bit or 8086 branches. Right now it is mostly a booting kernel with VGA and serial console support, plus a 32-bit protected-mode design and a Ring-3 Transient Program Area, but no storage, USB, network, or other real drivers yet. A few commenters had to untangle the obvious confusion here. CP/M-86 already existed, and there were later Digital Research systems for 286 and 386 machines, but they were different products with different goals. The choice of CP/M-68K makes sense because that line was written largely in C, which is far easier to revive today than the assembly-heavy 8080 and 8086 versions.

Treat this as a niche hobby OS, not a practical platform. The useful signal is the design lineage around protected mode, multitasking, and compatibility hacks that still shapes how platform transitions succeed or fail.

Discussion mood

Positive and nostalgic. People liked seeing a non-AI retrocomputing project, but the stronger mood was fascination with how much more capable Digital Research systems were than the market remembers, mixed with frustration that compatibility lock-in and Microsoft tactics beat technically better designs.

Key insights

  1. 01

    Concurrent DOS was real and deployed

    It was not vaporware or a dead-end lab exercise. Digital Research shipped multiuser and multitasking descendants of CP/M that ran in production, including government desktops and retail systems, which makes this repo feel less like fantasy and more like a revival of a line that once solved real problems on commodity PCs.

    If you want to mine old systems for ideas, look past the headline brands. There is useful prior art here on cheap multiuser computing, DOS isolation, and compatibility layers that modern lightweight systems still grapple with.

      Attribution:
    • lproven #1
    • codebje #1
    • rswail #1
  2. 02

    CP/M-68K is the practical codebase

    The 68K branch is attractive because it was largely written in C, while the famous CP/M-80 and CP/M-86 lines were much more tied to assembly or PL/M. That changes the project from archaeology into something a modern hobbyist can actually compile, port, and extend without rebuilding an extinct toolchain first.

    When reviving legacy software, language choice is often more important than brand lineage. Pick the branch with the least toolchain friction, not the one with the most name recognition.

      Attribution:
    • skissane #1
    • Brian_K_White #1
  3. 03

    FlexOS is the more modern missing ancestor

    People who worked on the Digital Research side pointed to FlexOS as the more interesting system to study. It had a protected-mode 286 design, a real-time kernel, TCP/IP, DOS compatibility, and a cleaner API built around structured system call tables. The source is missing, but documentation and build material survive, so it is still a plausible target for reimplementation.

    If this repo sparks interest, the bigger opportunity may be reconstructing FlexOS from surviving docs. That path would teach more about clean protected-mode OS design than cloning classic CP/M behavior alone.

      Attribution:
    • bloovis #1 #2
    • dfawcus #1
  4. 04

    Booting is not the same as drivers

    The apparent contradiction in the README is normal kernel work. A multiboot-capable loader or firmware can pull the kernel in from disk, then the kernel starts with no native storage driver of its own. Early OS milestones often look odd because bootstrapping and runtime hardware support are separate problems.

    Do not read too much into sparse hardware support in early kernel repos. For project risk, separate 'can be loaded' from 'can operate devices after boot'.

      Attribution:
    • jmmv #1
    • anonymousiam #1
  5. 05

    Protected mode did not force flat memory

    386 protected mode made flat 32-bit addressing easy, not mandatory. x86 segmentation was still available, and that matters because it explains why people even asked whether this behaves more like bank-switched DOS memory schemes or a flat model. The likely answer here is flat memory, largely because the CP/M-68K lineage and Unix-era ports made that the path of least pain.

    If you evaluate old x86 OS designs, do not collapse 'protected mode' into a single memory model. The address model still drives porting difficulty, security properties, and how much old software baggage you inherit.

      Attribution:
    • lproven #1
    • ButlerianJihad #1

Against the grain

  1. 01

    MS-DOS won on features before lock-in

    One pushback to the Digital Research nostalgia was that PC and MS-DOS 2.0 made a decisive practical leap with a Xenix-inspired hierarchical filesystem and APIs that application developers preferred. In that framing, CP/M-86 was not just unlucky. It was also too tied to older assumptions and too specific to non-IBM environments right when the IBM PC was becoming the market center.

    Do not explain platform losses only through distribution power or dirty tricks. Check whether the rival also crossed a usability threshold that made third-party software easier to write and sell.

      Attribution:
    • p_l #1
  2. 02

    Protected-mode DOS was not what users wanted

    The cleaner technical story does not erase market reality. Several people argued that through the early 1990s, serious users still got more work done in DOS applications than in Windows, and the winning move was not a pure protected-mode replacement but Windows 95 carrying old DOS software forward. That makes this whole branch of history look less like a missed obvious upgrade and more like a market that demanded continuity.

    When planning migrations, assume users value existing applications more than architectural elegance. Compatibility that preserves daily workflows can beat a better core design for years.

      Attribution:
    • flomo #1 #2
    • adrian_b #1
    • Zardoz84 #1

In plain english

386
The Intel 80386 processor generation, which added 32-bit operation and stronger protected-mode features to x86 PCs.
Concurrent CP/M
A multitasking and multiuser descendant of CP/M that could run multiple sessions on one machine.
Concurrent DOS
A later Digital Research operating system line that combined DOS compatibility with multitasking and multiuser features.
CP/M
Control Program for Microcomputers, an early operating system family for microcomputers that predated MS-DOS.
CP/M-68K
A version of CP/M for Motorola 68000-family processors rather than Intel 8080 or 8086 chips.
CP/M-86
A 16-bit version of CP/M for Intel 8086-class processors.
DRI
Digital Research, Inc., the company behind CP/M, DR DOS, Concurrent DOS, and related operating systems.
FlexOS
A modular real-time operating system from Digital Research that supported protected mode and DOS compatibility on some hardware.
Multiuser DOS
A Digital Research descendant of Concurrent DOS designed to support multiple users and DOS applications on one PC.
OEM
Original equipment manufacturer, a company that builds products or systems sold under its own or another brand.
PL/M
Programming Language for Microcomputers, an Intel systems programming language used in early CP/M development.
protected mode
An x86 CPU operating mode that supports memory protection, multitasking support, and access to more memory than real mode.
Ring-3
The least-privileged CPU protection level on x86, typically used for user programs instead of kernel code.
TCP/IP
Transmission Control Protocol and Internet Protocol, the core networking protocols used on the Internet.
VGA
Video Graphics Array, a common IBM PC display standard that includes a text-mode screen buffer.
Xenix
A Microsoft-branded version of Unix used on microcomputers in the early PC era.

Reference links

Digital Research history and compatibility

FlexOS and surviving documentation

Windows and PC platform transition history

Older utilities and side references