Skip to content

sisungo/mactux

Repository files navigation

MacTux

MacTux is a compatibility layer that enables you to run Linux binaries on macOS.

🚧 INCOMPLETE PROJECT 🚧

Architecture Support

Only x86_64 is currently supported. Note that running MacTux on ARM Macs with Rosetta 2 is supported, too.

Building & Installing

See INSTALL.md for details.

Compatibility

Currently, we have tested:

  • musl-libc
  • glibc
  • GNU Coreutils
  • busybox
  • toybox
  • Opus Tools
  • SQLite 3
  • bash
  • dash
  • Python 3
  • TinyCC
  • OpenSSH Client

We suggest you to run dynamically linked or static-pie binaries, due to macOS's ASLR policy have not yet been solved completely.

Filesystem Hierarchy

We have our own VFS stack, so filesystem mounts are independent to the macOS filesystem. See tools/mkrootfs/fstab for details.

~/.mactux/rootfs is the emulated root directory. Currently a minimal Alpine Linux rootfs can be installed and work.

Multimedia Support

We plan to support multimedia APIs, like D-Bus, OSS, ALSA, X11, Wayland, etc.

Currently, we have a working (but naive) implementation of OSS audio output.

Roadmap

We currently prioritizes to implement:

  • Multi-thread support
  • Epoll support
  • sysfs support

About

Linux emulation layer for macOS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages