Dear Microsoft: It's time to stop using drive letters and whacks

Dear Microsoft: It's time to stop using drive letters and whacks

Summary: Drive letters and whacks worked for a season but now it's time to change with the seasons and to stop using them both. They're limited. They're outdated. And they're fashion backward.

SHARE:

Have you ever run out of drive letters on a Windows server system? Yeah, me too. Well, now you can mount directories (folders) onto disk partitions in Windows, similar to what you can do in UNIX or Linux (*nix) but isn't it time to just rid ourselves of the limits of drive letters altogether? I think it is. And there's a very simple solution for the problem: Follow the way of the *nix systems. And while we're at it, please for the love of Linus, let's rid ourselves of those annoying whacks. 

"Mr. Microsoft, tear down these walls." 

We, the world's system administrators want more cross platform compatibility. But we can't do that with whacks and drive letters.

Hear me out on this.

Get rid of drive letters by using *nix-style mount points. For that ever present C: drive, just mount it to the primary disk partition.

That's right, just mount everything onto its own partition for those who don't split things up.

It would also be nice to be able to dynamically resize partitions for those of us smart enough to separate the system from everything else. Ever hear of logical volumes?

I know. I know. I don't ask for much, do I?

I'm asking for an operating system, and associated filesystem, that's flexible, scalable, and dynamic, just like an enterprise-level system should be.

So, to that end, Microsoft needs to take another cue from the *nix world and use logical volumes. You can dynamically resize logical volumes. I know you can because I did it more than ten years ago on HP-UX, using SAM.

And I know it's totally asking too much to also get rid of that 'whack' business. I mean, when I'm trying to write scripts, I have to use twice as many whacks as necessary to escape the darn things.

For example, to refer to a non-drive letter location (aka UNC mapping), I have to do the following:

\\\\SERVER\\DIRECTORY\\FILE

As Tom Anderson would have said in an episode of Beavis and Butthead, "That's an awful lot of whackin' there boys."

It is indeed an awful lot of whackin'. Sometimes it works to issue multiple escapes. Sometimes it doesn't. But it's always very annoying to add in all those whacks everywhere. And don't try to discuss writing a script like this with anyone geeky because you'll end up sounding like that Aflac duck, if you do*.

Instead, they should replace the whacks with dashes and dots to yield something such as:

-SERVER.DIRECTORY.FILE

That works for me. Or better yet, Microsoft could come up with a new symbol for separating locations. That would be even better. I mean, who says that we're bound to the QWERTY keyboard and its lame list of symbols anyway?

Besides, the dot thing is more Internetty and more C-Sharpy, don't you agree? It's more modern, cleaner, and would cause fewer problems in scripts—for me at least.

The other major problem with drive letters is that you can't CD directory to another drive and directory at the same time, especially in scripts.

Try it.

Open a CMD prompt. You're probably in your "home" directory, sorry, folder, which is usually C:\Users\username. So, now, CD to D:\TEMP.

First, you have to CD to D: <enter>

Then, you have to CD to the subdirectory—ugh, folder, TEMP.

CD TEMP <enter>

Now, you can do it in one step, if you know a little known switch, /D.

CD /D D:\TEMP <enter>

And you're there.

This seems easy, if you know about it and you don't get mixed up with / and \.

In script parlance, the command would look something like this:

CD \/D D:\\TEMP

Bollocks, I say. Bollocks to the max.

Drive letters and whacks will drive me whacky.

The funny thing is that I know it can be done as I've described by abstracting C:, D:, E:, etc. into mount points.

All you have to do to prove it to yourself is install Cygwin on your Windows system and then open the Cygwin Terminal icon sitting on your desktop. Once you have that terminal window open, type:

$ mount <enter>

And watch the magic unfold as,

C: on /cygdrive/c type ntfs (binary,posix=0,user,noumount,auto)
D: on /cygdrive/d type ntfs (binary,posix=0,user,noumount,auto)
E: on /cygdrive/e type ntfs (binary,posix=0,user,noumount,auto)

For all your connected drives, including mapped ones show up here.

Type, pwd <enter> to be sure that you're in your home directory.

$ pwd

/home/username

Now, enter the following command:

$ cd /cygdrive/d/temp

And, as if by some force beyond this mortal realm, you're transferred there in a single step.

Now, you're probably asking, "So, what's the difference? You're just changing \ for /."

That's true but I'm also making it more *nix like in the process, which means that with minor location adjustments, the scripts I create on Windows can be used on *nix systems as well. I've done it.

