Thursday Dec 14, 2006

The Future for HP/UX is dull

I have been researching Sun's competitive position against HP. It's clear to me that HP, when they think about IT as opposed to ink, agree with Nick Carr and his thesis "IT doesn't matter". Mark Hurd (HP CEO) in the highlights of his keynote speech [.mp3] to Oracle World earlier this year (November) stated that their IT would contain

no proprietary infrastructure...... consisting of proliant and "c" class blades, linux, network storage, dynamic smart cooling, integrated racks

No room for HP/UX! Nor for Itanium! No wonder the HP/UX roadmap is so ephemeral. My colleague Matias Alonso, has also written about this direction from HP and finishes his article with the comment that even HP prefer the cost of open source to their own proprietary fees, which presumambly they rebate, so the TCO must be pretty poor.

It's already been damaged as a platform by the requirement to recompile or develop in order to transition from HP PA RISC to Itanium, and neither HP/UX nor Itanium have the volumes to retain and recruit developers. This discontinuity is a true tippining point; if you have to spend money on the application, you'd prefer (as Hurd himself says earlier in the speech) to spend it on improving the business logic, not extending its life.

HP-UX 11i v3 has slipped again to next year [1] and is now over 2½ years late. Given it only runs on HP's Itanium, perhaps the demand's not there! A prediction of this sorry state of affairs was made Sun when it published over 15 months ago an article "Reality Check: HP-UX has no future!", on its web site.

The chart below has been built from an article at IT jungle, analysing HP's most recent earnings call. Now that HP/UX is only available on Itanium, it is part of 'Business Critical Systems' (which is the extruded segment.)

 

 

HP's results last quarter 

 

Business Critical Systems (BCS) earned $987m during the quarter selling Itanium, PA-RISC, MIPS and Alpha based systems The Itanium revenues grew (representing 45% of the revenue) but HP do not publish the Linux/HP-UX breakdown any more. These earnings represent a year on year decline because the growth in Itanium systems is insufficient to compensate HP for the decline in the older proprietary PA-RISC and Alpha systems. The one thing we do know is that HP-UX only represents a part of the BCS revenues. Is this enough to keep HP interested? Is it enough to keep the ISVs interested? ISV's that want an Itanium port, will probably choose Linux. I think HP-UX's future is destined to add to HP's growing reputation as the IT industry's operating systems undertaker and join Ultrix, True64 and VMS in the hospice.

Hurd's Oracleworld speech streaming audio [.mp3]: the quote is at 3:10, you can find the whole speech with other keynote speakers on the Oracle World 2006's keynote speaker page. We can see HP's historic delivery of their roadmap,  HP's recent release history.

tags:

Wednesday Aug 09, 2006

Shell Scripting and PATHs

Everseen a PATH like this....

/opt/sybase/ASE-12.5/bin:/opt/sybase/ASE-12.5/install:/usr/local/bin:/opt/sybase/ASE-12.5/bin\\
:/opt/sybase/ASE-12.5/install:/usr/local/bin:/usr/bin:/bin

I have over the last couple of weeks been installing Users on UNIX systems and considering the issue of the PATH variable. The PATH above is caused by not checking if the directory is in the PATH, before adding it. This is particulalry a problem for those shells that have one file executed on a login and one file executed each time a new shell is invoked, such as ksh & bash. Also, for users created to own shared services (such as sybase in this case), people may enter the user from several entry points, including login, su \* su -. The problem is exacerbated when the environment definitions are written by a third party, in this case Sybase, but other packages have their own problems.

I have decided to undertake a test prior to amending the path. I'd like to write a function 'prepend2path, but came to the conclusion that the level of indirection required was to much, for me at least. I use a function contains

contains()
{
    #contains $PATH $directory
    /usr/bin/echo $1 | /usr/bin/grep $2 > /dev/null
    return $?
}

This allows me to test if a $PATH contains a given $directory

  if [ -d ${directory} ]
  then
      contains $PATH $directory
      if [ $? !=0 ]
      then
          PATH=${directory}:${PATH}
      fi
  fi

These statements should probably be placed in the shell read configuration file for the default login shell for the user, however they may be located elsewhere for good reason, such as in a script so that it can be run from wherever and the script becomes responsible for obtaining its own environment. The function can be placed in an external functions file and then invoked from wherever should this seem sensible.

This code model can be used for LD_LIBRARY_PATH and MANPATH. Both these variables may be unset so the contains function needs to OR'd with -z test. Also we can iterate the test.

  for directory in ${STEM}/install ${STEM}/bin
  do
    if [ -d ${directory} ]
    then
        contains $PATH $directory
        if [ $? !=0 ]
        then
          PATH=${directory}:${PATH}
        fi
    fi
  done

As I write this article, it becomes clear I should put the -d test inside the contains function.

contains()
{
    #contains $PATH $directory
    if [ -d $directory];then
        /usr/bin/echo $1 | /usr/bin/grep $2 > /dev/null
        return $?
    else
        return 99
    fi
}

This leaves the path assignment statement looking like this.

  for directory in ${STEM}/install ${STEM}/bin
  do
    contains $PATH $directory
    if [ $? !=0 ]
    then
      PATH=${directory}:${PATH}
    fi
  done

Of course there are those that say if you don't echo $PATH, you don't have the problem either!

tags:

Wednesday Aug 02, 2006

Determining UNIX service states

On both my Qube (Linux) and Laptop (Solaris), I have been installing shared services, such as Postgres, Sybase and snipsnap, and thus considering how to manage them. I have wanted the excuse to write an SMF(5) compliant script and so have been working on one.

One of the key methods required is the status method which I have after discussion with colleagues, decided has three states. These correspond to a Jackson Backtracking problem, since one state is an error state. This can only be defined as a not running, not stopped state. The diagram below shows the JSP structure diagram.

Jackson Backtracking Structure for Service Status

The reason it's a backtracking problem is that you can't tell if its an error state until after you have tested for the other two good states.

tags:

About

DaveLevy

Search

Archives
« April 2014
MonTueWedThuFriSatSun
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
    
       
Today