BoUoW: Bash on Ubuntu on Windows

bash_tuxsay_uobow_sysinfo
Tux is telling you the most current Ubuntu running for Windows for BoUoW.

I am not proud of possibly inventing the ugly acronym “BOUOW”, but “BASH on Ubuntu on Windows” appears to compel it. Maybe we can pronounce it “bow-wow” — not sure if that’s complementary. Just did a Google search, and, no, as predicted I couldn’t have invented it: It is variously acronymed: B.O.U.O.W., or BoUoW. It has been around since at least March of 2016, giving end users, computer geeks, and developers plenty of time to come up with something of a nickname or acronym.

But I actually mean to praise BoUoW, and to give it considerably high praise. This is a brave move on Microsoft’s part, and a long time coming. MS has made *NIX access available in its kernel for some time now, thus making *NIX conventions possible on the command line like certain commands in the Power Shell. The user has to enable the capability in the Windows 10 settings (“Windows Subsystem for Linux” (WSL)), and as Admin, the kernel has to be set to “Developer mode”, and follow the instructions on the MSDN website to download binaries and to enable a bash shell on either the command line or PowerShell.

BoUoW takes advantage of the WSL to do impressive things like use the same network stack as Windows 10 itself. This is because with WSL enabled, a UNIX command such as SSH can now make calls directly to the Windows 10 kernel to access the network stack.

This is, by Microsoft’s admission, a work in progress. It would worry me if they would not have said that. But lots of things do work. vi works and is symlinked (or somehow aliased) to vim. The bash shell comes with some other common aliases like “ll” for “ls -l”, for instance, and apparently, as part of the installation, you actually have a miniature version of Ubuntu, complete with a C compiler, and an image of Ruby, Perl, Python, and if it isn’t installed, you can always use “apt-get” to install it.

One of the security features has the disadvantage of conducting an install of BoUoW separately for each user. If a user types “bash” in a cmd window, and if BoUoW is not installed for that user, the install happens all over again, and the image goes under each user’s AppData directory requesting a BoUoW install. If you are using an SSD for C: drive like me, then you might find that limiting due to a shortage of space.

There are many things not recommended yet. If you are a serious web developer, for example, you would find many of the things you want, such as mySQL, are not currently working the right way. If you are a systems programmer, then you’ll find that ps and top only work for unix-like commands, so I wouldn’t use BoUoW for any serious process management. That being said, it does contain the old standbys: grep, sed, and awk.

gcc_output_uobow
The compiling and output of my “Hello, world!” program, also showing the source code.

gcc had to be installed separately. The binary it created for my “Hello, world!” program lacks the Microsoft .exe extension. And as it is for Unix binaries, it lacks any default extension. It is using gcc version 4.8.4. The current version is 6.3. This older gcc usually won’t pose a problem for most users.

The current stable Ubuntu is 16.04. BoUoW uses the previous stable version, 14.04, and thus has slightly older versions of Perl (5.18), Python (2.7.6), bash (4.3.11), Ruby (1.8) (available using apt-get), vim (7.4), and other software. Vim, however, appears to be the “large” version, which is expandable, using plugins like Vundle, which is good news. I don’t suspect that these slightly older versions would cause anyone problems, except possibly for Python, which has gone all the way up to version 3.5.2 since. You are warned also that it is possible that under Python or Perl, you might run into problems due to not all of their libraries running correctly under BoUoW. Not surprising, since Python has hundreds of installable libraries and Perl has thousands of them. Could take a while.

 

Well, actually, it appears you *can* dual-boot into a machine running UEFI

asus maximus vi hero
The mainboard for the Asus Maximus VI Hero. It takes a maximum of 32 GB of RAM, which I maxed out. It even comes with its own “Do Not Disturb” sign which you can hang on your doorknob.

I initially purchased the Maximus Hero because it was priced at a bargain on a Black Friday sale. I heard of UEFI, of Microsoft’s meddling with the specs, and grumblings about how this “security feature”, like many of the “features” Microsoft had the reputation of having anything to do with, was calculated to “securely” lock out any other operating system from using the motherboard. Permanently. It would appear to have brought to bear all of the darkest aspects of consumer lock-in and anti-competitiveness that I could imagine.

Well, I was wrong, and it has been widely known for some time in several websites that the UEFI hurdle has been overcome. It is just that I came upon this on my own while fidgeting with the ASUS UEFI interface, which is where the computer sent me when it couldn’t detect my main hard drive (faulty SATA connector).

