Foreign Linux: run Linux binaries on Windows

Foreign Linux (aka flinux) is a project to run unmodified Linux binaries on Windows without any drivers or modifications to the system. The philosophy is different to packages like Cygwin or Wine. The latter two are high level emulators while Foreign Linux works at a low level implementing kernel system calls and use the original unmodified system libraries to provide common ABIs. The approach, though more complex, reduces the amount of work and increases the efficiency of the emulation.

Foreign Linux can dynamically translate Linux system calls to their Windows equivalents or emulate them if not available (for example, fork implementation). A dynamic binary translator is introduced to process the binaries and transform the incompatible bits before it is run.

Foreign Linux is under heavy development at the time of writing. The following applications are among the ones that work currently:

  • Basic utilities: bash, vim, nano
  • Programming environments: python, gcc
  • Package managers: pacman
  • Terminal-based games: vitetris, nethack
  • Network utilities: wget, curl, ssh
  • X applications: xeyes, xclock, glxgears

Functionalities missing include file permissions, process management, signals, multi-threading, and more. Applications depending on these technologies will not work properly.

Features

  • Run unmodified Linux applications in a pure user-mode application, no privileged code or drivers or virtual machines
  • Support both dynamically and statically compiled executables
  • Support NTFS native hardlinks and emulated symbolic links
  • Xterm-like terminal emulation on Win32 console
  • Client-side networking (sockets) support

Usage

Follow the Beginner’s Guide for download link and to walk through the setup.

Webpage: flinux

Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s