Future of operating systems

I actually used VMS back in the days of DEC popularity. I have to say it has one of the best command line interfaces of any system I've used. The commands and options are highly synonymous, not too long, and easy to remember. But unfortunately in this world being good usually does not mean popular.

I feel the same way about Pascal as a programming language. I always found it really easy to use and easy to remember. When C took over the world I got left behind. Every time I learn something about C I forget it a week later.
 
W.r.t. command lines - all who had the pleasure to work on VMS say HI!
And don't get me started on the DEC C compiler...

I notice that VMS commands seemed to have more in common with DOS than UNIX. That said, it wasn't actually UNIX was it? It had a POSIX layer, had CDE and used / rather than '\' but that's about as close as it gets ;)

I remember we had an old Alpha in our UNIX group headquarters and when sitting at it it was so frustrating; It looked like a pretty decent CLI but... I didn't know how to actually get it to do anything. Nothing was quite the same as UNIX! ;)
 
I didn't mean that one should not use a GUI, but rather tying the underlying OS into a GUI is a poor idea. They should be separate and users should have choices. An "OS" that is not configurable in that regard is unprofessional in my opinion.

As for productivity, yes work was being done in a text based environment before. Business productivity is actually not about being productive but is simply a fashion statement. A document typed in a text editor and sent to a daisy wheel printer is perfectly readable. But yeah, for sure, there is no way you can tell people that. They simply don't believe it.

The possible direction that companies are going in is - quantity over quality. Take a number and the next representative will be with you shortly.
 
CraigHB
Yes, you needed to have someone tell you the idea behind VMS and the rest or you would not get anywhere. And everything was different. But I also have a soft spot for pascal and it's siblings. Bugs are usually of the "why does it..." kind, not the "why crashed it here?" type.
 
I actually used VMS back in the days of DEC popularity. ... But unfortunately in this world being good usually does not mean popular.
VMS was very popular in its day (the late 70s to late 80s); probably the second most common operating system (after MVS, which ran on mainframes). In those days, Unix was a toy that was used by computer science researchers at Universities and large corporate labs (Bell Labs, HP Labs, IBM research). What eventually killed VMS was not the operating system, but the fact that it was only available on one type of computer (the VAX), and that type of computer ended up not achieving world dominance. Instead, that trifurcated into mainframes (which continued to run MVS), RISC workstations and small servers (running various Unix flavors), and PCs (running DOS and Windows). You have to remember that the ability to run a version of Unix on a PC came relatively late, in the late 90s. By that point, VMS had missed the bus (even though it eventually was ported to a RISC machine). By the way, VMS is not dead; you can still buy it today from HP. You just have to get the somewhat rare hardware it runs on.

That said, it wasn't actually UNIX was it? It had a POSIX layer, had CDE and used / rather than '\' but that's about as close as it gets ;)
When VMS was popular, there was no POSIX yet. Being compatible with Unix was not seen as a necessity or a goal. If you wanted to run Unix on the same hardware, you could. Matter-of-fact, the VAX was the main machine on which various Unix flavors were developed (both at Bell Labs and at Berkeley). And later, when Digital had its own RISC machine (the Alpha, available in workstations and servers), they also sold a Unix flavor for it.

The other thing to remember is that VMS is really somewhat older than Unix; it was fully production-worthy in the late 70s, when Unix was mostly a research prototype.

I remember we had an old Alpha in our UNIX group headquarters and when sitting at it it was so frustrating; It looked like a pretty decent CLI but... I didn't know how to actually get it to do anything. Nothing was quite the same as UNIX! ;)
Did the Alpha run VMS, or did it run Digital's flavor of Unix (which at that time was proably called OSF/1 or Tru64)? I don't think I've ever logged into an OSF/1 machine. In those days, the differences between BSD and System/5 machines were quite significant, and things just didn't "feel right". So it could be that you actually logged into a Unix machine, and didn't know it because it was too unfamiliar.
 
Did the Alpha run VMS, or did it run Digital's flavor of Unix

It was VMS. I think in particular it may have been OpenVMS but other than that I am not sure; I doubt even if I was sitting at the terminal now I would know how to find out ;). At the time it felt even more foreign to me than Plan 9.
 
I was using DEC VMS on Alpha. At the time they were very nice machines. The Alpha processors were way more advanced than the PC processors of the era. I really liked those machines, compile times for the project I was associated with were about four times faster than the PC cluster they replaced which was running SCO Unix. That was one of the last of the Alphas and I'm glad I had the pleasure of using them, sorry to see them go.

And yeah, you had to go into a "VMS" mindset to use it, didn't have much in common with Unix. It used its own conventions, didn't follow POSIX or anything. At the time It didn't bother me much since I was still pretty new to Unix. Now I might find myself getting frustrated with it as Unix (and GNU/Linux) is all I've used other than Windows in the last couple decades.
 
