If you can’t beat them, join them. Microsoft’s incorporation of the prompt command ‘bash’ in Windows 10 signals an acknowledgement of the popularity and pervasiveness of free and open-source software (FOSS) technology — and a growing embrace of it. It wasn’t always like this. For long, Microsoft’s response to the growing popularity of Linux-based technologies had been that of either ridicule or resistance. As far back as 1999, Bill Gates, the co-founder of Microsoft, was attributed as saying, “We think of FOSS as a competitor in the student and hobbyist market. But I really don’t think in the commercial market, we’ll see it (compete with Windows) in any significant way.”
Cut to the present. There is an awkward moment in the video where bash in Windows 10 is being introduced. While a Windows developer is demonstrating the new features, he hastily says, pointing at the Windows command prompt, “We all know it. We all love it. Now, let us type in bash.” This quite effectively captures the (non-)popularity of the Windows command prompt when compared to its counterpart in Linux- and Unix-based operating systems — the ‘Bourne-again shell’, or bash. Released in 1989, as part of the GNU project, the bash command-line interface is ubiquitous across different popular operating systems, except on Microsoft Windows. With their latest release, Windows 10, Microsoft is trying to provide (limited) possibilities for its users to benefit from the prodigious powers of bash.
In bringing this feature to Windows, Microsoft has been working with Canonical, the company that produces Ubuntu — one of the most popular GNU/Linux operating systems.
What now seems like an inevitable endorsement by Microsoft reflects the current popularity of FOSS in a world thriving with mobile computing devices and cloud services. While Microsoft Windows still owns about 50 per cent of the desktop operating systems market, in the mobile segment, it has a meagre 1.1 per cent share according to the latest report by American research and advisory firm Gartner. Android, the Linux-based mobile operating system, tops with a market share of 80.7 per cent.
The animosity between proprietary software vendors such as Microsoft and FOSS communities has been in equal parts about the competing technology and the conflicting open-source ideology. By incorporating bash in Windows, Microsoft has implicitly acknowledged the indispensability of the power of Linux-based tools, especially for the developer community. This does not necessarily imply a change in their ideological position, which is proven by the fact that the main piece of software that allows bash in Windows — Windows Subsystem for Linux — is not (yet) open source.
Embedding bash in Windows The bash command-line interface is simply more powerful than the Windows command prompt. A user on a Linux-based operating system can not only perform almost all the tasks that are possible via the graphical interface in a far more efficient manner but the command-line also opens up immense possibilities that are unimaginable via the graphical interface. For instance, think of crawling through hundreds of folders on a computer, looking for a specific word in several thousand files — there aren’t very many graphical tools that can accomplish this task. Using bash, a sequence of commands that spans a single line can easily achieve this. Further, with bash and the gamut of tools that it houses, the scope for developers to develop, automate and test software projects is immense; this was one of the primary reasons cited by Microsoft in providing this feature in Windows 10.
One other attractive aspect of embedding bash into Windows is that it won’t be running on what is called a virtual machine. Virtual machine, as the name suggests, tries to simulate a different operating system on the native operating system. Hitherto, one common way of using features like bash in Windows was by running a Linux-based operating system as a virtual machine, which is notorious for being resource-hungry and inefficient. This will be changing in the latest Windows 10 release.
In a GNU/Linux operating system like Ubuntu, bash accesses resources on the computer via requests to the kernel called “system calls”. These system calls are then handled by the Linux kernel intelligently, which gives the current niche for Linux-based operating systems. In Windows 10, in place of sending these system calls to the Linux kernel, bash will be communicating with the Windows kernel via an intermediate programme. Microsoft has developed the Windows Subsystem for Linux, which acts as a translator, converting the system calls by bash into a format the Windows kernel can process. Understandably, unless all the system calls are not completely translated, the bash experience on Windows 10 will not be complete, and can be expected to have problems.
Microsoft has incorporated bash in Windows by using a version of Ubuntu without the Linux kernel, which is commonly known as the Ubuntu User Space. As a result, Windows users can also install and run several Ubuntu software packages as if they were on an Ubuntu machine. This opens up a big window of opportunity for developers and users on Windows, as bash and hence Ubuntu packages can access the Windows file system.
A popular video, Truth Happens, released by Red Hat Linux amid the tension between Microsoft and FOSS communities in the early 2000s uses the quote that is frequently and wrongly attributed to M.K. Gandhi: “First they ignore you, then they laugh at you, then they fight you, then you win.” Historically, Microsoft has indeed ignored, ridiculed and fought several free software projects. But in the last few years, it has been making serious attempts at embracing open-source software. While this might not exactly be the anticipated win for FOSS communities, it is at least a certain win for users on Windows, who can now make use of the powerhouse that bash is.
Raghavendra Selvan is a PhD Fellow at the University of Copenhagen and a free software enthusiast.
Published - April 07, 2016 01:55 am IST