Mislabeling of Microsoft’s latest Windows addition

Recently Microsoft made the announcement regarding the ability to run some GNU/Linux programs under Windows. Unfortunately, it was a lightning rod attracting the most high-profile abuse of the name of the kernel, Linux.

In Mike Gerwitz’s blog post entitled “GNU/kWindows”, he sets the record straight on exactly what is going on. The main points:

  1. What most people have been referring to as “Linux” is actually GNU.
  2. “Most users would not even recognize what GNU is” thanks to the mislabeling that has been ongoing for the past two decades.
  3. The GNU Project is about freedom. Not just passing around the source code, but freedom. Specifically, these four freedoms:
    • The freedom to run the program as you wish, for any purpose (freedom 0).
    • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
    • The freedom to redistribute copies so you can help your neighbor (freedom 2).
    • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

Note that source code access is only a precondition for two of these four freedoms. It’s very possible to distribute source code that cannot legally be run for specific purposes, or that cannot be legally redistributed.

It is also worth noting again (Mike does not touch on these points, but maybe he should have), the “open source” movement which seems to get all the publicity splintered from the original free software movement founded by Richard Stallman back in 1984. Without the free software movement there would have been nothing for this “open source” splinter faction to splinter from. In fact, “open source” started off as a “marketing campaign” for free software. It was an attempt to get people talking less about freedom–and unfortunately, it worked.

There is a GNU kernel, the Hurd. A lot of people choose to ignore its existence, as it is not “release quality” yet; the goals and philosophy behind it differ radically from those of the kernel, Linux. (There is technically a recent release, but it’s numbered 0.7. Usually versions numbered 1.0 denote development versions.) It is still there, and I have faith the GNU Project developers will complete it. I do check in on their progress with Hurd every so often (about once every 2 to 3 years). I do plan to switch to a system which boots Hurd when the time is right.

Microsoft has done the free software community more of a disservice by naming this the Windows Subsystem for Linux (WSL) when a more appropriate name would be the Windows Subsystem for GNU (WSG). As I read it, they are using GNU bash, GNU libc, etc.

Mark Shuttleworth ought to be especially ashamed of himself, per this quote:

In our journey to bring free software to the widest possible audience, this is not a moment we could have predicted. Nevertheless, we are delighted to stand behind Ubuntu for Windows, committed to addressing the needs of Windows developers exploring Linux in this amazing new way, and are excited at the possibilities heralded by this unexpected turn of events.

He had a great opportunity to say “exploring GNU” instead, and set the record straight. Remember, Linus Torvalds himself has said the kernel, Linux, is nothing without an operating system (OS) to boot into:

Sadly, a kernel by itself gets you nowhere. To get a working system you need a shell, compilers, a library etc. These are separate parts and may be under a stricter (or even looser) copyright. Most of the tools used with linux are GNU software and are under the GNU copyleft. These tools aren’t in the distribution – ask me (or GNU) for more info.

Unfortunately this paragraph has been omitted in every version of the kernel, Linux, released since (at least the surviving RELNOTES-0.12 doesn’t have it, it may have been in versions released between, but who knows how many copies of those survive and where). Of course, personally, I make it a point to either refer to “GNU/Linux” or “a GNU variant” (when the kernel really matters less than the operating system and software) when referring to what operating system I run. I could only wish everyone else did the same.

This is before even getting into the broader implications of making it more convenient to use Microsoft Windows. The spying on users that Microsoft has been doing has only gotten worse with Windows 10. Microsoft has combined that with a rather aggressive attempt to get users to upgrade to Windows 10, either by discontinuing support for earlier versions of Windows, or by just pestering them with unwanted offers to upgrade “for free” to Windows 10. It’s obvious to see what direction this is going.

The best choice to develop software for a given OS, is to actually run that OS. Unless of course it is an OS intended to run on a different device (embedded systems) in which case cross-compiling is unavoidable. Choosing to run an OS like Windows, to develop for an OS like GNU/Linux or another GNU variant, is a highly questionable and self-contradictory choice. I don’t know what the point was behind Microsoft’s port of the Bash shell and a GNU variant environment to Windows, but they would have served the community better making their own GNU/Linux or GNU variant distribution. Actually, the best case scenario is pledging to release Windows 11 under the GPL. (A man can dream…)

Same song, I lost count of how many verses: Microsoft, Windows 10, and application choices

A recent Ars Technica article reveals a very nasty (but entirely in-character for Microsoft) “feature” of Windows 10. If you are not paying attention when you upgrade to Windows 10, you could easily wind up with all your default applications reset to Microsoft’s “recommendations” by which I mean their attempts at monopoly like the new version of the Internet Exporer browser called Edge. (I’ll cover how to avoid this shortly.)

