WIN32 native port of BusyBox. For additional information and binaries see this website.
Pull request Compare This branch is 4195 commits ahead, 1 commit behind realthunder:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
applets Merge branch 'busybox' into merge Sep 10, 2018
applets_sh applets_sh/*: Add a few more examples of "shell applets" Feb 9, 2012
arch i386: make stack size optimization selectable, and allow i486 insns (… Apr 6, 2018
archival Merge branch 'busybox' into merge Sep 10, 2018
configs Update default configuration Sep 10, 2018
console-tools restore documentation on the build config language Jun 6, 2018
coreutils Merge branch 'busybox' into merge Sep 10, 2018
debianutils Merge branch 'busybox' Jul 25, 2018
docs restore documentation on the build config language Jun 6, 2018
e2fsprogs restore documentation on the build config language Jun 6, 2018
editors Merge branch 'busybox' Jul 25, 2018
examples examples/var_service: add /var/run flag file to ntp.script Jul 26, 2018
findutils Merge branch 'busybox' Jul 25, 2018
include Merge branch 'busybox' into merge Sep 10, 2018
init restore documentation on the build config language Jun 6, 2018
klibc-utils restore documentation on the build config language Jun 6, 2018
libbb Merge branch 'busybox' into merge Sep 10, 2018
libpwdgrp whitespace and comment format fixes, no code changes Oct 5, 2017
loginutils Add chroot support to chpasswd Aug 1, 2018
mailutils sendmail: use on-stack buffer for AUTH PLAIN Jul 31, 2018
miscutils Merge branch 'busybox' Jul 25, 2018
modutils restore documentation on the build config language Jun 6, 2018
networking Merge branch 'busybox' into merge Sep 10, 2018
printutils restore documentation on the build config language Jun 6, 2018
procps Merge branch 'busybox' into merge Sep 10, 2018
qemu_multiarch_testing qemu_multiarch_testing: small improvements Jan 2, 2017
runit restore documentation on the build config language Jun 6, 2018
scripts Merge branch 'busybox' Jul 25, 2018
selinux chcon: fix issues with recurse and retval for retained files Sep 3, 2018
shell Merge branch 'busybox' into merge Sep 10, 2018
sysklogd sysklogd: add timestamp option to ignore message timestamps Aug 26, 2018
testsuite hexdump: fix short file of zero butes treated as dup Jul 3, 2018
util-linux Merge branch 'busybox' into merge Sep 10, 2018
win32 win32: rename resource files Jul 24, 2018
.gitignore win32: rename resource files Jul 24, 2018
.indent.pro First revision of the Busybox Style Guide and an accompanying .indent… Jul 24, 2000
AUTHORS paste: new applet Mar 23, 2017
Config.in Merge branch 'busybox' Jul 25, 2018
INSTALL Tweak INSTALL text Apr 17, 2012
LICENSE LICENSE: update address of the FSF May 6, 2009
Makefile Merge branch 'busybox' Jul 25, 2018
Makefile.custom applets/install: don't try to install nothing Apr 15, 2018
Makefile.flags Merge branch 'busybox' into merge May 13, 2018
Makefile.help build system: "make hosttools" doesn't exist, remove it from "make help" Jan 9, 2014
NOFORK_NOEXEC.lst mv: make it NOEXEC Jan 14, 2018
NOFORK_NOEXEC.sh NOFORK_NOEXEC.sh: a script to find "interesting" applets Jan 14, 2018
README Merge branch 'busybox' into merge May 18, 2015
README.md Update README.md Jun 6, 2018
TODO libbb: remove vdprintf Jul 29, 2017
TODO_unicode ls: unicode fixes Jan 31, 2010
make_single_applets.sh randomconfig fixes Dec 31, 2017
size_single_applets.sh size_single_applets.sh: fix a bug which mishandles e.g. "udhcpc6" name Jan 14, 2018

README.md

Status

Things may work for you, or may not. Things may never work because of huge differences between Linux and Windows. Or things may work in future, if you report the problem on [GitHub] (https://github.com/rmyorston/busybox-w32) or [GitLab] (https://gitlab.com/rmyorston/busybox-w32). If you don't have an account on one of those you can email me: [rmy@pobox.com] (mailto:rmy@pobox.com).

Building

You need a MinGW compiler and a POSIX environment (so that make menuconfig works). I cross-compile on Linux. On Fedora or RHEL/CentOS+EPEL installing mingw32-gcc (32-bit build) or mingw64-gcc (64-bit build) will pull in everything needed.

To start, run make mingw32_defconfig or make mingw64_defconfig. You can then customize your build with make menuconfig.

In particular you may need to adjust the compiler by going to Busybox Settings -> Build Options -> Cross Compiler Prefix

Then just make.

Limitations

  • Use forward slashes in paths: Windows doesn't mind and the shell will be happier.
  • Don't do wild things with Windows drive or UNC notation.
  • Wildcard expansion is disabled by default, though it can be turned on at compile time. This only affects command line arguments to the binary: the BusyBox shell has full support for wildcards.
  • Handling of users, groups and permissions is totally bogus. The system only admits to knowing about the current user and always returns the same hardcoded uid, gid and permission values.
  • Some crufty old Windows code (Windows XP, cmd.exe) doesn't like forward slashes in environment variables. The -X shell option (which must be the first argument) prevents busybox-w32 from changing backslashes to forward slashes. If Windows programs don't run from the shell it's worth trying it.
  • If you want to install 32-bit BusyBox in a system directory on a 64-bit version of Windows you should put it in C:\Windows\SysWOW64, not C:\Windows\System32 as you might expect. On 64-bit systems the latter is for 64-bit binaries.
  • ANSI escape sequences are emulated by converting to the equivalent in the Windows console API. Setting the environment variable BB_SKIP_ANSI_EMULATION will cause ANSI escapes to be passed to the console without emulation. This may be useful for Windows consoles that support ANSI escapes (e.g. ConEmu).
  • It's possible to obtain pseudo-random numbers using if=/dev/urandom as the input file to dd. The same emulation of /dev/urandom is used internally by the shred utility and to support https in wget. Since the pseudo-random number generator isn't being seeded with sufficient entropy the randomness shouldn't be relied on for any serious use.