Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Which operating system versions are supported? #4

Closed
pts opened this issue Aug 24, 2020 · 1 comment
Closed

Which operating system versions are supported? #4

pts opened this issue Aug 24, 2020 · 1 comment

Comments

@pts
Copy link

pts commented Aug 24, 2020

What is the minimum operating system (or kernel) version to run Cosmopolitan executables?

I understand that it needs an operating system which is able to run amd64 executables.

Some more details I've figured out:

  • Linux: For example, Debian 4.0 Etch (2007) running Linux kernel 2.6.18 should work. Actually, amd64 support appeared earlier in the Linux kernel (in 2.4), but Debian didn't have it until Debian Etch 4.0. Ubuntu had amd64 support since the beginning, i.e. from Ubuntu 4.10 Warty Warthog (2004).
  • macOS: Mac OS X 10.4 Tiger (2005) or later, the variant built for amd64.
  • Windows: Windows Server 2003, Windows XP 64-Bit Edition (2003), Windows 7 (2009) 64-bit or later.
  • FreeBSD: FreeBSD 5.1 (2003) or FreeBSD 5.2 (2004) or later, the variant built for amd64. It should be checked whether FreeBSD 5.1 works.
  • OpenBSD: OpenBSD 3.5 (2004) or later, the variant built for amd64.
  • DOS: ?? https://justine.storage.googleapis.com/ape.html has the MS-DOS icon, but there are no instructions on how to run (e.g. emulator.com) on MS-DOS. It certainly doesn't work on DOSBox 0.74-3, because DOSBox doesn't emulate an amd64 CPU. Does it work on FreeDOS running inside QEMU? If yes, could you please share an example qemu-system-x86_64 command-line?

It would be awesome if the list of minimum versions were officially published, and at least some Cosmopolitan executables were tested on the minimum versions.

@jart
Copy link
Owner

jart commented Aug 25, 2020

My intended support vector has been the following:

  • Red Hat 5+ circa 2007 since (1) it's required by manylinux1, (2) it isn't eol yet, (3) it's the last linux with sysv init, and (4) it's the last GPLv2 licensed Linux. I also view Red Hat releases are epochs for all distros, so that includes Debian 4+ and all the other great distros like Alpine, etc. See syscalls.sh for more details.
  • Windows Vista+ since that's the first 64-bit one.
  • Mac OS X latest and greatest
  • FreeBSD latest and greatest
  • OpenBSD 6.4 since they may have recently added restrictions that forbid static binaries
  • DOS is same as BIOS in theory but haven't tried it lool see https://github.com/jart/cosmopolitan/blob/master/ape/ape.S

It sounds like, based on what you're telling me, I've exceeded my own goals! Thanks for independently testing and reporting this information. It's super helpful. I'm reluctant however to make official promises in a more visible place like the README. This is a scrappy project operating on a budget, aiming to do more with less, so any promise we do make, we want to be certain we can keep it!

@jart jart closed this as completed Aug 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants