While many tend to fixate on OpenVMS' First Boot on Intel x86-64, there are actually a number of key milestones before we achieve First Boot.
Therefore, it is time to share some of these intermediate milestones with you — as Proof Points of our progress to First Boot. This page will replace the quarterly "State of the Port" powerpoint slides we have released in the past.
Proof Points to x86-64 First Boot
Proof Point #1 is defined as – stopping at the end-of-SYSBOOT breakpoint and issuing “;L” to XDELTA to get the list of images, including their image sections, SYSBOOT has loaded.
On 29-May-2018 we demonstrated ";L" at the end of SYSBOOT. Its output is at the end of this posting. Everything is not perfect yet but the current result is as expected. It shows many things have been accomplished and the overall underpinnings for the next step are in place.
The following work remains in order to make things complete at this point in the boot process.
- There are four more exec images to be loaded: ERRORLOG.EXE, SYSTEM_SYNCHRONIZATION.EXE, SYS$PLATFORM_SUPPORT.EXE, and SYSTEM_PRIMITIVES_0.EXE. The first two will be picked up within the next week. The latter two require more compiler and memory management work.
- We need to read the parameter file X86_64VMSSYS.PAR and populate system data cells with the appropriate values.
- XDELTA needs to update its “;L” output formatting as some values are 64b that are 32b on Alpha and IA64.
Boot Path Output
Click here to see the full boot path from BOOTMGR> BOOT to ;L. The linked PDF is the output from a captured terminal session from a network boot of the memory disk file, which was created on our development cluster.
We achieved our second Proof Point on June 29, 2018, by successfully making the transition from executing in the boot environment to executing a routine running in the runtime environment. This requires successfully switching to system context.
This proof point represents work in the compiler, the linker, the loader, and the executive code which manages context switching. Also, the XDELTA debugger was a necessary component for verifying the result. An underlying facilitator of this accomplishment is the calling of a routine in another image which, in and of itself, is a significant milestone.
Calling a system service involves proper setup of dispatch tables, initializing the x86 SYSCALL mechanism, and successfully returning from the call. Much of this operation is new code for x86 integrated with the existing VMS system service interface.