Not surprisingly, the CEO of the Mozilla Foundation (the non-profit behind Firefox, Thunderbird, and other software descended from the original Netscape Navigator/Communicator suites) is quite unhappy and is asking Microsoft to “please reconsider” their decision. I don’t blame him.

My quick take on this, is it reeks of the same anti-competitive behavior that Microsoft has been engaging in for most of the last two decades. I’m not going to explain all of it here, but a few notable examples:

  • Previous versions of Windows (unfortunately, I would assume Windows 10 is no different) were notorious for clobbering boot loaders for GNU/Linux dual boot setups, so much so that the advice to install Windows first to avoid complications became almost universally known among GNU/Linux user communities. One really should not have to do this; Windows, certainly by now, should be smart enough to detect a dual boot setup and not clobber it.
  • Microsoft’s own websites, during the height of the “browser war”, would intentionally serve broken CSS stylesheets to browsers identifying as something besides Internet Explorer (IE). The intent was for the uneducated users to quickly say “this layout is completely busted, let me see if IE handles it any better.” Of course Microsoft got caught out with these shenanigans in short order.
  • Microsoft orginally partnered with IBM to make Operating System/2 (OS/2). The partnership was short-lived; I am guessing Microsoft was mainly in it to get their hands on the High Performance File System (HPFS) code, which they hacked into the gratuitously incompatible NTFS which is now the default filesystem on Windows (and was the preferred filesystem for Windows NT from the beginning). Microsoft in the end left IBM holding the bag with OS/2, and when IBM made it an actual competing product, Microsoft did everything they could to stop it (a lot of it unethical, some quite possibly outright unlawful).

Anyway, for those of you upgrading to Windows 10 who want to keep your Firefox (or Chrome or Opera or K-Meleon or whatever), the “feature” to be on the lookout for is called “express settings.” If you want to keep your existing application choices, do not select “express settings, instead do this (from the Ars Technica article):

If you click the small “customise settings” button during installation, you can keep your default apps from the previous installation—but the size of the button would seem to indicate that Microsoft wants most users to just click “use express settings” instead. (Actually, you have to click “customise settings,” and a few pages later click another tiny, low-contrast button to actually change the default apps. Microsoft really doesn’t want you to change Windows 10’s default apps.)

It’s disappointing, but unfortunately quite non-surprising, to see Microsoft covertly steering users away from competing technology such as Firefox, Chrome, Opera, etc. Unfortunately it is far from surprising. I have no real issue with Microsoft promoting their own products, but in the case of users upgrading from previous versions of Windows, Microsoft needs to learn respect for the choices the user has already made. Those choices may be OpenOffice or LibreOffice (instead of Microsoft’s Office suite); Firefox, Chrome, Opera, or another competing browser (instead of IE or Edge); Quicken or GnuCash (instead of the now-discontinued Microsoft Money, which is incidentally proof that Microsoft doesn’t in fact win them all); or even Vim (instead of something like Notepad or Wordpad). I could go on and on with the number of applications on an average PC, I’m sure Microsoft has an answer for a lot of different computing applications. The reality is that a lot of people will use something different, and that there are choices out there. Microsoft should work with its customers’ choices, not against them.

Microsoft Windows, updates, reboots, and the principle of least surprise

It’s been a while since I’ve ripped on Microsoft, which I was reminded of after seeing Matt Mullenweg’s recent blog entry about Windows and it’s horrid habit of rebooting to install updates, without specifically being told to do so. This wouldn’t be nearly as bad, if Matt didn’t link to a blog entry he wrote six years ago describing the same exact thing which at the time cost Matt quite a bit of unsaved work. (At the time of this earlier entry, Robert Scoble was working for Microsoft and apologized to Matt in his blog. By the way, this is something I suspect would never be allowed from a Microsoft employee now, and looking back at it, I’m a bit surprised Robert got away with it.)

Now, most people would think Microsoft would listen to their customers(*) and fix what is widely perceived as a bug, even if it was originally an intentional design decision. Especially after someone as high-profile as Matt has blogged about it, now twice. For the uninitiated, here’s what Matt is talking about in those entries:

  • The Windows Update tool downloads its updates and installs them. There are three options: manually download and install, automatically download and manually install, or automatically download and install.
  • At the conclusion of the install, if one of the updates requires a reboot (which, given this is Windows we’re talking about, is almost always the case), a dialog box pops up with the option to “restart now” or “restart later” with a timer. Originally, this timer was 5 minutes; I think it’s been changed to be longer (15 minutes?).
  • “Restart later” just means the dialog box pops up again some time later. I’ve never measured how long it is, I just know it keeps nagging until you reboot, and there is no way to select “go the #%&$@ away, I’ll reboot when I damn well please.”
  • “Restart now” does what it says.
  • If no action is taken when the timer expires the system reboots. This is almost never what the user (who is in effect Microsoft’s customer) actually wants.