And Cygwin sets up your user environment like a *nix environment with /home instead of C:\Users, /tmp, /bin, /usr/bin, and so on. So your adjustments for those cross platform scripts will be minor.

Why is this important for Microsoft to do?

As I stated in the very first sentence, at some point you do actually run out of drive letters and it's a hassle to mount directories,...er, folders onto partitions or drives. Database servers are the worst at running out of drive letters. Often, you just don't have enough letters in our alphabet to handle all of the locations for database data, logs, and other weird things that databases that are properly configured need.

You might also ask, "What about the / thing. You still have to escape those in scripts, don't you?"

Yes, you do. That's why I've said that it's time to use something else, like dots and dashes. Plus dots and dashes are a historical reference to Morse Code, which is cool because I like the whole retro thing of using the first wired communications protocols.

It's a good thing they didn't use slash and whack. SOS might have sounded like:

"whack, whack, whack—slash, slash, slash—whack, whack, whack." 

Sounds like some bizarre snuff rave thing. Not good.

I think it's time to remove the limitations of DOS, once and for all. Aren't we beyond DOS at this point? Let's talk volumes, directories, and cross platform compatibility. We need to collectively rise from the dark ages of computing, so to that end, let's trade whacks and slashes for dots and dashes.

*Every time I say 'whack', I think I sound like Tom Anderson, when I say it. Now all I can hear is his voice in my head. My inner voice is now Tom Anderson. It's gonna be a long day.

What do you think? Is it time for Microsoft to move toward a more universally compatible method of addressing disks, partitions, and mount points or are we going to whack into drive letters for the rest of our lives? Talk back and let me know.

Topics: Windows, Microsoft, Operating Systems

About

Kenneth 'Ken' Hess is a full-time Windows and Linux system administrator with 20 years of experience with Mac, Linux, UNIX, and Windows systems in large multi-data center environments.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

