Part 2→
by George Stachnik, Jun 1997
The HP 3000 and the MPE operating system are celebrating their 25th birthday this year. That means that this computing machine is about 175 years old in dog years.

And in computer years? Let's just say that of all the computer architectures being used commercially in 1972, the HP 3000 represents one of the very few still purring away at the heart of thousands of businesses today. It has a well-deserved reputation for being an extremely reliable and friendly machine, needing little of the day-to-day baby-sitting and care often required by other multiuser computer architectures. The more you talk to HP 3000 customers, the more you get the impression that you can simply lock your HP 3000 in the closet and forget about it. Like that bunny rabbit in the television commercials, it just keeps on going and going and going....

So why, you might ask, do we need another series of articles covering the basics of how to use the HP 3000? Surely, after 25 years, enough has been written about this machine and its software.

Surprisingly, the opposite is true. Although a great deal has been written, new material is needed to introduce people to the HP 3000. There are three reasons for this.

The first is that much of the HP 3000's introductory material was written ten, fifteen, or even twenty years ago. And the HP 3000, while based on the same architecture HP introduced in 1972, has reinvented itself again and again in order to keep up with changes in the IS industry. (See the sidebar entitled "The HP 3000: Where Did It Come From? Where's It Going?") Introductory material that doesn't address recent enhancements to the HP 3000 can be perfectly adequate so long as you want to run only old COBOL applications based on "Classic" HP 3000 architecture. It may be enough to understand just the HP 3000 of the 1980s if you have no interest in client-server, open systems, or the Internet. I'm writing these articles, though, for those who aren't interested in living in the past--not even with MPE.

Second, the companies that began using HP 3000s in the 1970s have grown. Applications once being used to support 20 users are now being used with newer and more powerful models of the HP 3000 to support more than 200 users. Some HP 3000 shops routinely have well over a thousand users logged onto a single HP 3000. These are mainframe-class workloads. And although HP 3000s require very little in the way of system management, you cannot multiply the number of users on your system by ten or a hundred without having to dedicate additional resources to managing the system.

Third, there's a whole new crop of people taking over management of these machines. Twenty-five years is a long time in anybody's career, and many of the people who have managed (and championed) HP 3000s in the past are simply moving on. As I talk to customers these days, I'm finding that today's HP 3000 system manager is now more likely to be young and have little HP 3000-specific experience, knowledge, or training. At trade shows and user group meetings, I am introduced to relatively new HP 3000 system managers who have been successful managing environments that include UNIX, Novell, or Microsoft. Now they've been given responsibility for an HP 3000, a machine about which they know little or nothing.

If you fit in this category, take heart; I think I have some understanding of what you're going through. When I encountered my first HP 3000 in 1983, all of my experience had been with IBM machines. I was glad to hear that the HP 3000 is comparatively simple and elegant to use (at least compared to a mainframe), but I was still expecting a long learning curve.

Luckily, I had easy access to a whole curriculum of HP customer training courses that were enormously helpful. Not only did I learn the technical details of running an HP 3000 shop, but I came in contact with other HP 3000 users who quickly convinced me that my mainframe myopia was a handicap, not an advantage.

