News: 1700911931

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

USB Cart of Death: The wheeled scourge that drove Windows devs to despair

(2023/11/25)


Microsoft veteran Raymond Chen has recalled a time when Windows developers encountered the trundling terror of the USB Cart of Death following an unfortunate mistake live on stage during a Windows 98 keynote.

Speaking to another Redmond old timer, [1]Dave Plummer , Chen reminisced that while the USB Cart of Death did not actually kill anyone, it was certainly fatal to plenty of Windows builds.

His story started with the development of USB support within Windows and the frantic pace at which the Windows team was working to support the protocol. The USB standard emerged in 1996 as a way of powering and connecting devices on a single bus. Old hands – such as your writer – well remember the days when printers, keyboards, and even the newfangled mouse all had their own connectors. USB promised a way of resolving the mess.

[2]

However, it needed operating system support, which is where Chen comes in. "The USB Cart of Death," he recalled, "was one of those office carts – like a mail cart – but it was loaded with every USB device they [Microsoft] could get their hands on."

[3]

[4]

"We'd have, like three USB mice, four USB keyboards, maybe a USB-connected printer – USB everything – and they were all connected together on this office cart, connected through a whole bunch of USB hubs…"

Imagine a cart laden with connected USB gizmos, daisy-chained together with hubs several levels deep. And a single cable to plug into a suitable victim.

[5]

Chen remembers the limit being 64 devices, although the USB standard can support, in theory, up to 127 devices. It also – and this is key – allowed hot plug and play. Attach or detach a USB device, and the host operating system should handle it without requiring a reboot. Something taken for granted today, but not so much in the last century.

Those still bearing the scars of USB might refer to the technology as Plug and Pray, but we digress.

"One of the USB devices," Chen said, "was a USB gaming steering wheel, which was attached to the front so you could actually drive this cart down the hallway."

[6]Remembering the time Windows accidentally sent Poland to the bottom of the sea

[7]Microsoft veteran on how he forged a badge to sneak into a Ballmer presentation

[8]Don't fear the Thread Reaper, a Windows ghost of bugs past

[9]Retired engineer confesses to role in sliding Microsoft Bob onto millions of XP install CDs

But what of the nickname?

The cart would be wheeled into the office of a kernel developer working on USB support, Chen said. The cart driver would inquire if the developer had a test machine available, plug in that single cable… and stand well back. A nice person might wait until the Windows USB subsystem finished welcoming its unexpected visitors before giving one of the mice a little jiggle to check things were working.

[10]

More often than not, however, the cart driver would not be nice and would instead wait a few seconds before yanking out the cable as Windows was rolling out the welcome mat. The result was typically a blue screen of death on the operating system, hence the USB Cart of Death.

It is 25 years since an impossibly young Chris Capossela – now exec veep of the Consumer Business at Microsoft – lived through a beta of Windows 98 crashing live on stage in front of Bill Gates as he attempted to attach a USB scanner. "That predated the Cart of Death," said Chen. "The Cart of Death may have been inspired by it maybe. It's like, 'We want to make sure this doesn't happen again!'"

The Cart of Death continued to wreak havoc on Microsoft's test labs. Banks of machines running fresh builds of Microsoft's flagship operating system were left with screens of blue for developers to decode as the cart was wheeled up and down, the cable connected then abruptly yanked.

"The goal," said Chen, "was to get it to the point where you could plug in the USB Cart of Death and unplug it anytime you wanted, and everything would still work... and I think they made it."

We suspect there are some lessons there for the current Windows team. ®

Get our [11]Tech Resources



[1] https://www.youtube.com/@DavesGarage

[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/bootnotes&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2ZWIoNNp4kxZLn6etJVaLqgAAAE8&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0

[3] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/bootnotes&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZWIoNNp4kxZLn6etJVaLqgAAAE8&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[4] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/bootnotes&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZWIoNNp4kxZLn6etJVaLqgAAAE8&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[5] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/bootnotes&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44ZWIoNNp4kxZLn6etJVaLqgAAAE8&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0

[6] https://www.theregister.com/2023/11/21/remembering_the_time_windows_accidentally/

[7] https://www.theregister.com/2022/05/25/microsoft_security_dave_plummer/

[8] https://www.theregister.com/2023/11/02/dont_fear_the_thread_reaper/

[9] https://www.theregister.com/2020/11/25/xp_bob/

[10] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_offbeat/bootnotes&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33ZWIoNNp4kxZLn6etJVaLqgAAAE8&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0

[11] https://whitepapers.theregister.com/



OhForF'

There was no real need to state it was around the time of Windows 98 - the fact Micros~1 did actual testing and had QA people is a telltale it happened decades ago. Today they wouldn't bother getting the devices for their cart/lab but push the build to be tested on the beta channel

They would absolutely test it nowadays.

Alan Bourke

In a more organised fashion. Also, that is literally a part of what the beta channel is for

Re: They would absolutely test it nowadays.

b0llchit

Yes, beta is test. But it seems many a bug escapes the beta channel and enters mainstream.

That is why you need proper QA procedures.

Re: They would absolutely test it nowadays.

elsergiovolador

You may also find malicious beta testers deployed by the competition.

Their goal is to waste as much development and support time as possible.

For instance, they report bugs that don't exist.

They can give steps to reproduce, doctored screenshots, videos how they encounter the "bug". But the bug doesn't exist

Re: Beta Channel?

Steve Davies 3

Didn't that become the release channel about the time that Balmer took his Golden Parachute?

elsergiovolador

push the build to be tested on the beta channel

Another thing regulators should look at. Basically they manipulate people into doing software testing for free. Any person taken on beta channel should at least be paid minimum wage for their time.

Anonymous Coward

You're saying every Windows user should get paid* by Microsoft?...

* compensated?

Paul Crawford

In the mid-2000s I was involved in developing a USB powered radio peripheral that was using the generic MS USB driver for XP to talk to it. One day I managed, via the peripheral's firmware, to crash the XP box so badly it screwed the MBR. Yes, that serious a flaw in their own driver's code. The IT department had to re-image to box. So much for post-Win98 USB support being OK!

Maybe I should have got in to penetration testing instead?

USB

elsergiovolador

USB is still misunderstood by many.

If you want to create a device, the common way to do it, is to buy a similar device that is working fine and then copy its USB descriptors, then modify to suit your project.

I mean that is just a fraction of the hoops you have to jump through.

The actual knowledge is still guarded like a cat over its kittens.

PB90210

The dodgy cart driver had a dodgy cart driver?

The only difference between the saint and the sinner is that every saint
has a past and every sinner has a future.
-- Oscar Wilde