Right now, I am running Linux on a machine that has Windows 7 already on it. I am told that UEFI (which stands for “Unified Extensible Firmware Interface”) was conceived to prevent dual-booting, but apparently I have been able to accomplish this feat on my machine.  The motherboard I have is an ASUS Maximus VI Hero, with an extensive UEFI interface. I can see why the BIOS is considered obsolete. The configuration system nearly merits another operating system, being quite detailed and extensive.

Of all the tricked-out features this motherboard comes with, the most important thing for me at the time, was to set up the Secure Boot feature in a way that my machine would not just become a receptacle for GatesWare. Setting Secure Boot to “Other OS” seemed to fit that need, allowing Linux and Windows 7 to play together, and so here I am writing this blog article on Ubuntu 13.10’s copy of Firefox.

 

About the previous blog entry

That entry the other day was somewhat in the form of a log. A blog entry that is a log. Imagine that.

Earlier this week, I decided to document the rescuing of my TouchSmart TM2 laptop from oblivion. It has nothing except the basic operating system installed, and it seems to give me the BSOD if I do things to it that in the laptop’s opinion is too much for it’s endurance. Such as running Microsoft Update. Such as letting it sit on my desk for a couple of hours, running while I made breakfast or something. I haven’t tried to install a single piece of any other software, just the OS.

I have certainly learned the power of good documentation from this exercise. The BSOD errors were many and varied. I rolled back the installation every time I saw one, or looked up the error code if the blue screen was on long enough. Things just seemed to get worse and worse. At one point, even doing a minimal install gave me a BSOD, and as a result, an incomplete install. At that point, I sent it, still under warranty, to an authorized repair depot, and even told them to try the install themselves (since they seem to stick to their guns about it being a “software issue”, when the only software is coming solely from the factory image). This will cost me $69.00 (plus extra costs to run MS Update), but I am pretty confident that they won’t make it past the SP1 installation, unless they really investigate the hardware beyond disk and memory. If it crashes on me again as a result of sitting on my desk or something, I am going to demand a refund (which I think will be coming from HP, which might be an issue).

The outspoken Richard Stallman

Richard Stallman

We have Richard Stallman to thank for software that forms the “GNU” part of the GNU/Linux operating system. He is also part of the Free Software Foundation, an organization dedicated to spreading the idea that, in essence, we ought to be masters of our technology, technology being our slaves. He would agree that we ought to resist attempts by commercial interests to make computer enslave us.

It is well-known that computers are being forced to do just that. Software is being made to “call home” through an internet back door, potentially tracking your every keystroke. This is usually through commercial software. But even websites collect enormous amounts of data, down to the IP of the machine you use to surf the web. Indeed, it’s a real problem, and even those who are only mildly computer literate, would seem aware of the fact that somebody “out there” is collecting information on you. The news media will also be glad to give you occasional reminders that you had better watch what you say on Facebook, beware of your web surfing habits, because your boss might find out about it, and you are soon out of a job. Your future employment would also be in jeopardy.

Well, that is enslavement writ large. This is a radical change from over a generation ago. Back then, what you said outside of work was your own business, but now through the magic of software, you could be writing an email to a friend which can now be copied to another location and potentially be used against you. Cell phones are now made to trace your location, even when you are not aware that it is happening. Stallman is right to point out that this is a civil liberties issue, and this ought to concern us.

The Free Software Foundation that Richard Stallman is the head of is precisely about this kind of freedom. It is not necesarily about sofrware being free (as in “free beer”), but more about freedom (as in your inherent rights as the owner of a computer, and as one who posesses software). You can sell the software you get through the GNU project, and you can also modify it any way you like. He has been present on many interviews on the Internet, and a search for his name brings up a number of videos of Stallman expounding his beliefs about his brand of “Free Software”.

The computer field is packed with those who differ from each other in minutae. It’s the computer field, after all, so the dominant gestalt is that it is all about minutae. But this became a serious enough problem that as of 2005 we needed to have to distinguish between the “Free Software movement” and the “Open Source movement”. Apprarently, very different. Different enough that Stallman stepped down as president of the Open Source Initiative and founded the Free Software Foundation, leving behind author and EMACS wizard Eric Raymond. Hmph.

