Bill Gates Says He's Sorry About Control-Alt-Delete (qz.com)
An anonymous reader quotes a report from Quartz: At the Bloomberg Global Business Forum today, Carlyle Group co-founder and CEO David Rubenstein asked Microsoft founder Bill Gates to account for one of the most baffling questions of the digital era: Why does it take three fingers to lock or log in to a PC, and why did Gates ever think that was a good idea? Grimacing slightly, Gates deflected responsibility for the crtl-alt-delete key command, saying, "clearly, the people involved should have put another key on to make that work." Rubenstein pressed him: does he regret the decision? "You can't go back and change the small things in your life without putting the other things at risk," Gates said. But: "Sure. If I could make one small edit I would make that a single key operation." Gates has made the confession before. In 2013, he blamed IBM for the issue, saying, "The guy who did the IBM keyboard design didn't want to give us our single button."
The reason they used that combo in the first place was for compatibility with legacy applications. In legacy Windows, CTRL+ALT+DEL was handled at a low level and could bring up task manager or restart the machine. Applications could not detect the keypress.
When they went to implement multi-user and logins, they realized they needed to ensure applications could not spoof the login screen to trick users into entering their credentials. A malicious application could potentially save and reuse these credentials especially if they were of a DIFFERENT user or an admin user.
What to do? Well if they had the user press a key combination that applications couldn't detect to log in, or even a key combination that would result in a different action if they were already logged in, a fake application would not be able to detect this keypress and spoof the actual login screen. Guess what, an existing key combination fit this criteria. They could have invented a new combination, of course, but chances are a legacy application might use this combination as a hotkey, and reserving it for login user would break that application.
I forgot to mention... I think the key combo stretches all the way back to MS-DOS, where CTRL+ALT+DEL would instantly reboot. I assume 16-bit Windows trapped this combination first of all so DOS wouldn't intercept it and reboot right away, and also so they could anticipate the user was having problems and offer to run Task Manager. But the key combo was first declared in DOS as a key press that could be used to soft reset the machine, but would not be pressed accidentally. CTRL+ALT+DEL makes perfect sense for that scenario. Then it just evolved organically.
It's called a NMI, or non-maskable interrupt... except... it actually isn't one of those, at least not at the hardware level. There's no line dedicated to it on the keyboard bus. It might have been way back in the way back when the keyboard controller was a big fat DIP IC.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
We had an instance where one of our customers only had one hand.
Pretty difficult to do the three finger salute with one hand.
They were resorting to putting things in their mouth to get the third key.
I bought a cheap USB keyboard, took out the PCB, figured out what to short out to get CTRL-ALT-DEL,
and put it in a box with a single button.
Problem solved.
I have fairly small hands and I am able to CTRL+ALT+DEL with one hand -- My right one.
Maybe some keyboards make it difficult, but every one I use has made this possible.
On the apple 2e and later, yes, it required the control key.. on the 2 and 2+, just the reset button alone would reset the machine, and probably trash anything you were working on.
Oh no, not again.
The apology was for the choice to capture the historical "Reboot" key sequence and re-purpose it for logon. This was particularly annoying when we still had a mix of OSes in the workplace, and people got into the habit of walking up to any unknown "PC" and the first thing they do is give the 3-finger salute, rebooting the computer if it was running something other than the latest Microsoft product.
Almost as big a sin against computing as the 1994 introduction of the "Windows Key".
I do not deploy Linux. Ever.
The whole point of Ctrl-Alt-Del was that it's protected in the BIOS. Invoking it would jump to a routine that was hard to override. In most cases, though, under DOS the subroutine just caused a reboot. Later operating systems, it was trapped for and was the one key combination that a user application couldn't map.
...si hoc legere nimium eruditionis habes...
using the backslash for directory paths when every other OS used normal slashes
You overlooked one other OS that matters here: CP/M.
When MS-DOS was first developed, it was not the first DOS on the market; the majority of the business market was using Z-80 processor computers running CP/M. (Home users were on Apple II computers, mostly. Some business users used an Apple II with a CP/M card!) Anyway, MS-DOS looked and worked almost exactly like CP/M. MS-DOS programs were not that different from CP/M, I think deliberately to make it easier to port. The similarities were enough that the company that made CP/M threatened legal action over them. (Bob Zeidman checked the source code and he says no stolen code was present.)
Anyway, the important thing is: CP/M used forward slash as the punctuation for command-line program arguments. Thus, so did MS-DOS.
And nobody was really thinking too much about directory separators because CP/M, and MS-DOS 1.x, did not have directories. They used floppy disks, and those disks just had one directory. Just a flat list of files.
When MS-DOS 2.0 came out, someone was thinking of the slash for directories, because there was an actual command that you could put into your config.sys file that let you switch the character used for command-line switches. This was SWITCHAR and if you set it to - you also set the directory separator to forward slash. It was undocumented! It was never officially supported! And I think MS-DOS 3.0 dropped it and it never returned. (But in Windows, even today, you can just use forward slash as a directory delimiter and it works.)
I think that Microsoft had the opportunity to push on this. Just say "old MS-DOS apps that are using the old APIs can continue to use forward slash for command-line switches, but any program that works with directories should use the dash. It's The New Standard." I think they could have pulled it off, with some grumbling but nothing serious. But either someone at Microsoft was timid, or else they had an argument about this with IBM and lost, I don't know.
But way back in the dawn of time, compatibility with CP/M was the reason why forward slash was reserved as the command-line switch marker.
P.S. I think the registry was a good idea. Having a little database to store options, and have some kind of daemon that owns it, avoids race conditions and is just good sense. However, using an opaque and fragile binary database format was insanity. They could have used a simple text-based format (like .ini files... or, heck, S-expressions!) and saved the world a lot of pain. Or, at least made their binary database less fragile and documented it completely so that third parties could write registry checker tools that could fix corrupted registries or whatever.
Ideally they should have used JSON for the registry, but I'm pretty sure the registry pre-dates Javascript, let alone JSON as an interchange format.
lf(1): it's like ls(1) but sorts filenames by extension, tersely
I like how everyone forgets that MacOS originally used the colon for directory separators, among other weirdness.
Conforming to UNIX standards was not that common in the budding PC industry. MS always gets the blame because they're one of the few companies that actually survived.