*BSD News Article 7835


Return to BSD News archive

Xref: sserve comp.unix.solaris:518 comp.unix.bsd:7886
Path: sserve!manuel.anu.edu.au!munnari.oz.au!news.hawaii.edu!ames!sun-barr!cs.utexas.edu!zaphod.mps.ohio-state.edu!wupost!uunet!auspex-gw!guy
From: guy@Auspex.COM (Guy Harris)
Newsgroups: comp.unix.solaris,comp.unix.bsd
Subject: Re: Solaris 1.1 vs. Solaris 2.0 (BSD vs AT&T)
Message-ID: <15468@auspex-gw.auspex.com>
Date: 12 Nov 92 22:30:59 GMT
References: <kzin.721442926@cc.gatech.edu> <BxLz6x.EL7@cs.uiuc.edu>
Sender: news@auspex-gw.auspex.com
Followup-To: comp.unix.solaris
Organization: Auspex Systems, Santa Clara
Lines: 33
Nntp-Posting-Host: auspex.auspex.com

>If the program accesses the kernel (not just by system calls)

I presume by "access the kernel" you mean things such as opening
"/dev/kmem" and looking at kernel data structures (or using the "kvm"
library).

If so, then for those to whom it's not obvious why such programs would
need to be ported, kernel data structures are probably *quite* different
in Solaris 2.x, which is why programs that access those data structures
directly will need to be changed.

(Note that programs that mainly just read the process table, and maybe
process U areas, can, in Solaris 2.x, use the standard SVR4 "/proc" file
system.  That will make them more likely to run under future Solaris 2.x
releases, and under other SVR4 releases; it will also probably make them
simpler, and possibly even less likely to fail in the fashion hinted at
in the SunOS 4.x "ps" manual page:

	BUGS
	     Things can change while ps is running; the picture it  gives
	     is only a close approximation to the current state.

Things can still change out from under you, but "/proc" may make it
less likely to happen.)

>or if the 
>program access some of the system files that have changed (like /etc/fstab =>
>/etc/vfstab), it will have to be ported.

Yup, this is a bit of a headache, as the "getmntent()" routine doesn't
hide the name of the file.  SVR4 has "getvfsent()" to read
"/etc/vfstab", and "getmntent()" to read "/etc/mnttab", and hides the
file name.