April 30, 2016

bash on windowsRecently Microsoft announced that it is planning on incorporating the Unix-based Bash shell in Windows. For most users this does not come as very useful or interesting news, but for developers and TTIG server administrators this is big. What does it mean, though?

What is Bash?
Bash is a command line shell for the Unix system. For Windows users, this is something like the “C:\_” prompt you see when you open up the Command Prompt application. Basic functions allow you to manipulate file systems and run programs within those file system. Bash is the Unix equivalent of this. Both Command Prompt and Bash are referred to as shells.

What does it mean?
Great. What does this mean for Windows users or computer users in general? Well, in short, it will allow Windows to run a Unix based system, Ubuntu specifically, natively within a Windows environment. For your average Windows user, this will not change very much. For developers, however, this is huge in that it will let them run and port code to Windows that expects a Unix file system or system calls and responses. Also, for server administrators, it will make interfacing between Windows and Unix based servers much easier.

Who benefits?
Developers. Especially Open Source developers. For a long time it’s been extremely difficult for developers to port software developed in the Unix environment to Windows. Microsoft will also benefit from this in that one of the main draw of the Apple OSX operating system is that developers could create applications that could be easily ported between OSX and Unix systems in that OSX is built upon Unix. Now, with Bash on Windows, developers can create applications that can be easily ported between all systems: Windows, OSX and Unix.

How does it work?
Basically, there is a native “translator”, i.e. the Ubuntu operating system, within the Windows system that will take Bash commands and Linux system calls and translate them into something the Windows system can understand. In the past, there were programs that could do this on Windows, but with Bash on Windows that process is now more streamlined.

Again, this new development isn’t very important for general computer users right now. But, since it allows for developers to be able to create applications that can essentially be cross platform, it means that in the future there is going be an explosion of cool and interesting software available to users whether they use Windows, OSX, or Linux.