Today's MPE "novices" are rarely so lucky. Although HP training courses still exist, they aren't taught as frequently (or as close to home) as they used to be. Worse, IS budgets are tighter than ever, and training is not as readily available as it was in the "good old days" of proprietary architectures and closed operating systems. Even if training were available, finding the time for it is more difficult than in the 1980s. For many customers, information about the HP 3000 (especially beginners' information) can be hard to come by.

In these articles I will make a small effort to correct that situation.

Logging On

In Lewis Carroll's Through the Looking Glass, Alice is encouraged to "Begin at the beginning." This always seemed like good advice to me, and that's what I'll do now. Let's begin by exploring how one logs on to an HP 3000. We'll also see how to explore your system, and find the programs, files, and information that are available to you. We may even learn a few other things along the way.

Logging on to an HP 3000 has traditionally been done using a terminal. In the not-so-distant past, just about everybody had a terminal (sometimes more than one) on his desk. Any standard "dumb terminal" can be used to log on to a 3000. However, it's highly recommended that you use a Hewlett-Packard terminal such as the HP 700/92. The reason is that the HP 3000's operating system makes use of a number of proprietary features of HP terminals, including something called "block mode" that we'll discuss in detail in a future article. If the terminal you're using doesn't support these features, you'll find yourself locked out of some parts of the operating system.

Of course, in today's world you're likely to have a PC or workstation sitting on your desktop. In that case, you need two things: an electrical connection between your desktop computer and the HP 3000, and a piece of software that lets your desktop computer act as if it were an HP terminal--i.e., a terminal emulator.

The desktop-to-3000 connection can use the same RS-232 protocol used by terminals. But a network connection using standard IEEE 802.3 or Ethernet is preferable. We'll get into the details of the HP 3000's network support in a later article. For now, all you need to know is that the HP 3000 supports industry-standard telnet services, and you can use them to log on to an HP 3000 from your desktop computer.

There is one limitation. In order to admit an inbound telnet session, the HP 3000 must be running under Version 5.5 (or later) of MPE/iX. If you're trying to make a network connection to a machine that's running on an older version of MPE/iX (or to a "Classic" 3000), then you'll have to fall back on older proprietary network protocols. The proprietary protocol that's used for making terminal connections is called "Network Services/ Virtual Terminal," or NS/VT. To log on to HP 3000s, HP-UX machines can use an NS/VT-based program called "vt3k" or industry-standard telnet (if the HP 3000 is running 5.5 or later).

If you're using an Intel-based PC on your desktop, a number of HP terminal emulators are available for MS/Windows 3.1, Windows 95, and Windows NT. Among the best are the Reflection series from Seattle-based WRQ Inc., and MiniSoft, from MiniSoft Inc. of Snohomish, Washington. Most PC-based terminal emulators support industry-standard telnet services to connect to hosts like the HP 3000. Reflection and MiniSoft also support the NS/VT proprietary protocols. For more information on these products, use your WWW browser to visit www.wrq.com or www.minisoft.com.

Regardless of what kind of terminal or terminal emulator you've connected to the HP 3000, pressing the RETURN key (on a PC, it's usually labeled the ENTER key) will cause the HP 3000 to transmit the string "MPE/iX:" back to you. This is a prompt from the HP 3000 inviting you to log on. It's analogous to UNIX's "login" prompt.

Incidentally, if something other than "MPE/iX" appears on your screen, don't panic. The system prompt is configurable and your system manager may have changed it. Regardless of the prompt that appears, the command you'll use to log on is always the same. It's called the "Hello" command. (Didn't I tell you that the 3000 is a friendly little machine?)

The HELLO command you enter will typically include two parameters separated by a period. (See Figure 1.) These two words identify you to the system. The first one is your user name, and the second one is your account name. When you log on, at a minimum you must specify a user name and an account name. If there are passwords associated with your user and account (and there should be!), you will be prompted for them. When you've entered all the necessary passwords, the HP 3000 will display a message that identifies the system you've logged on to (called the "Welcome Message" in MPE-speak) and log you on to the system.

Figure 1: Logging on with a "HELLO" command

What happens next depends on how your system has been set up. Frequently, system managers configure their HP 3000s so that menu programs or applications are executed automatically upon logon, and exiting those applications causes you to be automatically logged off the system. You never interact with the operating system directly. So if you log on to a 3000 and are suddenly confronted with an application program, your system manager has set up your particular user and account to work that way. We'll show you how to do that in a future article, but for now, ask your system administrator for a user and account that does not run any application program, but instead allows you to interact with the MPE/iX operating system directly.

The HP 3000: Where Did It Come From?
Where's It Going?

The HP 3000 has been around, in one form or another, since 1972. The first machines were based on a 16-bit architecture designed and built by Hewlett-Packard engineers. The HP 3000's operating system was named the Multi-Programming Executive, or MPE. Although it got off to a shaky start (HP had to recall the first models), the machine soon began to enjoy success with commercial accounts, largely because of an award-winning database management system called IMAGE, which was bundled with each system.

At first, HP 3000s could support only communities of ten or twenty concurrent users. But HP enhanced MPE, IMAGE, and the HP 3000 hardware throughout the 1970s. In the mid- 1980s the company announced the last and most powerful 16-bit model, the HP 3000 Series 70. By contemporary standards, the Series 70s did not have powerful hardware. The 16-bit processor ran at roughly the same speed as an Intel 286, and RAM configurations were limited to 16 MB.

In spite of its comparatively anemic hardware, the Series 70 was amazingly scalable for its day. Typical Series 70 workloads involved "heads-down" database transaction processing with about 100 concurrent users. The strength of the 3000 was in the software--specifically in the MPE operating system (known by this time as MPE V). The IMAGE DBMS had by now been renamed TurboIMAGE and enhanced to accommodate larger databases and more concurrency.

