net.digest – December 2001

In the two weeks since November 14, there have been over 700 postings directly related to the hp e3000 end-of-support announcement. This did not leave much room for off-topic postings, though, in a bit of gallows humor, Wirt Atmar posted a research field assistant job opening that promised "long, irregular hours in adverse field conditions and extreme weather for $8.50/hr."

No one knows what the next few months will bring. Possibilities include OpenMPE, MPE licensed to some third party, nothing, or something else not even thought of yet. As always, I'll try to keep this column and Hidden Value relevant and timely by reporting on issues of interest as they come up on HP3000-L

As always, I would like to hear from readers of net.digest and Hidden Value. Even negative comments are welcome. If you think I’m full of it or goofed, or a horse's behind, let me know. If something from these columns helped you, let me know. If you’ve got an idea for something you think I missed, let me know. If you spot something on HP3000-L and would like someone to elaborate on what was discussed, let me know. Are you seeing a pattern here? You can reach me at john@burke-consulting.com.

So how do I use this shell thing?

Following Black Wednesday, November 14, 2001, there has been renewed interest in the HFS file system (POSIX.1) and the shell (POSIX.2) as a way to become familiar with the concepts underlying *nix. A number of posts dealt with the basics of POSIX on MPE/iX so I’ll try to put everything together in a how-to-get-started with POSIX section.

POSIX (Portable Operating System Interface) support was first added to MPE in release 4.5 and was deemed important enough that it occasioned a name change from MPE/XL to MPE/iX. Posix support led to the porting of gnu, which enabled the ports of Apache, Samba, Bind, Syslog, etc. and, arguably, extended the life of MPE. All *nixes are POSIX.1- and POSIX.2-compliant, so if you do not already have a Unix or Linux system handy, you can start your learning on good old MPE/iX.

Starting with MPE/iX 5.0, HP has included a really nice Computer Based Training (CBT) module on the Hierarchical File System (HFS). This is where your journey should begin:

:xeq posixcbt.lsn.sys

The following is an example from the training (I wonder if the correct answer is different today?):

"Before we proceed, let's stop to ask a question, just to ensure you've got the fundamental idea. Which of the following statements best summarizes the reason why HP has brought POSIX compliant interfaces to the MPE/iX operating system and the HP3000?

  1. POSIX is the first step in HP's plan to move all HP3000 users to UNIX
  2. POSIX is a tool that HP is using to bring new applications to MPE from the UNIX environment.
  3. POSIX is a piece of software that HP is using to eventually combine the HP3000 and the HP9000 into a single system.

Choose the best answer, and press the corresponding key: ‘1’, ‘2’ or ‘3’."

Once you are comfortable with the HFS, it is time to venture into the land of the shell. The shell is just a program (sh.hpbin.sys) that gives you the look and feel of a *nix system. If you’ve catalogued the UDC file HPPXUDC.PUB.SYS, then all you need to do to get in the shell is type "sh" at a colon prompt. If you have not catalogued the UDC file, then enter the shell with the command

:xeq sh.hpbin.sys -L

The "-L" is critical. This says initialize the environment by executing the script: /etc/profile. To see what this does, before going into the shell for the first time, display it with

:print /etc/profile

This script sets various environment variables used to customize the shell experience such as terminal type (TERM) and also sets tabs. It is strongly recommended that you not modify this file since it will be overwritten on an OS update. If you want to further customize your experience for your entire system, create a file "/etc/profile.local" with your customizations in it. The last thing "/etc/profile" does is execute the "/etc/profile.local" if the file exists. You can further customize your personal experience by creating a file ".profile" in your home directory. For example, my ".profile" file contains the following

export PS1='[!] $PWD $ '

which sets my prompt to the command history number in square brackets followed by the current working directory:

[135] /SYSADMIN/PUB $

All in good time, though; for now, the defaults will suffice. The shell contains an online manual of just about everything. Because this is POSIX, and therefore perverse, it is called the "man pages" instead of "help". The command is

man something

where "something" is what you want information about. Try "man man" and "man sh". [Hint: the space bar or page down key will cause the next page to be displayed. "q" will quit the man subsystem.]

The shell can easily be confusing. For example, the following three commands all do the same thing, display a file one page at a time:

$ cat filename | more
$ more < filename
$ more filename