However the difference in efficiency between a research paper done in Word and one done in LaTeX is very clear.
Actually I did read couple of months ago a paper about this which claimed that using Microsoft Word reduced number of errors and increased productivity compared to LaTeX significantly. Although I personally prefer LaTeX in scientific writing.
 
Veering on to VMS:
The OpenVMS name is basically marketing - and I guess because of their adoption of Posix.

Alphaservers ran Windows NT (in workstation form), Tru64 (Dec Unix) and of course OpenVMS.

The actual OS is basically like Unix, the core is command line, the GUI is an added extra. The command line language is more structured than Unix, given you have a limited number of commands available in DCL (their shell). For example, convert a string to uppercase:

string=f$edit(old_string,"UCASE")

compared to Unix where you'd use an external to the shell program like TR, SED, AWK etc.

In later variations of OpenVMS they even introduced pipes: eg

PIPE SHOW MEM | SEA SYS$INPUT "Paged pool" /window=2

which invokes pipe, executes SHOW MEMory and then it goes through SEArch via SYS$INPUT (stdin) to look for "Paged pool" .

You can also do everything as aliases, all commands can be abbreviated to their minimal unique length (eg SEA for SEARCH) and it has options for everything. You could create an alias such as:

S*EA:=SEARCH /WIND=(4,6)/BEFORE=YEST/EXCLUDE=(*.TXT)/EXACT "string_to_search_for"

which means invoke search if the user type S (as a minimum) or SE or SEA and it would run the command SEARCH with the various options. FYI:
/WIND=(4,6) - search output window 4 lines before, 6 lines after the matched string
/BEFORE=YEST - only files older than yesterday.
/EXCLUDE=(*.TXT) - you guess it!
/EXACT - an exact match.

The HELP is second to none. It destroys any other OS with its online HELP system which is fully adaptable - ie you can add additions to it, examples etc. If you've even seen their physical manual/documentation sets they are enormous and most of that is available in online HELP format.

It's a phenomenal system when you get to know it (and use it). Its clustering is second to none, its ability to shadow volumes, use distributed batch systems, load balancing etc was (and is) light-years ahead of most OS. You could (can?) even get the source code for it.

So, the reason it's not super-popular? Well DEC couldn't market water to a thristy camel. They were a bunch of engineers. They sold it off to Compaq (fire-sale!) who truly stalled its progress and eventually HP gobbled it up. Now HP have fobbed it off to a software vendor who's attempting to re-write it for Intel AMD64. Maybe if they succeed it will live on.

The primary reason, though, is it's an old design and expensive. Once configured the auditing , accounting and security sub-systems can be a task to maintain. It's a hands-on OS where you need a System Administrator who can fix and tune the beast (especially complex clusters and galaxies and/or dynamic environments) and a lot of businesses don't want to pay that - they'd rather go for Microsoft because hardware is cheap, the OS is cheap.
 
JazzSinatra There was one well known article somewhere that says the opposite. That TeX or LaTeX was far more productive. A university produced a same comparison even more recently. I'll look to see if I have them bookmarked.

Book publishers still accept and prefer TeX or LaTeX over Word documents though that has changed as amateur writers only have Windows computers and, therefore, only take the time to know Word so publishers reluctantly allow it. One guy, who used to work for me, did all his write ups in LaTeX because there were occasions when we needed to send something out where they only had Word so it was easy for him to publish it as such--or a pdf, etc. We never used Word for anything else.

EDIT: I don't have the links. I'm sure they can be found online still if I tried to find them.
 
Well … With Word you get usable results very quickly, with (La)TeX you get excellent results, but it takes longer to learn.

Comparing Word with (La)TeX is somewhat difficult, because they actually serve different purposes. Word is a word processor, while (La)TeX is a tool for typesetting and desktop publishing.
 
Actually I did read couple of months ago a paper about this which claimed that using Microsoft Word reduced number of errors and increased productivity compared to LaTeX significantly. Although I personally prefer LaTeX in scientific writing.

Really? I would be interested in reading that (unless it is a Whitepaper from Microsoft ;))

Most of the time Word users can barely manage to keep to a consistent font haha
 
The actual OS is basically like Unix, ...
Except that it is nothing like Unix, except that both are accessed through a command line. The same is true of most other operating systems before the 80s, because graphics hardware was so rare, expensive and underpowered that a GUI was either impossible or impractical (sure, you could have bought a half-million $ Evans & Sutherland and built a GUI, but that would be silly).

Let's see, what's different in VMS? Process creation is very expensive, so the shell doesn't create a new process for commands, instead it runs them in the context of the shell. That's a reason why pipes weren't there originally either. The shell doesn't have IO redirect, but doesn't need it, because of no pipes. Instead, one used standardized IO redirects: Nearly every command has /INPUT=... and /OUTPUT=... options, which allow reading/writing files instead of pipes.

