L'azienda VMS Software, che cinque anni fa ha acquisito da Hewlett-Packard i diritti per continuare lo sviluppo del sistema operativo OpenVMS (Virtual Memory System), ha pubblicato la versione OpenVMS 9.1, nota per l'implementazione del supporto per l'architettura x86-64. Il sistema operativo OpenVMS è in sviluppo dal 1977 ed è utilizzato in sistemi ad alta disponibilità che richiedono elevata affidabilità; in passato era disponibile solo per le architetture VAX, Alpha e Intel Itanium. È notevole che i tentativi di portare OpenVMS su sistemi x86 alla fine degli anni '80 non abbiano avuto successo a causa della cessazione del finanziamento, dopo di che l'autore del port è passato a Microsoft e ha creato Windows NT.
Il port di OpenVMS per l'architettura x86-64, oltre a essere installato su hardware reale, supporta l'utilizzo in macchine virtuali KVM, VMware e VirtualBox. Il port è stato costruito sulla base degli stessi codici sorgente di OpenVMS utilizzati nelle versioni per le architetture Alpha e Itanium, utilizzando la compilazione condizionale che sostituisce le funzionalità legate alle particolarità delle architetture hardware.
Il codice di OpenVMS è stato adattato per la compilazione utilizzando LLVM invece del compilatore proprietario GEM, utilizzato per la compilazione dei port per Alpha e Itanium (è stato scritto un traduttore che riflette il GEM IR nell'LLVM IR, e Clang è stato adattato per compilare codice C++ per OpenVMS). Per la determinazione e l'inizializzazione dell'hardware sono stati impiegati UEFI e ACPI, mentre per il caricamento è stato utilizzato un disco RAM invece del meccanismo di avvio speciale di VMS, specifico per l'hardware. Per emulare i livelli di privilegi mancanti di VAX, Alpha e Itanium, assenti nei sistemi x86-64, nel kernel di OpenVMS è stato utilizzato un modulo SWIS (Software Interrupt Services).
Fonte: opennet.ru
