The VMS Shark

OpenVMS Notes: Linux

  1. The information presented here is intended for educational use by qualified computer technologists.
  2. The information presented here is provided free of charge, as-is, with no warranty of any kind.
  3. Is this text too small? You have two options:
    1. hold down the CTRL key while rolling the mouse wheel (zoom-in, zoom-out)
    2. use your keyboard like so:
      • hit: CTRL with "-" key to zoom smaller
      • hit: CTRL with "+" key to zoom larger
      • hit: CTRL with zero key to reset zoom
Edit: 2018-01-22
Executive Summary

Introduction (Linux on an OpenVMS information page?)


Okay so everyone reading this already knows that OpenVMS is an operating system which competes with UNIX and Linux so why did I include this topic as part of OpenVMS Notes?

some answers/reasons:

  1. We are currently running MariaDB-5.5-25 on OpenVMS and are experiencing shutdown-related problems associated with very large databases using the InnoDB Engine. Most self-support blogs claim these issues can be fixed by upgrading to MariaDB-10.0-xx which is not (yet) available on OpenVMS. So setting up a nearby Linux box with MariaDB-10.1-19 should do the trick (application software on the OpenVMS would just send database requests over to the Linux box via a private network. Easy-peasy!)
  2. Computer industry know-it-alls assert that every computer programmer should be familiar with at least five computer languages and/or scripting environments. A similar case could be made for familiarity with 3-4-5 operating systems. These additional skills should translate directly into increased job security and employability (Happy Wife = Happy Life).
  3. Linux is the fastest growing computer ecosystem with 50% of all the computer systems on the planet are already running some sort of Linux. Got an Android phone? Android is a stripped-down version of Linux.

Reality Checks

OpenVMS is just as fast on modern hardware as UNIX or Linux. Quick installation time, ease of use, and stability have convinced me that OpenVMS is the superior OS. On top of this, OpenVMS does a much better job managing virtual memory (read on)

Linux has been the plaything of academia for a decade or two now which means it Linux is more feature-rich than proprietary operating systems, but it is not friendly. What follows are a few examples of many.

p.s. See my VMS vs. UNIX page for technical details

Performance Issues (a very small summary)

Editing a file on Linux

note: other editors exist but these are the only two I encountered during recent Linux installations

Different Linux distros use different commands to do similar things

The only thing common with the various Linux distributions is the name "Linux". For example, numerous Linux distributions use a different tool to partition a hard-disk. For example, check out the following list of commands to initialize then mount a disk.

OS Details

Initializing then mounting a disk in Windows is mostly automatic

OpenVMS Initializing then mounting a disk in OpenVMS is done in two commands:
  • initialize the disk:
       initialize/struct=5  disk-name:  volume-label
  • mount the disk:
       mount  disk-name:  volume-label
Note: online help is targeted at non-experts. Type "help initialize" or "help mount" from DCL to see what I mean
Linux In Linux you must do the following (incomplete list):
  • use either fdisk or parted to partition the disk (and know why you would use one over the other; most Linux systems only support one of these commands)
  • use mkfs (then choose one of 50+ volume formats); I prefer mkfs.xfs for most Linux volumes but formats like vfat and NTFS are available for those people requiring compatibility with Windows
  • use xfs_admin to set the volume label
  • use mkdir /mnt/whatever     (to create a mount point)
  • use mount /dev/sda3 /mnt/whatever
  • edit /etc/fstab                      (to force an automatic mount during the next reboot)
  • caveat: newer Linux distros also support LVM (Logical Volume Manager) which can increase overall confusion.
Note: online help is meant for experts. Type "man mount" or "man umount" to see what I mean. 

comment: For those of us who have worked on systems initially set up by, or previously maintained by, the clueless, perhaps a less friendly software environment is desirable.

Software Updates (support)



The Platform Name Game: x86, x86-64, x64, ia64, etc.

Getting Linux for an HP Integrity rx2660

Linux IA64 distributions list by most recently published update

Gentoo Linux @ Wikipedia

Debian Linux @ Wikipedia

FreeBSD @ Wikipedia

SuSE @ Wikipedia

CentOS @wikipedia

Ease of Install (Easiest First)

  OS Type install
1 OpenVMS binary 100% 100% < 1 hour
  • while OpenVMS is not a version of Linux or Unix,
    it still occupies the top spot for ease of installation
