Since his death, many have focused on the accomplishments Steve Jobs made with Apple. His accomplishments while at NeXT are arguably as game-changing, certainly for hardware architects, programmers, and web developers. David Chisnall reviews some of the remarkable developments Jobs oversaw during his time with NeXT, many of which will be shaping our world for years to come.

From the author of

From the author of

Steve Jobs was associated with three major companies during his life: Apple, Pixar, and NeXT. Of these, NeXT is probably the one that the fewest people are familiar with. It wasn't a major commercial success, at least until Apple decided to buy it, but it did have a major impact on the industry.

Since Steve Jobs died, I've gone back and watched some of the product announcements from NeXT. A lot of people have focused on his achievements at Apple, but watching these videos it's astonishing how far ahead of the curve NeXT was.

Direct Memory Access

The original NeXT Computer came with a custom chip designed by NeXT engineers that Steve Jobs called a "mainframe on a chip." Watching him introduce this chip today is a very strange experience. After a couple of minutes of his explanation, you realize that he's talking about a DMA controller.

The NeXT Computer's DMA controller allowed every device in the system to access main memory without needing to go through the CPU. This gave it I/O performance far in excess of any PC at the time and quite a bit ahead of any workstation.

As I said, the confusing thing watching the video today is that he needs to explain what a DMA controller is. These days, every cheap PC uses DMA as the standard way of transferring data between RAM and devices. The idea of doing it any other way seems somewhat bizarre, yet back in 1988 it was so revolutionary that there was no standard terminology to describe it.

The implementation in the NeXT computer was somewhat different to more modern approaches. It used a channel controller — a dedicated coprocessor that handled memory access for devices — while more modern systems integrate this functionality directly into the bus controller, but the core idea is the same.