Networking was originally completely different: DECNet instead of TCP/IP. Totally different numbering and naming system, and tightly integrated into the shell. With that came the first fully functioning SAN/cluster/distributed file system (VAXcluster and local area cluster), at a time when Unix machines still had NFS with all its inconsistency and performance problem, which come from the fact that NFS has central servers.

The permissions model is different: Not 3 groups of 3 bits (user/group/other with read/write/execute), but four groups of four bits (the extra group is for system, and I forgot for what the extra bit was). With that comes an actual privilege model: Instead of a single root user (ID=0) which can do everything, all processes have privilege flags; one such privilege is to be the sys admin who can do certain things, another privilege is the ability to override file permissions, and so on.

Completely different way to specify file paths. Not /mountpoint/directory/otherdirectory/file, but mountpoint:[directory.oterdirectory]file.typ. Having a period in the name and a filetype is mandatory, in Unix it's just a convention. In practice, hardly anyone ever used explicit mountpoint names (they are actually disk drive names), but instead the admin defines system-wide aliases (called something like logical names), so the root disk is typically known as something like SYS$DISK:[dir.otherdir]..., and other disks might be DISK$MARKETING:... and DISK$ENGINEERING:...

The other gigantic difference is that the runtime privilege model is much richer. Unix only knows userspace and kernel. VMS has four levels; the one that really matters to user programming is that there are two levels for usermode programs, one for internals of the shell, the other for user programs. This is what allows the shell to run executables within its own process: it has memory protection.

And then the IO programming model is completely different. At its core, all IO is asynchronous, done by queueing IO onto things. Matter of fact, the basic IO system call is called QIO. Along with that goes a different model for asynchronous IO completion, which is the concept of the AST, an asynchronous completion routine. This is enabled by the CPU having a form of software interrupt which remains in user space, and is much lighter weight than hardware interrupts.
 
Yes all that, however, the comparisons talked about were in regard to command line. That's the similarity I was drawing with Unix and VMS. In reality they are nothing alike. I know, I administered and system programmed in it for over 20 years and still consult.
Swapping between the two can be a nightmare for the brain. You haven't even mentioned their file system, which is inherently a database with indexing built into RMS. Like I said, totally incomparable except it has a command line first, a GUI second.

And yes, process creation is a heavy task for OpenVMS, but the beauty of OpenVMS is its tautological ability for a process to be both a parent and a child. It has, lib$spawn (generic fork-like) /sys$creprc(set advanced privileges on a process) and even system() to create types of processes. The ability to continue a process (CONTINUE) that's been "killed" is something I miss with Unix-style vs OpenVMS.

It's use of descriptor arguments prevents many issues of buffer overflow that plagued unix years ago - a design concept in vms from the start (inherent in BLISS and MACRO as well as Fortran/C/Pascal). Some say security through under utilization but I'm not so sure. One example is the login service is made to lock users out after so many attempts. The beauty is if there's an attack under way it continues to present the login prompt while silently ignoring them; it doesn't even bother to consult the SYSUAF (the "passwd" file). It has built-in denial of service on services, even mini-firewalls for individual tcp/ip process so you can block ips from accessing SMTP for example. It's so old, so advanced, yet so behind the times.

Of course it has its down-sides. It's the anathema of the systemd designers who have the apparent goal of starting a system as fast as possible. Good old VMS likes sequential command files to start everything up.
It's a much more locked down, secure system than any Unix-like system, even when compared to things like selinux. It's a pity more people aren't exposed to it.

It's been around for decades, when it was touted as a dinosaur back in the 90s. Yet, it still exists. That, to me, proves even the current crop of OS like Windows NN/*BSD/Linux/macOS will still be around many decades from now. I tend not to believe soothsayers.
 
It's been so long I forgot most of what I ever learned about VMS. Yeah it had some great features. It was really well designed by the kind of engineers you don't see much anymore. I was darn happy with it when we got the Alpha cluster and I felt the same way, ahead of its time both in hardware and software. Enjoyed reading about it.
 
The Alpha running NT was a joke. For some reason, Windows has parts where the calling convention includes packed structs on the stack. So no function was sure if the pointers coming in were aligned. You know the Alpha did not like misaligned memory? At all? So the compiler had a switch to access all things as bytes.

Heise c't wrote back then that Microsoft had done the incredible to absorb the performance of that chip so the user would not be surprised by extremely fast system response.
 
I still have a DEC PWS600au running OpenVMS 8.4 as we speak. You can get it for free with a hobbyist license. But the development of OpenVMS was transferred from HP to VMSSoftware Inc. so it's future and the hobbyist license is a little bit uncertain. Development is a bit slow and especially the network parts are outdated. On the upside VMS is currently being ported to Intel CPU's so they're definitely trying.
 
Back
Top