2 SuSE binary 100% 100% 1-2 hours
  • a pc-based terminal emulator is required; a real VT monitor will not work
  • elilo setup was done for me including the boot manager entry (cool)
3 CentOS binary 100% 100% 1-2 hours
  • elilo setup was done for me including the boot manager entry (cool)
  • this is a very old offering from 2008 so did not offer a version of MariaDB
4 Debian binary 100% 95% 2-3 hours
  • installation failed in the final phase (elilo setup); I had to to it manually
5 FreeBSD binary 100% 90% 2-3 hours
  • appeared to install in under 30 minutes. But then I discovered ...
  • that the installer never bothered to create a boot partition.
  • you need to do a manual partitioning using gpart (very unfriendly)
  • you will need to format the partitions with newfs
  • no elilo-like tools exist so you will be setting up the boot partition manually
9 Gentoo source build 5% n/a > 7 hours
  • after the initial boot, the run-time environment quickly shifts to the VGA monitor
  • installation instructions were spotty so I learned a lot the hard way
  • not recommended for anyone other than experts and/or hackers
  • provided the greatest amount of fun combined with the greatest amount of frustration
  • When I finally got this working I was reminded of a line from the movie "This Island Earth" where the alien says "you have assembled an interocitor; a feat which few men are capable"

Gentoo comments, caveats, and gotchas


  1. Type very carefully. This command "tar --help" passes one switch to tar while this command "tar -help" passes four switches (h, e, l, p) and will just ignore anything it does not understand
  2. Lots of UNIX sites published their own Gentoo installation guides but you would be wise to ignore everything published before 2014 because that year Gentoo went through major changes
  3. Using "parted" to partition your disks
  4. The Gentoo handbooks I tried (x86, amd64, ia64) in 2016 all work properly but are not 100% accurate
  5. If you do not execute the "swapon /dev/sda2" command, tar will fail when it unpacks the stage3 tarball
  6. Do not modify file "make.conf" in the IA64 version. Just inserting "-march=native" will cause numerous errors
    1. I checked out gcc on other Gentoo distros including i486, i586 and i686 but none of them ever mention (in the help) using "-march=native" although writing a simple hello-world.c program then compiling with "-march=native" seems to work. But the output appeared to be the same as not using the switch at all
    2. The Gentoo installation manual seems to infer that switches "-march" and "-mtune" are synonyms but they are not. The first switch selects the CPU architecture (eg. i586) while the second switch selects a specific optimization within the specified architecture (eg. pentiumiii)
    3. The IA64 version of gcc in 2016 does not support a -march" switch because this compiler can only generate Itanium code. Inspecting verbose help tells us that switch "-mtune" can have only two values: "itanium1" or "itanium2" with the compiler defaulting to "itanium2".
      • if you are seeing a lot of build errors then try using switch "-mtune=itanium1"
      • HP appears to have stopped working on Linux source code (at least from what I can see in the comments area of the IA64 kernel). I can only assume that they worried that free Linux would hurt sales of their own proprietary UNIX product called HP-UX
  7. Many people skip chapter #3 (setting up the network) because it auto-configures via dhcp during the CD or DVD boot. However, you still must copy "/etc/resolv.conf" to the Gentoo hard drive before you execute "chroot". Why? After you execute "chroot" you will be isolated from the previous environment. Failure to do this will cause file retrieval failures when you execute "emerge-webrsync"
  8. The IA64 Handbook is missing this command in chapter #4
        mkfs.vfat /dev/sda1
    which is required before copying your boot loader in chapter #10. Do not forget to mount this volume before executing "elilo --efiboot" (or consider setting up the boot partition manually; that's what I did on Gentoo as well as Debian
  9. After you issue chroot I suggest you issue the passwd command for root. Failure to do this now will cause problems during your first boot in chapter #11
  10. On your first kernel build you would be wise to do an automatic build via command "genkernel all". This will produce a kernel similar to the one associated with the CD ROM (will auto-detect hardware but boot a little slower). Once everything works properly you could try "make menuconfig" on a subsequent build.
  11. The file elilo.efi found on the Gentoo hard-drive is corrupt so copy the file used by the CD or DVD
  12. Here are the contents of elilo.conf on the boot partition (worked on 2016-0-xx)
      append="initrd=initramdisk root=/dev/sda3"
    and here are the contents of neil.msg on the boot partition (just a simple text file)
        gentoo1  (gentoo with ram disk)
        gentoo2  (standalone)

