Feb 11, 2020
VMS and OpenVMS Welcome to the History of Computing Podcast, where we explore the history of information technology. Because understanding the past prepares us to innovate (and sometimes cope with) the future! Today we’re going to talk through the history of VMS.
Digital Equipment Corporation gave us many things. Once upon a time, I used a DEC Alpha running OpenVMS. The PDP-11 had changed the world, introducing us to a number of modern concepts in computers such as time sharing. The PDP was a minicomputer, smaller and more modern than mainframes. But by 1977 it was time for the next generation and the VAX ushered in the 32-bit era of computers and through the evolutions evolve into the VaXServer, helping to usher in the modern era of client-server architectures. It supported Branch delay slots and suppressed instructions. The VAX adopted virtual memory, privilege modes, and needed an operating system capable of harnessing all the new innovations packed into the VAX-11 and on. That OS would be Virtual Memory System, or VMS. The PDP had an operating system called RSX-11, which had been released in 1972. The architect was Dan Brevik, who had originally called it DEX as a homonym with DEC. But that was trademarked so he and Bob Decker over in marketing wrote down a bunch of acronyms and then found one that wasn’t trademarked. Then they had to reverse engineer a meaning out of the acronym to be Real-Time System Executive, or RSX. But for the VAX they needed more and so Dave Cutler from the RSX team, then in his early 30s, did much of the design work. Dick Hustvedt and Peter Lipman would join him and they would roll up to Roger Gourd, who worked with DECs VP of engineering Gordon Bell to build the environment. The project began as Starlet, named because it was meant to support the Startlet family of processors. A name that still lives on in various files in the operating system. The VMS Operating System would support RISC instructions, support 32-bit virtual address extension, would work with DECnet, would have virtual memory of course, as the name implies. VMS would bring a number of innovations in the world of clustering. VMS would use a modified Julian Day system to keep track of system time, which subtracts the Julian Date from 2,400,000.5. Why? Because it begins on November 17th, 1858. THat’s not why, that the day it starts. Why? Because it’s not Y10,000 compliant only having 4 slots for dates. Wait, that’s not a thing. Anyway, how did VMS come to be? One of the killer apps for the system though, was that DECnet was built on DIGITAL Network Architecture, or DNA. It first showed up in RSX, where you could like two PDPs but you could have 32 nodes by the time VaX showed up and 255 with VMS 2. Suddenly there was a simple way to network these machines, built into the OS. Version 1 was released in 1977 in support of the VAX-11/780. Version 2 would come along in 1980 for the 750 and Version 3 would come in 1982 for the 730. The VAX 8600 would ship in 84 with version 4. And here’s where it gets interesting. The advent of what were originally called microcomputers but are now called personal computers had come in the late 70s and early 80s. By 1984, MicroVMS was released as a port for running on the MicroVAX, Digitals attempt to go down-market. Much as IBM had missed minicomputers initially, Digital had missed the advent of microcomputers though and the platform never took off. Bill Gates would adorn the cover of Time that year. Of course, by 84, Apple had AppleTalk and DOS was ready to plug in as well. Bill Joy moved BSD away from VAX in 1986, after having been with the PDP and then VAX for years, before leaving for Sun. At this point the platform was getting a bit long in the tooth. Intel and Microsoft were just starting to emerge as dominant players in computing and DEC was the number two software company in the world, with a dominant sales team and world class research scientists. They released ULTRIX the same year though, as well as the DECStation with a desktop environment called UW for ULTRIX Workstation. Ultrix was based on BSD 4 and given that most Unixes had been written on PDPs, Bill Joy knew many of the group launched by Bill Munson, Jerry Brenner, Fred Canter and Bill Shannon. Cutler from that OpenVMS team hates Unix. Rather than have a unified approach, the strategy was fragmented. You see a number of times in the history of computing where a company begins to fail not because team members are releasing things that don’t fit within the strategy but because they release things that compete directly with a core product without informing their customers why. Thus bogging down the sales process and subsequent adoption in confusion. This led to brain drain. Cutler ended up going to the Windows NT team and bringing all of his knowledge about security and his sincere midwestern charm to Microsoft, managing the initial development after relations with IBM in the OS/2 world soured. He helped make NT available for the Alpha but also helping make NT dominate the operating system from his old home. Cutler would end up working on XP, Server operating systems, Azure and getting the Xbox to run as a host for Hyper-V . He’s just that rad and his experience goes back to the mid 60s, working on IBM 7044 mainframes. Generational changes in software development, like the move to object oriented programming or micro services, can force a lot of people into new career trajectories. But he was never one of those. That’s the kind of talent you just really, really, really hate to watch leave an organization - someone that even Microsoft name drops in developer conference session to get ooohs and aaahs. And there were a lot of them leaving as DEC shifted into more of a sales and marketing company and less into a product and research company as it had founded to be back when Ken Olsen was at MIT. We saw the same thing happen in other areas of DEC - competing chips coming out of different groups. But still they continued on. And the lack of centralizing resources and innovating quickly and new technical debt being created caused the release of 5 to slip from a 2 year horizon to a 4 year horizon, shipping in 1988 with Easynet, so you could connect 2,000 computers together. Version 6 took 5 years to get out the door in 1993. In a sign of the times, 1991 saw VMS become OpenVMS and would make OpenVMS POSIX compliant. 1992 saw the release of the DEC Alpha and OpenVMS would quickly get support for the RISC processor which OpenVMS would support through the transition of Alpha to Itanium when Intel bought the rights for the Alpha architecture. Version 7 of OpenVMS shipped in 1996 but by then the company was in a serious period of decline and corporate infighting and politics killed them. 1998 came along and they practically bankrupted Compaq by being acquired and then HP swooped in and got both for a steal. Enterprise computing has never been the same. HP made some smart decisions though. They inked a deal with Intel and Alpha would become the HP Itanium and made by Intel. Intel then had a RISC processor and all the IP that goes along with that. Version 8 would not be released until 2003. 7 years without an OS update while the companies were merged and remerged had been too long. Market share had all but disappeared. DECnet would go on to live in the Linux kernel until 2010. Use of the protocol was replaced by TCP/IP much the same way most of the other protocols got replaced. OpenVMS development has now been licensed to VSI and is now run by vmssoftware, which supports many former DEC and HP employees. There are a lot of great, innovative, unique features of OpenVMS. There’s a common language environment, that allows for calling functions easily and independently of various languages. You can basically mix Fortran, C, BASIC, and other languages. It’s kinda’ like my grandmas okra. She said I’d like it but I didn’t. VMS is built much the same way. They built it one piece at a time. To quote Johnny Cash: “The transmission was a fifty three, And the motor turned out to be a seventy three, And when we tried to put in the bolts all the holes were gone.” You can of course install PHP, Ruby, Java, and other more modern languages if you want. And the System Services, Run Time Libraries, and language support make it easy to use whatever works for a task across them pretty equally and provides a number of helpful debugging tools along the way. And beyond debugging, OpenVMS pretty much supports anything you find required by the National Computer Security Center and the DoD. And after giving the middle finger to Intel for decades… As with most operating systems, VMS is finally being ported to the x86 architecture signaling the end of one of the few holdouts to the dominance of the x86 architecture in some ways. The Itatiums have shipped less and less chips every year, so maybe we’re finally at that point. Once OpenVMS has been ported to x86 we may see the final end to the chip line as the last windows versions to support them stopped actually being supported by Microsoft about a month before this recording. The end of an era. I hope Dave Cutler looks back on his time on the VMS project fondly. Sometimes a few decades of crushing an old employer can help heal some old wounds. His contributions to computing are immense, as are those of Digital. And we owe them all a huge thanks for the techniques and lessons learned in the development of VMS in the early days, as with the early days of BSD, the Mac, Windows 1, and others. It all helped build a massive body of knowledge that we continue to iterate off of to this day. I also owe them a thank you for the time I got to spend on my first DEC Alpha. I didn’t get to touch another 64 bit machine for over a decade. And I owe them a thanks for everything I learned using OpenVMS on that machine! And to you, wonderful listers. Thank you for listening. And especially Derek, for reaching out to tell me I should move OpenVMS up in the queue. I guess it goes without saying… I did! Hope you all have a great day!