So many computer vendors have said that their systems and software are "tuned for transaction processing" that the claim has ceased to have any meaning. But in the case of the HP 3000, the claim is not idle. HP has done a tremendous amount of R&D to understand exactly what kinds of stresses are placed on computer systems by commercial transaction processing workloads. And the payoff is an HP 3000 truly tuned for the best possible performance.

In spite of this, by the late 1980s the HP 3000's 16-bit processor was becoming a bottleneck. HP realized that if it wanted to grow the machine beyond midrange business workloads of 100 users or so, it had to make a quantum leap in hardware design. So, in a bold "bet-your-business" move, the company undertook the development of a whole new 32-bit RISC computer architecture. Code-named Spectrum, this project bore fruit in the form of a stripped-down high-speed architecture called PA-RISC.

Today, RISC architecture is closely identified with UNIX-based operating systems. And HP's version of UNIX, called HP-UX, is the basis of the HP 9000 workstations and servers. But at the same time it was creating HP-UX for PA-RISC architecture, HP was also totally rewriting the 16-bit MPE V operating system for PA-RISC, calling it MPE XL. PA-RISC architecture is the foundation of the HP 3000 Series 9xx and HP-UX-based HP 9000. The operating system is the only significant difference between the two systems; the hardware for the two computers is virtually identical.

In spite of the enormous differences between PA-RISC and "Classic" HP 3000 architecture, the PA-RISC HP 3000s were designed and built to be upward-compatible from earlier Classic models. Using a feature called "compatibility mode," customers could continue to use HP 3000 application programs that had been designed, written, and compiled for 16-bit Classic HP 3000s. In most cases, these older application programs could be run on PA-RISC HP 3000s without modification--or even a recompile.

A PA-RISC HP 3000 can run a mixture of old 16-bit programs (compiled to run on Classic 3000s but still able to run on the newer PA-RISC systems) and new programs (compiled to run only on PA-RISC 3000s). It can shift back and forth between the two types of programs transparently. Even today, many HP 3000 applications (and even some parts of the operating system) run in compatibility mode at least part of the time.

More recently, the evolution of the HP 3000 has been driven by the open systems revolution that swept across the IS industry beginning in the 1990s. By 1990, most new computer applications and technologies were being developed on (and for) UNIX computers. This trend threatened to leave proprietary architectures like the HP 3000 out in the cold. In response, HP began bringing industry-standard interfaces from the HP 9000 to the HP 3000, focusing first on functions that were standardized by IEEE's POSIX committees. Version 4.0 of MPE XL was renamed MPE/iX, with the iX standing for "Integrated POSIX." (POSIX is discussed in more detail in future articles in this series.)

Industry-standard APIs like POSIX made it comparatively easy to port software from UNIX to the HP 3000. Other industry standards (BSD Sockets, SQL, ODBC, Java) have been brought to the 3000 by HP in subsequent OS releases. All this open systems functionality has continued to be enhanced on subsequent releases. As of this writing, the latest release of MPE/iX is 5.5, and Release 6.0 is in the wings.

User and Account Name

Ordinarily the system displays a prompt on your screen that ends with a colon (:). This is the HP 3000's way of prompting you for an MPE command. I'm going to explain a few of the most basic and frequently used MPE commands, and at the same time explore some of the basic concepts and ideas behind MPE.

I'll begin by raising a few questions about your user and account name (the two parameters you entered in order to log on). Why are there two? After all, you need only one name to log on to a UNIX machine. Why does the 3000 require two logon names?

To answer that question, we need to explore how HP 3000s (and most other minicomputers) were used in 1972, when MPE/iX was originally designed. In those days, computers (even HP 3000s) were very expensive--too costly for most small-to-midsize companies to own. Personal computing was more than a decade away, so (capitalism being what it is), an industry called "time-sharing" had sprung up. You might be thinking, "I thought that time-sharing had something to do with vacation homes." But in the early 1970s, time-sharing companies purchased computers (such as HP 3000s) and allowed other companies to share them (in exchange for a fee).

