Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!spool.mu.edu!uunet!lhdsy1!dlm From: dlm@lhdsy1.chevron.com (Dennis L. Malefyt) Newsgroups: comp.unix.admin Subject: what kind of machine am I Message-ID: <858@lhdsy1.chevron.com> Date: 7 May 91 18:47:31 GMT Distribution: na Organization: Chevron, La Habra, CA Lines: 79 I am posting this in the hope that I will not have to create and maintain a host_type database. Situation: we have DECstations, Sparcs, Appollos, RS6000, Cray XMP, MasPar, SGI Iris4D's, Macs, VAXstations, HP's ... and on and on. Problem: we want a unique and simple way for a user/developper to determine what type of machine he/she is on. What we are interested in is the binary compatibility, not the model number, amount of RAM, etc... of a particular machine. Solution: is two-folded. a) we need a database of significant names b) we need a mechanism to get the appropriate name. What already exists: tcsh has an environmental variable called HOSTTYPE. I am including as few lines of the latest list of tcsh HOSTTYPES, as well as some text which accompanies it: start: 19. NEW ENVIRONMENT AND SHELL VARIABLES On startup, tcsh now automatically initializes the environment variable HOST to the name of the machine that it is running on. It does this by doing a gethostname(2) system call, and setting HOST to the result. Tcsh also initializes the environment variable HOSTTYPE to a symbolic name for the type of computer that it is running on. The current possible values are: ns32000 an NS32000 CPU machine next a NeXT computer aix370 an IBM 370, running aix alliant an Alliant FX series ... decstation a DecStation XXXX gould-np1 a Gould NP1 hp300 an HP 9000, series 300, running mtXinu hp800 an HP 9000, series 800, running mtXinu ... end. The problem with tcsh is that it does not contain a complete list of all possible hardware, cray being one example. Also, we want the solution to be shell independent, not ala tcsh. Tcsh is used here just for the (incomplete) list of names it provides. Other solutions we have looked at: we have looked at cpp but it is not guaranteed to work on its own and one would have to look at more than one keyword to figure out what is what. We also have looked at what some platforms offer: DEC offers the command named "machine" but it answers mips. Oh well, so much for that, since the SGI can also say mips too and they are not binary compatible... Not to mention Sony, MIPS themselves... Now for the big question: Are we the first to look at this problem (I doubt it ...) and what are the solutions that were found? We could develop our own database of names but if one already exists and is maintained by certain group, then this is one less standard that we have to worry about! Again, this is a two-question thing: there is a) the topic of "what name to use to identify a machine"?, and b) "how does the user get the name for his/her machine"? We are thinking of using a command named "hosttype" which would return the appropriate string. Since we need to be portable, is this command already used in any UNIX? I welcome any input. Thank you for your attention. -- +--------------------------------------------------------------+ | Dennis Malefyt Internet: dlm@chevron.com | | Chevron Information Technology Co. Tel: (213) 694-7531 | | La Habra, California 90633-0446 Fax: (213) 694-7709 |