A taste of Linux on Windows

tux_compWe wrote about ports of GNU utilities like find and grep for Windows in an earlier article. However, in a situation where a Linux junkie may have to work on Windows for long durations, only those tools may not be enough. Can you live without ls, for example?  There are packages like Cygwin, Gow and babun but we will check out some more standalone utilities today. Continue reading A taste of Linux on Windows

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

msys2: Linux tools for Windows

opensource_compmsys2 (Minimal SYStem 2) is a project similar to Gow or GnuWin32, based on Cygwin and MinGW-w64. The goal of the project is to support using the bash shell, autotools, revision control systems and the like for building native Windows applications using MinGW-w64 toolchains. msys2 supports both 32-bit and 64-bit architectures.

msys2 ported Arch’s Pacman for easy package management. Pacman supports dependency resolution, complete system upgrades and provides the build system. msys2 comes with hundreds of packages.

You can download the msys2 executable from its website.

Webpage: msys2

GnuWin32: GNU tools on Windows

gnuMany Windows users fall back to collection of packages like Cygwin or Gow to install GNU utilities on Windows. What if you want to use a particular utility like grep or find which you can simply copy in your PATH? The good news is that there are several GNU utilities which have been ported to Windows as a part of the GnuWin project.

Here’s the complete list of the packages.

All the tools are 32-bit. Unfortunately the GnuWin64 project died very soon without any progess. However, you can use the 32-bit tools on 64-bit Windows also. In addition, the project is a bit dated and doesn’t seem to be receiving frequent updates.

Webpage: GnuWin32

Gow: lightweight Cygwin alternative

opensource_compCygwin is a large collection of GNU and open source tools which provide functionality similar to a Linux distribution on Windows. It is a very old project and has grown largely in size as well as number of tools over time. Gow (Gnu On Windows) is a lighter alternative to Cygwin with over 100+ useful Linux tools compiled as win32 binaries. While Cygwin can grow over 100MB depending on the number of tools you want, Gow is just 18MB in size. Gow was being used by Vuzit LLC on production hardware for years. It was open-sourced on July 14, 2010 to gain the attention of a larger community.

Features

  • Ultra light: Small, light subset (about 18 MB) of very useful UNIX binaries that do not have decent installers (until now!). Gow uses the NSIS installer.
  • Shell window from any directory: Adds a Windows Explorer shell window. Right-click on any directory and open a command (cmd.exe) window from that directory.
  • Simple install/remove: Easy to install and remove, all files contained in a single directory in a standard C:\Program Files path.
  • Included in PATH: All binaries are conveniently installed into the Windows PATH so they are accessible from a cmdline window.
  • Stable binaries: All commands are stable and tested.

Utilities

Notable utilities (among the 100+ available) include:

  • Shell scripting: bash, zsh
  • Compression: gzip, zip, bzip2, compress
  • SSH: putty, psftp, pscp, pageant, plink
  • Download/upload: cURL, wget
  • FTP: NcFTP
  • Editing: vim, nano
  • Text search/view: grep, agrep, less, cat, tail, head
  • File system: mv, cp, du, ls, pwd, rmdir, whereis
  • Development: make, diff, diff3, sleep, cvs, dos2unix, unix2dos

Download

Get the latest release here.

Webpage: Gow

find, grep and vim for Windows

win_appsI posted before on the powerful grep and find utlities. If you are a regular Linux user you’ll find them extremely useful. If you need to work on Windows and are missing these and the omnipotent vi editor, there are some free and light utilities available for you:

  • WinGrep – Has a GUI. Feature packed but often hangs when you use it on a huge set of files like the Linux kernel source code. Good for a few hundred files.
  • GNU grep & GNU find – Good old Linux grep and find ported to Windows. Fast and dependable.
  • GVim – Vim ported for Windows.