Yesterday I mentioned news about a fresh emulator effort, one that's based in open source resources. Piotr Głowacz and some volunteer developers have been trying to create software that lets Intel servers boot up MPE/iX. The early going via open source has had its roadblocks, springing up in unexpected places. After the three articles we've written about the attempts, Głowacz emailed us that the exposure has helped.
We've got many responses from people willing to help us in our effort. The most important advance we've achieved is to get the MPE/iX 6.0 up and running. Of course, it's not at a solid state -- we're experiencing unexpected system crashes, for example, but at least the OS is recognizing all of our emulated devices.
There's a pretty good reason why an open source emulator is going to take a while to get stable. Dr. Robert Boers, whose company Stromasys invented and polished the CHARON HPA/3000 emulator, has an understanding of the shortfalls that are still ahead for the open source effort -- as well as an admiration for trying to open-source create an emulator.
Their booting problem they will no doubt find, if they ever get that far, will be due to not having a working Processor Dependent Code (PDC) implementation, which makes all the difference between booting a general PA-RISC system and an HP 3000. As we found out, even understanding the HP 3000 PDC requires a PhD (and access to source code), let alone implementing it.
Apart from the PDC, there is of course the detail of implementing a virtual PA-RISC CPU -- one that not just interprets code in a very slow manner, but dynamically translates the PA-RISC binary instructions.
Boers also noted that "even HP did not have all the [booting] information, and we had to step through MPE/iX instruction-by-instruction (including its internal 16-bit code emulator) to make sense of it." More than two years ago his company, using HP-supplied tech documentation, clawed through the barriers to make MPE/iX booting stable in CHARON. "It was a tough one to write," he said of the effort. Compared to the CHARON emulators for the DEC market, "this is by far the most complex emulator."
It's a pretty deviously complex system. The big problem is that large parts of the operating system are still running in 32-bit mode. MPE's basically an emulated operating environment. We were debugging an emulator running on an emulator.
"Apart from the PDC," Boers added, "there is of course the detail of implementing a virtual PA-RISC CPU that not just interprets code in a very slow manner, but dynamically translates the PA-RISC binary instructions." In other words, booting is a very early success. Simulating the processes of the HP 3000 via software -- even at an unstable state -- is a good start, but it's a great distance away from being able to replicate 3000-grade performance. Even Stromasys is working on getting versions of CHARON that can match N-Class top-end systems.
Głowacz said during the past week that "for now, we're working with the HPSUSAN number taken from the rp7400 we own (it's stored in our PDC/NVRAM)." That's a PA-RISC system built for HP-UX, not MPE -- and so missing the essential PDC requirement. "I'm just not sure if it'd be enough when we'll test third-party software," Głowacz said. "As for our costs [to build this], it's a 100 percent free-time project, so we're working in our spare time. That's why it took so long to bring our simulator to the current state."
Głowacz hasn't said how long his volunteers have been working on their simulator. But Boers said this kind of work just underscores the ideal that virtualization is the future for legacy environments like MPE.
I appreciate people who try to simulate legacy systems. I believe it is the only way in the future to capture the knowledge embedded in business critical legacy applications, instead of ripping everything up and repeating the mistakes of the past in a new build. Piotr might get more appreciation if he would build an HP 9000 out of it that can run HP-UX. That is somewhat simpler, as it does not have the obstacle of an embedded licensing mechanism. Before we implemented the HP 3000 PDC, we effectively had virtualized an HP 9000, running Linux.
The open source goal "for now is to have 6.5 MPE/iX up and running for at least a week," Głowacz wrote today. "After the base system beta testing, we'd like to go for a more complex verification -- IMAGE maybe?"