Let "man" be your friend.

Some references:

MPE/iX Shell and Utilities Reference Manual Vols 1&2 (Manual Part # 36431-60001). This two-volume tome presents the man pages in print form. This is available in pdf form at docs.hp.com and on the documentation CDs.

MPE/iX Shell and Utilities User’s Guide (Manual Part # 36431-90002). This is a great collection of tutorials on various aspects of the shell. Unfortunately, it is only available in print form and can not be found on docs.hp.com or any of the documentation CDs.

Any of the "*nix for Dummies" or "Teach Yourself *nix in 24 hours" books, though you might want to order from one of the online stores to avoid the embarrassment of having your colleagues see you with it. Seriously, you’ve got to start somewhere and these books are not a bad way to go.

You say you’re ready to try some real *nix?

You’ve "mastered" the POSIX shell in MPE/iX and are ready to move on to a real *nix system. Of course, this assumes you do not already have a real *nix system. Where to start? There are at least two schools of thought though both make use of Linux because it is inexpensive (or even free) and runs on relatively inexpensive Intel hardware.

Gavin Scott uses a product called VMware (www.vmware.com) to host multiple operating systems, one of which is Red Hat Linux (www.redhat.com), simultaneously on one PC. This is particularly good if you are space limited or just don’t want the hassle of dealing with multiple physical machines. VMware does require a fairly robust PC (at least a 400 MHz processor and 256MB RAM) and is far from free ($329 list for the full product with documentation). You can download a free demo version, however, to test if this is the way for you.

What I've done is take my current generation minus one PC (it was just taking up space in a closet anyway) and load Red Hat Linux on it. As long as you have a decent video card for x-windows and enough memory (I have 128MB, but 64 would probably be OK), even a P-133 system makes an adequate Linux test machine. If you're doing this at home and have broadband service, throw in one of the many firewall/routers (I use Linksys), a keyboard/mouse/monitor switch box and you can have a nice little two machine home network with both machines having Internet access. Add QCTerm to your Windows PC and you can telnet to your Linux system for added fun. If I did not already have a "spare" PC then I would probably go the VMware route rather than buy a PC just to try out Linux.

[Hint if you are using QCTerm to access a Linux system: You will need to set the tabs in QCTerm and the TERM environment value for the display to look correct. The command "tset" (in the MPE/iX POSIX shell it is "tabs", go figure) will set the tabs appropriately and I've found that "export TERM=hp2392" works fine for a terminal definition. These can be set either in your logon script or "profile".]

What does this mean, and should I worry? If not a worry, can I disable these console messages?

** NS/3000 NetIPC ERROR IN VT; Job: #S64; PIN: 270; Info: 1

- Error: 42;

This question comes up often enough on HP3000-L I thought it was time to put it to bed once and for all. Fortunately, James Hofmeister of the Worldwide Technology Network Expert Center cooperated by posting the definitive answers.

If you logon on with :hello and logoff with :bye with NS-VT you get:

1:04/#S7/51/LOGON FOR: "JPH56426,MANAGER.SYS,WORK" ON LDEV #4.
1:04/#S7/51/LOGOFF ON LDEV #4.

If you logon with :hello and do not logoff, but instead [x] the terminal emulator window:

1:01:05/#S8/51/LOGON FOR: "JPH56426,MANAGER.SYS,WORK" ON LDEV #4.
1:05/#S8/51/LOGOFF ON LDEV #4.
** NS/3000 NetIPC ERROR IN VT; Job: #S8; PIN: 64; Info: 1
- Error: 42;

This is true with NS-VT and not with Telnet. I would not recommend turning this logging message off for 2 reasons:

1) Turning off class 5 in NS-Services will turn off all NETIPC errors returned to the console for NS-Services.
2) The same error "42" is reported in the case of a Duplicate IP address.

The best I can recommend is to train your users to not [x] a NS-VT window but instead logoff with ":bye" or to ignore the Error: 42 message on the console unless troubleshooting a specific problem. Oh yes, you could use Telnet instead of NS-VT to avoid the message.

Thanks, James. I would note that x-ing out of a VT terminal emulator session while in block mode used to be the principle cause of hung sessions. While this appears to have been fixed for the most part, it is still best to avoid this situation with user training.