94 comments
Log in or register to join the discussion
  • Will not happen

    Do you know how many programs would break (aka "nearly all of them?")

    While I prefer UNC and Unix style mounts as a way to get paths, the fact is that all of Windows' software is written for the current paradigm. There's just not enough benefit in the change for the pain and suffering we'd all endure as users.
    Mac_PC_FenceSitter
    • The better solution: Just use Linux.

      If you switch to Linux you will have folder mounting, symbolic links, hard links, and a modern file storage system that doesn't get fragmented. No one needs MS Office anymore, for the kinds of documents 90% of MS Office users actually create, LibreOffice can edit with ease.

      Switching to Linux means that you can run on older hardware saving money and avoid the dreaded Windows rot problem where the computer slows down with age. You also can get SELinux security, and Linux's natural resistance to drive by virus infection.

      Most importantly of all, if you are a business with international clients you're customers can rest peacefully knowing that the NSA doesn't have a back door into your OS snooping on both your's and your customer's data.

      - http://www.theguardian.com/world/2013/jul/11/microsoft-nsa-collaboration-user-data
      - http://www.technobuffalo.com/2013/07/11/microsoft-gave-the-nsa-direct-backdoor-access-to-outlook-skype/
      T1Oracle
      • There is no backdoor in Windows

        And spying on you is the favourite pasttime of both Google and Canocial, as that is how they earn money. Switching to Linux sounds great if you don't need to run any applications, if you do it is by far the worst operating system to run, there is really no argument.
        sjaak327
        • lol

          Hi :)
          Good post! Very funny :)

          Very "Never believe anything until it's been denied by a government minister"
          regards from
          Tom :)
          Tom6
          • Microsoft wants to make an administrators life hell

            Microsoft deliberately designed the drive letters and everything else about Windows, not because it was the best design choice but rather to be as incomparable with Unix as possible. And now being that the entire world has adopted the Unix style paths and regular expressions, Microsoft is left looking like fools for doing that. I do believe that all IT managers should be on a path to adopt Linux for all their back-end servers and skip Windows 8 for the clients and hold on the XP or Windows 7 until Android PCs are released and all computers in the entire world will work together seamlessly.
            tjordanchat
          • I don't believe you understand history

            It's important to remember that it's not anybody's intent (at least I don't believe so, check your tinfoil hat as appropriate) to make somebody's life hell.

            Drive letters have an origin in CP/M and ultimately DOS as a foundation for volumes. It's just as easy to complain about how Linux filesystems have their origin - why should Windows change? Why shouldn't Linux?

            Don't answer that - it's religion at this point, not technology.

            The same argument goes for the backslash character. The main "problem" with having to escape the backslash has to do with the fact that Linux/unix use backslash as an escape character. Why not change that?

            Don't answer that - it's religion too.

            As for other proposals (e.g. -server.share.path) that are proposed. I'm sure that's great, but we'll just have to change DNS to not use a period so you don't confuse "server.domain.com" with "server.share.path". Then again, we can have DNS change what they do.

            Don't answer that - it's religion too.

            As somebody pointed out, you have mount point equivalents within Windows now. It was originally implemented in Windows 2000 for local filesystems and has improved over time so you can now have a mount point go to a network share (there is some credential madness).

            So, in all reality, you don't have to deal with any drive letter other than C: if you don't want to.

            Also, if you don't like "\" as in "CD C:\Users" you can use a forward slash - "CD C:/Users" works too.

            To continue my rambling response, it's not a "hassle" to mount something to a folder. It's really not more complicated than it is to assign a drive letter. If you like the UI, create a folder, go into disk management and mount it to the folder rather than a drive letter. Or do both. It doesn't matter.
            Matt Allison
          • such a pity...

            that your comment is buried in a pointless discussion over suppsed backdoors...for what's worth you have my vote for the best response to a pointless article.
            Spectrum7glr
          • Re: Linux/unix use backslash as an escape character.

            Have you noticed Windows does as well? Try writing C, C++ or Java code under Windows, and you'll find it uses "\" as an escape in strings. I haven't used Microsoft's own C# language, but I suspect that does exactly the same. So on Windows itself, you have to write pathname strings with awkward doubled backslashes: "C:\\path\\to\\my\\file".
            ldo17
          • Android?!?

            Sickening! Just what we all want! Assimilation by the cloud and it's NSA masters, and touch based, dumbed down, phone operating systems that don't even have window management or true multitasking! Great idea! I'll lynch myself with an Ethernet cable while I'm at it!
            Subsentient
        • sjaak327: "There is no backdoor in Windows"

          How do you know there isn't?

          Please provide a link where source code can be downloaded for all of Microsoft's products.

          P.S. Am not saying that there is a backdoor in Windows.
          Rabid Howler Monkey
          • Please provide a link where source code can be downloaded

            Here:
            https://codepremium.msdn.microsoft.com/

            All MVP have access.
            Mr.SV
          • Is an NDA required?

            If so, am not impressed.
            Rabid Howler Monkey
          • Yup, an NDA is required

            http://www.microsoft.com/en-us/sharedsource/mvp-source-licensing-program.aspx
            Rabid Howler Monkey
          • Source code alone is not enough.

            You also need to be able to compile that *same* code to create something that you can actually run. Otherwise all checking is meaningless, because how else would you know that the source code provided is for exactly the same OS that you're using?

            Also, does the inevitable NDA prevent you from disclosing any backdoor even if you did find one?
            Zogg
          • Zogg: "Source code alone is not enough"

            "You also need to be able to compile that *same* code"

            A very recent ZDNet article is a great example of this:

            http://www.zdnet.com/openx-releases-mandatory-fix-to-prevent-ad-server-trojan-attacks-7000019094/

            The OpenX source code is available for download, inspection and compilation. But, in this case, two files in the OpenX binary download were replaced with malicious files. Replaced by the malware miscreants, not by the OpenX devs.

            Thus, the source code was clean, but not the binary.
            Rabid Howler Monkey
          • But.....

            You think Microsoft will show all the Windows code? Ya. Right. And it will snow in the Bahamas tomorrow.
            Gisabun
          • I'm still sticking with the innocent until proven

            guilty framework. So prove there is.
            Sam Wagner
          • Alternatively, think "NSA" and "PRISM"...

            And then make your own decision.
            Zogg
          • There has been a backdoor since Windows 1995

            It is well known that there has been a backdoor into every Microsoft product since Windows 95. Microsoft's encryption algorithms are even designed so that the NSA can decrypt them. One really has to inspect Microsoft's code to see all the backdoors but they will not allow that but one can inspect Linux and Android because both of them are Open Source and have been verified not to contain any backdoors.
            tjordanchat
          • And yet...

            ...Google (ie. Android) was on the PRISM list too, along with Apple. Why isn't anyone going on and on about their backdoors? If the Android ones were verified not to have backdoors, why would you automatically assume Microsoft's did. Letting irrational hatred blind you doesn't make your point valid, it just makes you look foolish.
            KOL2024