The Open Source Movement began in 1998 with Netscape, which codenamed their source “Mozilla”. They still retain the name. By 1998, the GNU/Linux operating system had been 5 years old, and Linux kernel inventor Linus Torvalds had taken a neutral position on “open source” or “software freedom”. However, the source code for his kernel was, and still is, free for anyone to download, modify and compile. Indeed the true authors of the kernel consist of a cast of thousands, with Torvalds giving final approval.  Open source focuses on a working model for software development, and for marketing. It did not advocate freedom enough for Stallman’s liking.

A pertinent graphic found on the one of Stallman’s websites. Hopefully, it’s Copyleft

But what would happen if one completely invested themselves into the ideal of software freedom at this point? You would have to start by getting rid of your cell phone. That Android may be open-source, but it is full of malware from the manufacturer that tracks your every move. Same goes for iPhones. That tablet would, in most cases, would have to go, since the Adndroid or Apple-owned, Microsoft-owned, or Android OS that runs on it would also suffer from the same problem. You literally need to toss them or shelve them until GNU/Linux comes up with something that gives you your human rights back.

Your shiny new desktop PC, if it is running any commercial OS or software such as MS Windows, or Apple’s Snow Leopard, has to now run Linux, which as already said, may not have current enough drivers to take full advantage of the newest hardware. I speak from personal experience, as my tablet PC, made in 2009, has drivers for it, but pen, touchscreen, and the fingerprint scanner either misbehave or no driver yet exists for it in Linux even today.

If you really believed in Software Freedom, you would be dead against this thing which is has the Orwellian name “Digital Rights”. These are not your rights that are being protected, but the rights of, well, digits, essentially. If you buy your DVD movie in North America, and decide to pack the DVD in your suitcase to go on vacation in Europe, you will find you cannot view the DVD on a player sold in Europe. Digital rights also restrict your reasonable and fair viewing of digital media sucha as a DVD in many other ways, and it is thus seen as a handcuff placed on consumers. So, no DVDs for you. And along with that, many games which have no inherent need for an internet connection, but nevertheless cannot seem to run without one. Sony and Amazon are other companies you cannot do business with any longer.

As for web browsers, you might have to consider ditching Flash, Silverlight, and to prevent Google and other sites from adding sneaky obfuscated Javascript code on to your browser (if you know Javascript, obfuscating it is not hard to do), you might want to disable Javascript. Also, the very idea of an execution environment for random applets is a security threat, so you would need to disable Java.

After all that disabling, turfing, and Linux installing (on a slightly old PC, not your shiny new one), what are you left with? Still an impressive system, with software that gives you freedom, but probably not up to the standards of young people who want to impress their friends with their shiny new gadgets. To have shiny new gadgets, you have to trade away your freedom in various ways. While some have decided to do everthing I have mentioned and more to gain their freedom, it comes at a price. They have to do without tablets and cell phones. They can’t even have a Kindle to read e-books on the subway. They will have to subsist on reading a real book, I suppose.

Too cheap to upgrade Win 7 HE to Win 7 Pro

I have a couple of computers running Windows 7 Home Edition and found the need recently to run remote desktop. I had found after looking around at the MS website that “I can’t get there from here”. That is, remote desktop is not a feature for HE, but is present if I upgrade. The person on the website did mention an alternative to Remote Desktop, and that was TeamViewer, which is free for non-commercial use.

On the plus side, I was able to run the program just as downloaded from the website without installation. Even better, I was even able to run the same copy of the program individually from both ends of the connection.

It seems to do the job, for sure. But I’m surprised at its slowness. At default resolution (which at 256 colors is not that great), windows move around slowly over my 10+Mbps lan connection (oh yeah, I forgot that the remote computer is connected using Wi-Fi). The speed improves slightly if you use TeamViewer to disable Aero. I may have to live with the slow speed due to the rather necessary Wi-Fi issue.

Features I have no use for, but may interest some are its ability to record a session on the remote connection. There seems to be also menu options for conference calls and VOIP. For myself, I ‘m just glad that I can view my desktop from another room and multitask in my home office, rather than having to go back and forth between two rooms (except to initiate the connection, which requires the remote computer and the local computer to run the program).

This kind of thing is intended for help desks, but I find it useful if I want to download and store certain kinds of files on particular computers, such as EMusic downloads, which are better off being stored on the same computer as my home theatre. Or download email from my ISP, which I keep on one computer, and not my laptop.