Here's how it worked. Imagine you're the owner of a time-sharing business. You buy an HP 3000, and provide your clients (the owners of small businesses who don't have computers of their own) with terminals and dialup lines so they can share your computer. They install their applications on your machine, and at the end of each month you bill your clients based on how heavily they have used your computer. As you can see, it becomes very important to be able to track who was doing what with the machine.

What does all this have to do with the account and userid you entered when you logged on? Suppose your time-sharing company had signed contracts with three clients: Tom's Dry Cleaners, Harold's Used Cars, and Dick's Bar and Grill. You might set up three accounts on your system and call them something like TOM, HAROLD, and DICK.

On the HP 3000, accounts are tools for keeping track of who is using the system's resources--CPU time, memory, disk space, and so on. For example, each account has a timer associated with it. When somebody logs on to an account, that account's timer begins ticking like a taxi meter. When the TOM account's meter begins ticking, Tom's Dry Cleaners is charged for the time you spend on the machine. (To see how you can use MPE commands to display these "taxi-meter" timers, see the sidebar called "Listing Accounts and Users.")

But what if one of the time-sharing company's accounts requests a detailed breakdown of its bill? Suppose, for example, that Harold's Used Cars employs three salesmen named Moe, Larry, and Curly. (Hey, I didn't say it was a good used car company.) When Harold gets his bill at the end of the month, he's probably going to want to know what portion of it is can be traced back to the activities of each of his salesmen.

MPE requires that when Moe (or any other user) logs on to the system, he doesn't just log on as "MOE" or as "HAROLD" but as "MOE.HAROLD", specifying both his user name and his account name. In this way, Moe actually kicks two timers into action. One is associated with the HAROLD account and accumulates all the time logged by any and all HAROLD users. The second is associated with MOE.

Each HP 3000 account has a password to protect it from unauthorized usage. Each account also has a number of users associated with it, and each also has (or at least should have) a password of its own.

Each user name is associated with one and only one account. In other words, you cannot log on to an account unless you have a userid that belongs to that account. For example, Moe works for Harold's Used Cars. Therefore, his username has been tied to the HAROLD account, and he must log on as "MOE.HAROLD". He can't log on as "MOE.TOM" or "MOE.DICK".

In this sense, each account can be thought of as being a collection of related users. MPE accounts are similar, in this respect, to UNIX Group IDs, or GIDs. You'll find that MPE systems have a number of concepts in common with UNIX systems, although the terminology and details often differ.

This is not to suggest that MPE is just a variant of UNIX. MPE differs from UNIX in many ways. Some of the biggest differences are in the file system. The MPE and UNIX file systems were originally conceived using very different sets of rules. Originally, the MPE file system was designed for the 16-bit "Classic" systems using naming conventions and file structures that were simple but highly restrictive, at least by contemporary standards.

Next month, we'll begin to explore the MPE file system in detail, and see how it fits into the hierarchy of accounts and users. See you then.

Listing Accounts and Users

Once you've logged on to an HP 3000, MPE/iX introduces itself using a colon prompt. The prompt that is usually displayed is ":" or "MPE/iX:" but this prompt can be changed, as we'll see in a future article. For now, we're going to focus on how MPE commands can be used to display information about yourself, your logon account, your username, and your files.

When you log on to an HP 3000 using a "HELLO" command, you establish a connection called a "session." Your session lasts until you log off using a "BYE" command. Figure 2 shows a command called ":SHOWME" which displays information about your session. First of all, every session is assigned a unique number, of the form #Snnn. The session in the figure has the session number #S140. If you log off the system and log on again, your session number will change. Immediately after the session number, :SHOWME displays the user and account name that you used to log on.

Figure 2: ":SHOWME"

Every session is associated with three things at logon time: a logon account, a username, and a logon group. In the figure, the user is "GEORGE", the account is "STACHNIK", and the logon group is "PUB."

MPE groups are similar to UNIX directories in that both are used to group together related files. Your logon group is the one that is associated with your session, typically at logon time, much like the UNIX current working directory. Normally, the files and programs you'll be using in your session will reside in your logon group. (The next article in this series, "The Classic MPE File System," discusses groups in more detail.)

When you log on to an HP 3000, your :HELLO command must explicitly name your logon account and username, but it doesn't have to name a logon group. The reason for this is that your username can have a preassigned default logon group called a "home group." If you specify a group in your :HELLO command, then MPE ignores your home group. The group you specified will become your logon group for this session (assuming you can supply the group password, if one exists). If you don't specify a group in your :HELLO command, then your home group will become your logon group by default. During your session, you may find you need to change logon groups. You can do this using the "change group" command. You use ":CHGROUP" in much the same way that one might use the "chdir" or "cd" commands to change your current working directory on a UNIX or MS-DOS system.

:SHOWME can be used to determine which version of MPE/iX you're using. Below the user and account names is the "RELEASE" string. The session in the figure is running on Release C.55.00 (also known as MPE/iX 5.5). This information will be explained in more detail in a future article, but if you ever have to call HP support to report a problem, you'll need to know where to find the release string. It's one of the first things they ask for.

Below the RELEASE line are two lines of information showing the current date and time, as well as the date and time you logged on to the system. Below that are two clocks that begin ticking when you log on to the system (much like the meter in a taxi). The first is labeled "CONNECT MINUTES". This shows how many minutes have elapsed since you logged on. :SHOWME also displays the CPU time--the number of seconds during which you were actually running programs or utilizing the system processor. In the figure, the connect time is 1 minute, and the session has used up 1 CPU second. Most of the time, sessions are idle (waiting for you to type something) so CPU time is usually very small compared to the connect minutes. Both of these clocks are maintained by MPE and may be used by chargeback systems.

Next, :SHOWME displays the LDEV number of the device you used to log on. MPE identifies every device (terminal, disk drive, tape drive, printer, etc.) using a unique number called a "logical device number" or "LDEV." This device is usually a terminal. :SHOWME actually displays two numbers--the standard input device (or $STDIN) and the standard list device (or $STDLIST). In the figure, $STDIN and $STDLIST are the same number (45) because they both identify the same terminal. You can think of $STDIN as your keyboard and $STDLIST as your display screen. Circumstances in which $STDIN and $STDLIST represent two different devices will be discussed in a later article.

Just as the :SHOWME command displays information about your session, the :LISTACCT command displays information about accounts. Figure 3 shows the output of a :LISTACCT command. The "DISK SPACE" field shows the total amount of disk space occupied by all the files in all the groups in this account. In the example, the STACHNIK account contains 7,504 sectors of disk space. MPE measures disk space in units called sectors, with one sector being equivalent to 256 bytes.

Figure 3: Output of ":LISTACCT"

On the same line, :SHOWME may display your account password, depending on whether or not you are authorized to display it. In the figure, the string "PASSWORD:**" indicates that you're not authorized to see it. If it seems strange that you may not be authorized to look at your own account password (after all, you had to enter it to log on), keep in mind that if you leave your terminal unattended, somebody else could surreptitiously use :LISTACCT to display it. For this reason, MPE users are barred (at least by default) from displaying their own passwords.

We've seen how :SHOWME displays the "taxi meters" (CPU and CONNECT time) for your session. :LISTACCT displays the total accumulated CPU and CONNECT time logged against the account by all sessions. When you log off the system, your session times are rolled into the :LISTACCT accumulators. MPE also allows the system administrator to place quotas on an account. This can be used to prevent the users of an account from logging more than a certain number of hours on the computer each month or from tying up more than a specified amount of disk space. These quotas are displayed by :LISTACCT as CPU LIMIT, CONNECT LIMIT and DISC LIMIT. In Figure 3, no quotas have been placed on the STACHNIK account, so the :SHOWME command displays the string "UNLIMITED".

LISTACCT displays a list of capabilities associated with the account. These determine what activities may or may not be performed by account users. For example, SM capability means that some users in this account may be able to act as the system manager, and create, alter, or delete entire accounts.

Figure 4 shows the :LISTUSER command, which can be used to display information about particular usernames. Like :LISTACCT, the LISTUSER command behaves differently, depending on who's executing it. If you're the system manager, you can use :LISTUSER to display information that may be hidden from other users.

Figure 4: "LISTUSER"

The figure shows :LISTUSER being used to display the name of your home group and the logon count--the number of sessions currently logged on using this userid. If you are logged on to the system, then your logon count will be at least one. If other people share your userid, then the logon count may be higher.

There's also a field called "MAX PRI". From a performance perspective, system administrators can use MAXPRI to place limits on individual users so they cannot take up more than their fair share of system resources. This facility for preventing users from "hogging up the system" will be discussed in more detail in a future article on performance.

One last point--MPE includes an excellent "help" facility. You can get help on the details of any MPE command by typing HELP, followed by the command name--for example, :HELP SHOWME.
George Stachnik, the director of Hewlett-Packard's "Technology Closeup" series of television broadcasts, holds the title of Chief of Customer Communications. He works at Hewlett-Packard's campus in Cupertino, California.
  Part 2→
     [3khat]3kRanger   [3khat]3kMail   Updated