9 comments

  • BirAdam5 hours ago
    &gt; The truth is that there’s no way we can technically describe a PC Compatible now - or, honestly, ever. If you sent a modern PC back to 1981 the media would be amazed and also point out that it didn’t run Flight Simulator.<p>For historical context, a PC compatible is a machine that can run a DOS that is compatible with PC-DOS and that can run applications for the IBM PC running PC DOS. This was vital to the success and failure of many companies and thus we can absolutely say what a PC compatible was. The PC-compatible standard was largely replaced by WinTel compatible in the late 1990s. Modern machines can still run Win32 and applications written for Win32, and thus are WinTel compatible.<p>Of course, being WinTel compatible matters less than ever before. Much of the software people care about is now either browser-based or open source and compiled for multiple targets. We also now have dynamic recompilers that are quite good, and therefore even being compiled for the target is... well, not as important.<p>We need some new kind of standard that identifies general purpose, superscalar CPU with large cache and SIMD, a PCIe controller with many lanes, a memory controller for DDR4&#x2F;5 paired with UEFI and either a modern GPU or a decent NPU (or both). Currently, this describes a few RISC-V machines, many ARM machines, and most AMD64 machines after about 2018. Maybe this is something like 5th Generation Industry Standard Architecture or 5SA? Whatever the industry does or doesn&#x27;t call it, it&#x27;s certainly not PC compatible in any sense.
    • Someone4 hours ago
      &gt; For historical context, a PC compatible is a machine that can run a DOS that is compatible with PC-DOS and that can run applications for the IBM PC running PC DOS.<p>Historically, a lot more was required in practice. For example, programs that use the BIOS for screen I&#x2F;O are slow, so most programs wrote directly to video memory. Because of that, video memory had to be laid out identically and had to be located at the same address.<p>See <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;IBM_PC_compatible#Non-compatible_MS-DOS_computers:_Workalikes" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;IBM_PC_compatible#Non-compatib...</a> for other examples.
      • BirAdam2 hours ago
        True. Also, timing and so on. The thing is &quot;can run applications&quot; was a rather load carrying part of my statement.
    • trollbridge4 hours ago
      A modern PC can most certainly run Flight Simulator. Most PCs still have an EFI that provides a CSM. And most GPUs default to running a program that provides VGA (and thus CGA) compatibility.<p>What&#x27;s even more surprising is that it functions properly, other than a timing issue with the World War I Ace mode.<p>If you want to run FS 2.11 or earlier, you will need to get a cracked copy, since its copy protection requires using a diskette version. But &quot;PC compatible&quot; has never required diskette drives - the original IBM PC included an edition with no diskette drives at all.
      • fsckboy2 hours ago
        (I&#x27;m personally more on your side of the argument than not, but need to point out literal details of the &quot;standard&quot; that is under dispute)<p>the article says if we transported back to the early 80&#x27;s people would have said &quot;it doesn&#x27;t run Flight Simulator&quot;, so what that would have meant?<p>the original Flight Simulator for the IBM PC--first independently produced, then purchased by Microsoft--booted itself directly from the floppy; meaning, you had to reboot in order to run it; and it had its own &quot;custom operating system&quot; or really no operating system at all, something more like a kernel, or just an app.<p>yes modern &quot;PC compatibles&quot; do have some means of running that old software, but it won&#x27;t work out of the box atm.
        • toast02 hours ago
          You would presumably supply usb floppy drives on the way back in time, and then you&#x27;d be alright. And an ethernet NIC with 10base2 and AUI for thicknet, cause twisted pair wasn&#x27;t typical that early.<p>Network booting PCs happened a lot later, but if the booter used bios calls to access the disk, you could probably netboot that too.
      • BirAdam2 hours ago
        On the Intel side of things, Skylake retired VGA support.<p>Modern UEFI implementations do not universally support BIOS, which means things like <a href="https:&#x2F;&#x2F;github.com&#x2F;FlyGoat&#x2F;csmwrap" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;FlyGoat&#x2F;csmwrap</a> are required.<p>Also, timing problems are a major reason for the transition to &quot;WinTel&quot; rather than PC-compatible... along with things like 8bit ISA support.
    • the__alchemist4 hours ago
      This is a fantastic explanation! I&#x27;ve been thinking about software&#x2F;binary compatibility lately. I think even before crossing the CPU arch barrier you mention, we could cross the OS barrier. Windows apps are generally mutually compatible. Within Linux is dicier. I&#x27;ve found some rules of thumb (compile on the oldest version you wish to support), with some cross-distro compat.<p>Some things like MUSL and manylinux are nice! I would love to see all OS barriers to compatibility knocked down. Or at least be able to make a single &quot;Linux&quot; binary. The CPU type barrier is obviously larger, but I think the OS one shouldn&#x27;t exist.<p>Maybe we would need standard abstractions for things the OS provides like file system, date&#x2F;time, allocator, threads, networking. The things programming languages abstract over in their std libs, but at an OS&#x2F;compile level.
      • thewebguyd2 hours ago
        &gt; Or at least be able to make a single &quot;Linux&quot; binary.<p>Isn&#x27;t this what Flatpak&#x2F;Snap&#x2F;AppImage try to solve?<p>Though lately they may not even be necessary. There&#x27;s a lot less difference between distros now than there used to be in the past. All the majors seemed to have coalesced around the same userland stack, largely thanks to SystemD. If you ship something for Ubuntu LTS, there&#x27;s a really good chance it&#x27;ll also work on Fedora, Debian, Arch out of the box.
      • ElectricalUnion4 hours ago
        jart Cosmopolitan. It combines a polyglot format (the αcτµαlly pδrταblε εxεcµταblε is simultaneously a Windows Portable Executable and a Thompson Shell script) and a polymorphic libc that works in all major OSes under both amd64 and arm64.<p>It&#x27;s a single binary.
        • trollbridge4 hours ago
          And produces binaries that are smaller than a typical single-OS build.
    • cogman101 hour ago
      &gt; many ARM machines<p>ARM that supports UEFI? I wouldn&#x27;t say that&#x27;s many devices. All the other support is there, but the UEFI is notably missing (at least at the consumer level). That&#x27;s part of the reason why it&#x27;s almost impossible to buy an ARM linux laptop that doesn&#x27;t have some hacky vendor specific kernel.
    • giancarlostoro3 hours ago
      If that&#x27;s the case... You could send any machine with FreeDOS installed and really blow their mind, or at least I would think so? I&#x27;m not sure how well maintained FreeDOS is for more modern hardware. I assume it would still install and run.
      • BirAdam2 hours ago
        The primary issue is that even with FreeDOS, if you&#x27;re not using 8bit ISA, PC BIOS or compatible, and if your CPU is too fast, it wouldn&#x27;t meet the standard of running PC DOS applications in any usable sense.
    • littlestymaar2 hours ago
      &gt; Modern machines can still run Win32 and applications written for Win32, and thus are WinTel compatible.<p>This is being repeated continuously but in reality this isn&#x27;t the case in practice: Half if not more of the videogames I owned in the 90s stopped working on Windows XP, and some of those which kept working also failed under Vista&#x2F;Win7. If you sent a modern PC to the media from 1990, they would indeed notice that their favorite game cannot run on it, despite the general compatibility effort from Microsoft.
  • aldousd6661 hour ago
    In the 1980&#x27;s, computer software was sold in catalogs and magazines. Users had either of three platforms: A Macintosh, a PC-Compatible (probably x86), or a Commodore&#x2F;Amiga. So these are the three categories were there to help you order the correct version of oregon trail. They were really a name for the operating systems, not the specifics of the hardware, at least back then they were.
    • whobre1 hour ago
      And Atari…
      • aldousd66648 minutes ago
        I never saw Atari software for sale in the same magazines, but I&#x27;m sure it was available somewhere.
  • amiga3865 hours ago
    Apparently this is Matthew Garrett&#x27;s blog. It contains one article.<p>Looking at his more common blog, <a href="https:&#x2F;&#x2F;mjg59.dreamwidth.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;mjg59.dreamwidth.org&#x2F;</a> ... it says he&#x27;s moved to this one.<p>Any particular reason he&#x27;s no longer using Dreamwidth?
    • petcat4 hours ago
      Just glancing around, dreamwidth is hosted on AWS, and this blog looks like it&#x27;s hosted on mythic-beasts.com which is a uk-based hosting provider. No idea if that&#x27;s it.
      • liotier4 hours ago
        It is mjg59 - he posted it on January 4th. <a href="https:&#x2F;&#x2F;bsky.app&#x2F;profile&#x2F;mjg59.eicar-test-file.zip&#x2F;post&#x2F;3mbmsh2oic22e" rel="nofollow">https:&#x2F;&#x2F;bsky.app&#x2F;profile&#x2F;mjg59.eicar-test-file.zip&#x2F;post&#x2F;3mbm...</a>
    • jrmg3 hours ago
      What does this mean?<p><i>Most Planets should be updated already (I&#x27;ve an MR open for Planet Gnome)</i>
      • johannes12343212 hours ago
        &quot;Planets&quot; were public feed aggregators collecting RSS (RDF, Atom) feeds for blogs on a specific topic, so you can go to a &quot;Planet&quot; and find all recent blogs by all people from that community. Thus a place to discover recent things, without following everybody individually.<p>In this case it is referencing <a href="https:&#x2F;&#x2F;planet.gnome.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;planet.gnome.org&#x2F;</a> which collects many Gnome people&#x27;s blogs. And the statements tells us that the subscription was sulfated, so users of &quot;Planet Gnome&quot; don&#x27;t have to do anything, but may continue consuming from there.
  • 1970-01-011 hour ago
    &gt;So, what’s a PC compatible? No modern PC will run the DOS that the original PC ran.<p>Now define &quot;modern PC&quot;. Oh boy, we&#x27;ve hit a dependency loop.<p>PC compatible means your software runs without error on MS-DOS. That&#x27;s the definition I&#x27;ve used for 3 decades, and it should not change due to bloggers&#x27; retrospective. Of course, 100% IBM PC compatible is a level above this, when your software works exactly as if it were running inside an IBM PC.
    • mjg5934 minutes ago
      What software? The Apricot ran DOS but didn&#x27;t implement a full PC-compatible BIOS, so some software would work and some wouldn&#x27;t. Even back in 1984 people didn&#x27;t call it a PC compatible.
  • analog315 hours ago
    &gt;&gt;&gt; When BIOS interfaces weren’t sufficient they hit the hardware directly - and even if they weren’t doing that, they’d end up depending on behavioural quirks of IBM’s BIOS implementation.<p>This happened with the Apple II as well, and made it impossible for Apple to update their system. Even minor changes, from the Apple II to the IIe and IIc, broke some apps. And if an app broke, it was presumed to be the hardware maker&#x27;s fault.<p>There was a book entitled &quot;what&#x27;s where in the Apple II&quot; that documented all known variable locations and entry points in the Apple ROM and DOS. For instance people would just branch directly into weird places in the ROM, or poke directly into memory.
  • dfajgljsldkjag3 hours ago
    The section about the transition from BIOS to UEFI really sums up why hardware support is such a nightmare to maintain. I remember dealing with those old IRQ conflicts back in the day, and I certainly do not miss it. It is accurate to say that a PC is just whatever we agree it is because the technology has drifted so far from the original design.
  • Manuel_TPC3 hours ago
    Fantastic article! You nailed the core irony perfectly: the term &quot;PC Compatible&quot; was almost a misnomer from day one, because even in the heyday of cloning, a &quot;compatible&quot; machine could choke on software that poked the hardware directly or relied on the quirks of IBM&#x27;s specific BIOS. True compatibility was always a spectrum, not a binary state.<p>It’s a great example of a technological anachronism—a term that outlives its original meaning. We have plenty of those, for example, we still &quot;dial&quot; a phone number on a keypad, &quot;hang up&quot; a call without a physical receiver to hang, and save a file to a &quot;desktop&quot; that’s often just a digital metaphor.<p>So really, &quot;PC Compatible&quot; fits right in: a useful, socially-agreed-upon label that’s more about practical expectation than technical purity. Thanks for the insightful read—it definitely brought a smile to my face. Cheers
  • bitwize3 hours ago
    Even back in the day, computers which ran the PC versions of Lotus 1-2-3 and Microsoft Flight Simulator without issue were judged &quot;100% PC compatible&quot;.<p>These days, a PC is pretty much defined as a computer that runs Windows.
  • DDayMace6 hours ago
    Great article