In a recent interview at Harvard University, Bill Gates claimed (around 16:35 mark) that Windows uses Ctrl-Alt-Del as a logon key combination because “IBM didn’t want to give [Microsoft] a single button”. This statement is curious because it takes several facts and mixes them into something that is not even remotely true. It may be that Bill Gates never understood the technical details, or it may be that he simply forgot—after all, those decisions had been made 20-30+ years ago. Even otherwise intelligent and knowledgeable people sometimes have bizarre misconceptions about Ctrl-Alt-Del, so let’s attempt to set the record straight.
The IBM PC BIOS
The origin of the Ctrl-Alt-Del key combination on the PC platform goes back to the very first IBM PC and its ROM BIOS (1981). There is nothing special about the key combination as such. The hardware does not treat the keys specially at all. However, the BIOS does.
When the PC BIOS sees a Ctrl-Alt-Del combination, it jumps to the beginning of the POST code and performs a “warm boot”. This normally resets all hardware, but does not perform time-consuming memory tests. It is a convenient way to reset the system, faster than a power cycle and very useful on a machine with no memory protection and a dumb CPU which doesn’t even know what an invalid instruction is.
Modern BIOSes behave in an equivalent manner, although the implementation is much more complex (as is the hardware). What’s important to keep in mind is that when the BIOS is not in control (not processing keyboard input), such as when any protected-mode operating system is running, Ctrl-Alt-Del is just another key combination.
In some operating systems (many PC UNIX implementations) Ctrl-Alt-Del doesn’t do much. In others (OS/2, Windows), Ctrl-Alt-Del does have some special assigned meaning. However, this is done strictly under OS control.
Now fast forward about 10 years from the IBM PC introduction to the time when Microsoft was developing Windows NT, entirely without IBM’s involvement. In the early pre-release versions of NT (October/December 1991), the Ctrl-Alt-Del combination simply rebooted the system, just like in DOS. But in the July 1992 pre-release of Windows NT, things changed:
The Ctrl-Alt-Del key combination now had a whole new meaning. Microsoft decided to turn it into a “security feature”. Besides being required for logging in, for a logged-on user the Ctrl-Alt-Del key combination brought up a security dialog:
The reasoning behind this behavior was as follows: The low-level Windows NT keyboard driver processes the Ctrl-Alt-Del key sequence. Applications are not given a chance to intercept or alter the Ctrl-Alt-Del behavior. This avoids a class of spoof attacks where an application run by a malicious user pretends to be a login screen and steals other users’ credentials.
Why such an odd key combination? For the original BIOS functionality, it makes perfect sense. The Ctrl-Alt-Del combination is difficult to trigger, especially with one hand. This was intentional—since it resets the system without any confirmation, the key combination needed to be something that’s extremely difficult or impossible to trigger by accident.
Understanding the rationale for NT’s choice of Ctrl-Alt-Del as a security key combination is more difficult. There is absolutely no technical reason why Ctrl-Alt-Del had to be used. However, Microsoft no doubt sought a key combination not used by existing applications, including DOS applications. Ctrl-Alt-Del fit the bill. Another possible reason could be that users were familiar with the key combination, especially since Ctrl-Alt-Del performed similar “escape” functionality in Windows 3.x.
In the interview, Bill Gates mentioned some of the rationale for NT’s use of Ctrl-Alt-Del, but got it slightly wrong: “… you want to have something you do with the keyboard that is signaling to a very low level of the software, actually hardcoded in the hardware, that it is really bringing in the operating system you expect”.
Low level of the software (Windows NT), certainly. Hardcoded in the hardware, absolutely not. From the hardware’s point of view, Ctrl-Alt-Del is not special at all. It would be interesting to know where this misconception came from.
Bill Gates also said: “… we could have had a single button, but the guy who did the IBM keyboard design didn’t want to give us our single button…”. This statement is nonsensical on several levels. Bill Gates makes it sound like IBM designed the PC for Microsoft, when in reality Microsoft was just an (important) IBM contractor. And when Microsoft developed Windows NT, IBM wasn’t designing hardware for NT, it was the other way around—Microsoft designed NT to run on PC compatibles. The statement is fairly typical of Microsoft’s self-aggrandizement.
On top of that, IBM simply had nothing to do with the decision to use Ctrl-Alt-Del in Windows NT. There was nothing forcing Microsoft to use the combination, certainly nothing in the PC hardware. Microsoft could have decided to use a single key, although it would have been difficult to find one on the existing PC keyboards. Certainly other key combinations could have been used. At any rate, somehow trying to blame IBM for NT’s use of Ctrl-Alt-Del is just silly.
It is interesting to observe how Bill Gates on the one hand almost takes credit for creating the PC, and at the same time blames IBM for a decision made purely within Microsoft.
Larry Osterman puts the choice of Ctrl+Alt+Del in Windows NT down to it being the only key combination not used by existing applications.
And certainly at the time NT was created, Microsoft didn’t have the clout to mandate what keyboard hardware should do. (“In the very early days of Windows NT®, an attempt was made to use the much more orthogonal Scan Code Set 3, but due to bugs in the implementation of this Scan Code Set on numerous OEM keyboards, the idea was abandoned.” — scancode.doc).
MS added a menu and even a Windows key for Windows 95. So, if they didn’t add a logon key for Windows NT, is because they didn’t want to. (IMHO)
Mandating keyboard manufacturers to add a new key is one thing. But telling prospective NT users “oh and by the way, you have to buy a new keyboard” is clearly a no go. I’m sure they could have found some other key combo, but Ctrl-Alt-Del is a logical choice.
Yes, Scan Set 3 is fun. The 1991 builds of NT do use it. They learned the hard way that keyboard manufacturers may claim IBM compatibility but are too cheap to actually implement it 🙂 Sun tried something similar with Solaris 8 — not using the 8042 scancode translation. They gave up on that too, for much the same reason.
The thing is that that was driven by the Windows 95 people who probably didn’t give a damn about NT… but yeah, Microsoft certainly had the opportunity. If they wanted keyboards to have a logon key, they could make it happen.
MS added extra keys to create the 104-key form before Windows 95. Install the MS driver on Win 3.1 and the Windows key equates to Ctrl-Esc and would launch a revised task switcher that was provided with the keyboard software. The properties key did nothing until Win 95. But before MS had their own keyboard production, the other OEMs tended to follow IBM’s lead and IBM focused much of the CUA efforts on 3270 emulation so proposed new keys would go nowhere.
I remember hearing a variation on this Gates’s story back when MS introduced their keyboards. I do not recall the details though.
Even on genuine IBM keyboards, set 3 can trip you up, because it’s based on a key’s position, not its cap. So if a key has been moved around (for example, the different location of ‘\’ in ANSI and ISO layouts) its set 1 and 2 scancodes won’t change, but its set 3 scancode will.
(This is also why the scancodes for the function keys are different in set 2 and set 3 — set 3 distinguishes between ‘F1 on the left’ (05h) and ‘F1 at the top’ (07h) ).
During the early NT days I’m guessing IBM didn’t give a hoot what Microsoft wanted to do anyway, considering they were working on OS/2. Its laughable how big of a head Bill Gates has. If Bill really did want a special key he just as easily could have had Compaq do it. I never really considered Ctl-Alt-Del to be a mistake anyway.
My guess is that back in 1992 it didn’t even cross anyone’s mind to add a special logon key…