# OpenVMS

OpenVMS (Open Virtual Memory System) anciennement VAX-11/VMS, VAX/VMS ou (officieusement) VMS est un système d'exploitation propriétaire créé par DEC en 1977 pour ses ordinateurs VAX. Le système a depuis été porté sur les processeurs DEC Alpha, et enfin Itanium.
Hewlett-Packard Enterprise (HPE) détenait les droits sur OpenVMS jusqu'au 30 juin 2019, dont les dernières versions sont nommées OpenVMS, en raison de la présence d'une couche de compatibilité POSIX. C'est maintenant la société VMS Software, Inc. (VSI) qui poursuit désormais le développement d'OpenVMS et qui fournit donc les licences d'utilisation.
Par ailleurs, HPE a aussi annoncé par mail qu'il délivrait en 2020 ses dernières licences annuelles gratuites Vax/Alpha/IA-64 dans le cadre de son "HPE OpenVMS Hobbyist Program" (licences valides jusqu'au 31 décembre 2021). De son côté, VSI a annoncé fournir son "Student Hobbyist License Program" utilisant l'émulateur FreeAXP Alpha sous Microsoft Windows.
OpenVMS est réputé pour sa stabilité et sa sûreté, bien que l'on ne sache pas vraiment si cette réputation est due à ses qualités propres ou à sa rareté qui le mettrait à l'abri de la majorité des hackers. Système très répandu avant la vague Unix, OpenVMS est le plus souvent employé au sein de systèmes bancaires, militaires ou industriels, comme pour piloter des usines ou encore la ligne 14 du métro de Paris$^,$. L'uptime le plus élevé d'une machine OpenVMS est de 17 ans, aux chemins de fer irlandais.

## Historique et versions

C'est en 1980 que VAX, à l'occasion de sa 2.0, est rebaptisé VAX/VMS. Puis il est à nouveau rebaptisé, OpenVMS, en 1991, marquant ainsi l'adhésion à des normes industrielles comme POSIX ou Unix. Puis en 1992 apparait la première version d'OpenVMS pour les systèmes d'AXP Alpha : OpenVMS AXP1.0.
En 1994, la version 6.1 d'OpenVMS marque la fusion des deux branches VAX et Alpha. Puis en 2001, Compaq annonce le port d'OpenVMS au nouveau processeur 64bits Itanium d'Intel, peu de temps avant son acquisition par Hewlett Packard.
La dernière version de OpenVMS (en 2019) est la 9.2.

## Particularités de OpenVMS
### Noms de fichiers et versionnement

Les noms de fichiers sous VMS sont caractérisés par un numéro de version placé après un point-virgule suivant l'extension du fichier. Par exemple, le nom de fichier nom.txt;45 fait référence à la version 45 du fichier nom.txt. Ce numéro de version s'incrémente automatiquement à chaque modification du fichier. Le nombre de versions mémorisées dépend d'un paramètre du fichier ou du répertoire. En ne spécifiant pas la version (donc en employant nom.txt seul) on référence toujours la dernière version.
Il existe une commande spécifique à VMS pour n'effacer que les anciennes versions : purge. La version la plus élevée acceptée par le système de fichiers est fixée à 32767. Pour interdire la création d'une nouvelle version d'un fichier, il suffit de définir le numéro de version à 32767.

### Particularités du langage de commande (DCL)

Toute commande peut être abrégée en aussi peu de caractères qu'il est possible pour qu'il n'y ait pas d'ambiguïté possible avec une autre commande. Par exemple, la commande SHOW DEVICE peut aussi s'écrire SH DEV (aucune autre commande ne commence par les caractères SH). On peut également écrire SHOWBIZ DEVICE, puisque le système ignore tous les caractères après le nombre minimal requis (ici, une fois les deux caractères SH lus, aucune autre commande ne commençant par ces caractères, l'interpréteur passe au mot suivant). La plupart des paramètres d'une commande peuvent être placés librement. Les commandes suivantes copient toutes deux A.TXT vers B.TXT en mode verbeux (option /LOG) : COPY/LOG A.TXT B.TXT, COPY A.TXT B.TXT/LOG.