We 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
If you are a serious Linux user forced to use Windows occasionally you must be missing the power of the Linux shell. How often do you feel the urge to run grep to search for a string in several files? babun (pronounced Baboon) brings a mini Linux setup (thanks to Cygwin) to the Windows desktop. Continue reading babun: Linux shell 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.
- 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
Follow the Beginner’s Guide for download link and to walk through the setup.
msys2 (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.
Many 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.
Cygwin 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.
- 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.
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
Get the latest release here.
I 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: