Monday, January 26, 2009

Windows 7 won’t plug this dyke, I’m quite sure

I’ve been using computers and studying their innards, software-wise, for forty years or more. The first twenty years was nearly all with various IBM mainframe and midrange commercial systems, process control systems, communications controllers and the like.

Then in the early 1980s along came minicomputers that the common man could afford to buy for personal use. I used the Apple IIe and the Commodore Amiga and later the IBM PC, all essentially with primitive disk operating operating systems (initially diskette based, later hard disk based).

The early PCs mostly had fairly crude GUIs which, as far as the the average user was concerned, only stated to get adopted on any scale when Microsoft came out with -- pirated, some would say – their own windows-style OS towards the end of the eighties. They suffered from problems such as limited memory access (the dreaded 640K barrier, and so on).

I didn’t ever use Windows 1 and Windows 2, first got my hands on version 3.0/3.10, not too long after that, version 3.11 (or “Windows for Workgroups”).

For its time, Windows 3.11 wasn’t too bad, but it suffered from a number of drastic architectural limits, like problems with 16-bit addressing of ever-increasing memory and hard disks (The problems were with handling megabytes and gigabytes in Windows 3 and Windows 9x days. Now in the early 21st century it has factored up to handling gigabyte and terabyte dimensions. Will it ever end? Not likely.)

Has Microsoft lost its way with Windows? Or have they “lost the plot” as some have put it?

There’s a lot of talk at the moment about Windows 7. Will it save Microsoft, or is it in effect just “Windows Vista Service Pack 3?” I’ve downloaded Win7 Beta 1 version and will give it a fling, in a virtual machine, some time soon, when I get a round tuit. I’ve read a fair bit about Windows 7 and have seen it demonstrated at a couple of Microsoft events here in Australia, so I”m pretty familiar with what it promises.

Where do I fit in the spectrum of opinion folders? Well, right now, having refused to install Windows Vista because I just dislike its look and feel and the irritating UAC nag prompt, I reckon that there are a few nice enhancements in Win7.

So it’s very likely that I’ll install Win7 soon after it ships, as long as Microsoft make it possible to upgrade direct from Win XP Pro to Win7. (With all the tools and add-ons that I’ve installed, Win XP still works fine as far as I’m concerned.)image

What discourages me is that, after some two decades, Microsoft appear to be making no significant move towards introducing an “OS for the future” that eliminates some long-time basic architectural shortcomings and flaws.

This has been discussed by others and I won’t repeat them here but instead let me here describe one such shortcoming, a very basic one in fact, that I haven’t seen raised elsewhere.

Take a look at Figure 1 (click to view a larger image).

I tried to mount a new disk drive. (It happens to be a TrueCrypt encrypted drive, but that’s not pertinent. It could equally well have been a USB drive or similar.)

I selected a file and clicked the “Mount” button. Next I was prompted to select a free drive letter from the list. What free drive letter? The list was empty.

The drive list was empty! And that brings out the basic shortcoming, which arises from the architectural underpinnings going way back to the original MS-DOS.

In the early days, many or indeed most PCs only had only a single diskette drive (it was something of a luxury to even have a second one). A year or two later, hard disk drives started appearing on top-end PCs, all of 10 MB or 20 MB in size, for those who could afford them (they were prohibitively expensive).

What’s the cause for the empty list of drives above? Well, these days it’s common to have quite a few drives on a PC – CD/DVD drives, internal hard disks, external USB or Firewire or eSATA drives, network drives, virtual drives, and so on. image

And the figure on the right shows how my system was just before I attempted to mount the additional (TrueCrypt) drive.

There are 2 terabytes of internal hard disk drives (some physical, some logical) fusing up drive letters C: to N:

Also plugged in was an external hard drive made up of five logical drives, two internal DVD drives plus an external one, a digital card reader with four slots for transferring my photos, and several USB thumb drives.

In Figure 2, the external hard drive letters T: and U: are highlighted in yellow, and the arrow immediately under them points to the spot where three more logical drives on this device should have appeared in the list -- but didn’t, because there were no more free drive letters, although there was no warning at all that this was the case! So naturally enough, when I attempted to mount the additional (TrueCrypt) drive it correctly showed en empty drive list.

Admittedly, for the purposes of the exercise I added more drives than I normally would ever use. I usually have four or five spare drive letters available. When I disconnected several of the devices, the list of available drives went back to a more normal situation, as illustrated in Figure 3.


But I’m sure you get my point: still having a single alphabetical drive letter for mounted devices is a very nasty Windows limitation.

We don’t need such a basic flaw in the 21st century, and Microsoft really should already have released a simple, elegant solution for this and other such basic flaws (emphasis on simple).

Sure, Windows NTFS has symbolic links and Vista has extended this to symbolic links junction points, but these only partially resolve the issue and are strictly for IT specialists or power users only, definitely not the average user. (Symlinks originated in the early 1980s for BSD 4.2 UNIX, and are currently found in Linux and Mac OS too.)

Let’s suppose that Microsoft decided to go ahead with some sort of fix for this issue, what might it be?

In my opinion, a neat solution would be to allow two-letter or why not multi-alphameric (letters plus digits) drive names, not just single letters of the alphabet. And without  necessarily changing anything else in file system support, in order to minimize other impacts.

For example, your marketing applications and files might be on drives MKTG1: and MKTG2: (or MARKETING1: and MARKETING2: to avoid cryptic naming and so make it even plainer to nontechnical users).

Another related bugbear of mine is that in Windows you have to carefully manage where folders and files are placed on the various available drives. IBM’s System/38 introduced an elegant solution for this storage problem way back in 1978, and the concept still thrives in its descendant the “IBM i” system (that’s the latest in a series of brand names for this family from IBM’s development laboratory in Rochester, Minnesota).

I was intimately involved with S/38 and its wonderful follow-on the AS/400, or “Application System/400”, emphasizing that it’s prime directive was to be as a superb platform for serving applications. (For the record, I happen to consider the S/38 architecture and the fundamental Lotus Notes architecture two of the outstanding widespread commercially-released IT conceptions of the 20th century.)

Among the wonderful architectural features of the S/38 and its descendants is single-level storage (see here or here or here or here for some insights).

Around the turn of the century, Microsoft was rumored to be working on some great changes to file storage, labeled WinFS. These were shelved in mid-2006, and perhaps the closest we’ve come to seeing any real change so far is Windows 7 Libraries (see Ars Technica’s overview).

The System/38 and its descendants also have libraries, but these are completely different: they are named groupings of related objects (programs, database files, queues, and any other sort of system object) that make the design, development, securing and running of jobs extremely easy to be controlled. They could be thought of sort of as “classpaths on steroids,” to make a crude analogy. But this is a different topic a very important topic, more about it some other time perhaps, since Windows PATHs and Java CLASSPATHs make up another weak point.

What do you think? When, if ever, will Windows fix basic shortcomings/flaws like this?


UPDATED on 27 January 2009, to rebalance some of the wording and to correct bad spots in spelling/grammar.

1 comment:

  1. Excellent analysis. If Microsoft flops on Windows 7 like they did with Vista, perhaps it will force some things back to the drawing board and maybe improvements will follow, I don't see this happening for years, if at all. So far 7 is very much Vista SP3 from playing with it in a vm. It's all marketing and lipstick, no real heavy duty advancements. It seems Microsoft is busy "getting into every market that is a market they could possibly be in" and seem to be losing sight of some of their core competencies, ie Office and Windows. There are some things in the AS400 that are downright elegant, like having one of the best security models I know of.