This last bit is why people like Matt write blog entries like that one. This is also why people like me quit running Windows at all. My first choice for a new PC is “one without Windows on it.” My second choice is “one I can wipe the Windows install from as soon as I get it.” (I’ve been stuck using a Windows XP system enough to know this is how it worked as of that version. I quit using Windows at the first opportunity, for reasons that should be obvious. No PC that I actually own has run any version of Windows since 2002 April, which is now over eight years ago.)

The reason the timed reboot is such a disaster is that it violates the principle of least surprise (also called the principle of least astonishment). A computer user expects the computer to stay running absent a specific command to reboot. (I’m being generous here, given this is Microsoft Windows in question, an operating system not exactly known for its stability.)

In addition, Microsoft puts scary warnings in the Windows Update component which encourage users to select “automatically update.” From Matt’s post:

I can’t reconcile that it was due to a feature of an operating system, a feature I was told to turn on to stay safe, and a feature that bugs you when it isn’t activated. I trusted the computer because of the improvements to stability Microsoft had made in XP and SP2. Trust like that is slow to build and easy to break.

Now, Ubuntu gets it right (or at least did as of 9.10; I lack the experience with 10.04 to confirm). Most updates do not require a reboot. Those that do (new kernel versions), pop up the dialog box once. Yes, that’s right, once. If you say you would prefer to reboot later, the dialog box is gone for the rest of the session. The only bad part of this is that hibernating is broken from that point forward until you reboot and you just have to know this from experience. Since Ubuntu’s Update Manager is relatively unobtrusive (it pops up once per day if dismissed) this effectively becomes a non-issue. If you don’t use hibernating mode it’s not an issue.

Anyway, my point is that it’s inexcusable for Microsoft to allow what most users consider a horrid bug in place all this time, especially given a competing operating system shows how it should be done. I don’t know the right way to fix this in Microsoft’s world. I do know defaulting to a reboot after a time delay is not an acceptable answer to the majority of computer users (note, that’s computer users in general, not just PC users or Windows users). Then again, maybe the answer lies in not requiring a reboot after just about any system update. I’m not holding my breath waiting for Microsoft’s fix for that one, though.

(Note: When I refer to Microsoft’s customers here, I refer to the end users of Windows. I know technically Windows is usually sold to OEMs like HP, Dell, Compaq, Gateway, etc. but they aren’t really the customer here. It is the end user that Microsoft ultimately aims to please.)

Windows 7 boot time shenanigans

According to a recent CNet article, it seems that Microsoft has been a bit deceptive with their claims that Windows 7 boots faster.

The claim is from a company called Iolo Technologies:

[Iolo’s] lab unit found that a brand-new machine running Windows 7 takes a minute and 34 seconds to become usable, as compared to a minute and 6 seconds for Windows Vista. Iolo notes that it measured not the time it takes for the desktop to appear–which can be as little as 40 seconds on a fresh installation of Windows 7–but rather the time it takes to become fully usable “with CPU cycles no longer significantly high and a true idle state achieved.”

I’m not the least bit surprised that Microsoft would take the deceptive, underhanded path here, and make Windows 7 look like it boots faster even while the rest of the “booting” is still going on in the background making the system relatively unresponsive. Much of the rest of the computer-using public, however, falls for this kind of thing hook, line, and sinker.

I have no access to a computer running anything more recent than Windows XP Media Center Edition, so I cannot unfortunately lend my personal insight there. (Some of that is by choice: I hopped off the Windows train at Windows 98, and my next new PC will come preloaded with a GNU/Linux distribution called Ubuntu which is an offshoot of Debian. I’m running Ubuntu on this rather geriatric PC (800 MHz Celeron, 256M RAM, 20G drive) that I am using to write this, and if I’m careful about what I run it’s not too bad. Certainly much better than the Windows 98 it left the factory with.)

What I can tell you, is that with just about any operating system and GUI released as free software, what you see is what you get. The desktop or login screen comes up, and that means the system is done booting. Microsoft would do well to adopt the same model of transparency, or drop their deceptive claim that Windows 7 boots faster when in fact it probably does not.

I am definitely curious as to how fast Ubuntu 9.10 (Karmic Koala) and Debian
5.0 (lenny) would boot on the same hardware Iolo Technologies used for their
test. I have never actually timed the boot procedure on this PC, but I have
nothing to really compare it to so it may not be that relevant.

TNT: We don’t know multi-platform

I recently read an article in Jeff Balke’s blog about TNT’s online video. In a world increasingly moving away from a “one size fits all” model with regard to computer operating systems (not that such a model ever really applied to begin with), it is absurd to think that everyone will be running any given operating system.

Especially when that operating system is Microsoft Windows. TNT, you dropped the ball big time. This is 2009, not 1989 or 1994.

I’m sure someone will hack around what I’m sure is an absolutely blockheaded browser- or OS-sniffing script. My point is, however, we should not have to.