Debian comments, caveats, gotchas, and gotchas

What's up with elilo on Linux distros?

Overview 2016

Installing CentOS-5 on an HP ProLiant DL360-G5

Installing CentOS-7 on an HP ProLiant ML370-G6

LVM (Logical Volume Manager)

Anyone who has moved to CentOS-7 will notice that the primary Linux partition has been mounted using LVM (Logical Volume Manager)


Installing CentOS-7 on an HP ProLiant DL385-G7

OpenVMS-Linux System Hybrid

as of this writing (2017.01.xx)

		+------------------------+	+--------------------------+
		| server : HPE rx2800-i2 |	| server : HP ML370-G6     |
		| OS     : OpenVMS-8.4   |	| OS     : CentOS-7        |
		| purpose: business s/w  |	| purpose: MariaDB-10.1.19 |
		| net-1  : TCP/IP        +------+ net-1  : TCP/IP          |
 private  ------+ net-2  : TCP/IP        |	+--------------------------+
 intranet	| net-3  : DECnet        +------> other OpenVMS systems
		| net-4  : DECnet        +------> other OpenVMS systems 

Real-world Linux Problems

1) We can not install or update software on one of our CentOS-7 platforms

First off, we have two Linux platforms; one for development and one for production. The recommended approach is to first install (or update) software on the development box. If testing reveals everything is working properly then we would repeat the procedure on the production box. This also keeps both platforms more-or-less in sync.

I wanted to install the tree utility so I logged onto the development box where I entered this command:

	sudo yum install tree

... which worked properly. Then I repeated this command on the production platform which failed with numerous errors associated with file /usr/libexec/urlgrabber-ext-down which is a python script. What was worse was this: you could not execute most yum commands including "yum check-update". Investigating further, I noticed that someone had installed python3 then updated the symbolic link so that the python command pulls up python3 rather than python2. 

There are only two ways out of this problem (remember that this is an active business system).

  1. modify the symbolic link for "python" and point it at the symbolic link "python2" which probably points to a directory like python2.6. This will restore the system to its previous functionality but could break something if newer applications required python3 to be the default
  2. modify the first line (the shebang or sharp-bang hack line) from this "#! /usr/bin/python" to this "#! /usr/bin/python2"

It is safer to go with choice-2 for now then do choice-1 after you talk to your developers then test the changes on a qualification system before putting into production.

Update: failure to go back to choice-1 will cause other problems. For example, you will not be able to execute "firewall-cmd" from either the command line or graphically.

2) Never use a graphical console to update software

I have experienced several instances where updating software though a graphical interface fails for some reason then breaks the graphical interface. It should not surprise anyone that updating gnome-session, or any of its dependencies, might disturb the very session that is running yum or rpm

So if you are on the system console (which is almost always a VGA monitor) and want to move to non-graphical session, try one of the following keystrokes:

keypress description notes
CTRL ALT F1 switch to terminal 1 (the graphical interface) only graphical when runlevel > 3
CTRL ALT F2 switch to terminal 2 (/dev/tty2)  
CTRL ALT F3 switch to terminal 3 (/dev/tty3)  
CTRL ALT F4 switch to terminal 4 (/dev/tty4)  
CTRL ALT F5 switch to terminal 5 (/dev/tty5)  
CTRL ALT F6 switch to terminal 6 (/dev/tty6)  

The only other way to safely disable graphics is to lower the runlevel of your system to 3. (but only do this if you are certain that you won't kill some process currently needed by your customers)

3) Using Windows to access a remote desktop served up by CentOS or RedHat

The self-help blogs really fall down on this one because the only secure way to do this is to tunnel x-sessions over SSH. But whenever anyone on a self-help blog asks how to do this only using SSH, some idiot will chime in with a procedure on how to do it using VNC, RealVNC, TigerVNC or Vino which are all insecure.

CygWin and CygWin/X

Recommended Books

How Linux Works: What Every Superuser Should Know - 2nd Edition (2015) Brian Ward

The Linux Programming Interface (2010) Michael Kerrisk
A Linux and UNIX System Programming Handbook

External Links

Back to OpenVMS
 Back to Home
Neil Rieck
Kitchener - Waterloo - Cambridge, Ontario, Canada.