This document is of mostly historical interest now...
As of Thu Jan 18 18:13:31 PST 1996, UCI/OAC/DCS (yes, that's the chunk of the university I work in) looks after 116 Solaris 2.x machines - 9 Solaris 2.3, 83 Solaris 2.4, and 24 Solaris 2.5. On the whole, they appear to be doing quite well.
Following, is a list of reasons why you should shift to Solaris 2.5, instead of sticking to SunOS 4.1.x. The reasons provided are almost entirely technical - net.politics, and seeming cool to your buddies, are ignored.
- 2.5 is faster at almost everything; 2.4 is faster at some, slower at others
- A quite workable subset of Solaris 2.5 can be (auto)installed on a Quantum 105M disk
- Symmetric Multiprocessing (radically improved over 4.1.x, which was a nearly lost-cause for MP)
- Virtual memory size in Solaris 2.x is the sum of the physical ram left over after kernel overhead, and the swap space. In 4.1.x, it's swap only. That is, you get more virtual memory out of the same machine, and sometimes don't need swap at all, leaving more disk for applications and data.
- large file system support (1 Terabyte max, instead of previous 2 Gigabytes)
- "truss" is much better than "trace", and has proved significantly more helpful in tracking down problems because of it's "-f" option. strace is available for 4.1.x, by anon ftp, and has a "-f", but it's flakey - sometimes core dumping, with critical processes left suspended.
- 2.5FCS, 2.4 with patches: in-kernel rlogin and telnet, for high scalability. This greatly reduces the number of context switches required, for each character typed. If you have a large number of "pine" and "trn" users, this is a huge win.
- CacheFS
- AutoFS is more reliable than 4.1.x automounter, and also removes /tmp_mnt nonsense ("DIR=`pwd`; sleep 99999; cd $DIR" works sometimes, and not others, in 4.1.x)
- NFS Version 3 (2.5 only)
- NFS performance improved (EG, nfsd multithreaded, click here for some simple benchmark results)
- 2.5: NFS lock manager greatly improved. 4.1.x's is not particularly strong - some say one of the weakest available.
- Jumpstart/autoinstall (radical improvement in support of large sites)
- decent (read "easily automatable") patch revision support (2.5: improved again)
- Display postscript in openwindows server, instead of proprietary "NeWS"
- PPP bundled (PD slip is also available)
- nsswitch.conf, instead of innane hacking of libc to add DNS support (the hack results in static binaries being broken)
- the rest of the industry is also SysVRx: HP, SGI, IBM, nearly all PC-based *ix's...
- There's no more "3 is 0 and 0 is 3" on scsi. In Solaris t3 is scsi 3.
- There are no arbitrary limitations on which SCSI ID's can be used for what devices
- 2.5: AutoClient (local disk used as cache for an otherwise-diskless system)
- Posix Multithreading in 2.5 (draft posix in 2.4)
- 2.5 has UltraSPARC support
- Real-time extensions (based largely on SysVR4)
- Async I/O (must have been improved; this was at least available for 4.1.x)
- 2.5: Integrated kernel/user-level tracing (see prex(1))
- New debugging tools (see proc(1))
- Internationalization Standards (XPG4, POSIX 1003.2, pthreads, CDE, XFN)
- CDE: Common Desktop Environment across Sun, HP, IBM, DEC, Novell (now SCO, since UnixWare was sold?) and others
- 2.4: emulation of pure static, or pure dynamic, 4.1.x executables
- 2.5: additional emulation of mixed static/dynamic 4.1.x executables
- many kernel parameters dynamically tuned, instead of set manually
- Tuning done via /etc/system and ndd, instead of (Very terse) adb
- 2.5: Naming services cache (/etc/nscd.conf) to cache lookups (Much faster).
- 2.[45]: TCP/IP code: many old O(n) lookups are now hashed
- 2.[45]: Sophisticated new kernel memory allocator
- 2.5: Kernel memory allocator gets a per-CPU cache
- IP Multicast support in the base distribution
- MTU discovery (RFC1191), to optimize size of packets
- ICMP Router discovery - in.rdisc (RFC1256)
- SunOS 4.1.x doesn't NIS-bind across routers, reliably; if a "-ypsetme" binding is lost, the machine will start broadcasting for a new server. Solaris 2.x does this gracefully with "ypinit -c". True, you could use a cron job, on SunOS 4.1.x...
- Integrated Copy and Checksum in TCP (one data copy instead of two, for speed)
- Support for emerging new 10/100MB ethernet LANS, ATM etc.
- Multiple IP "default" routes
- X11R5 in OpenWindows 3.[34], instead of older, relatively proprietary openwin
- wabi (MS windows emulator)
- motif runtime libraries since 2.4 (2.5 has mwm-like dtwm)
- near plug and play with boot -r - no kernel compiles are necessary
- new software packages on the net are commonly developed for Solaris 2.x
- Most existing free code on the net has been adapted to run on 2.x at this time
- multiple IP logical interfaces support - virtual domains (documented in 2.5)
- sendmail in 2.5 is based on sendmail V8. The versions shipped with SunOS 4.1.x are derived from V5, and are riddled with security holes.
- format can guess disk geometries, and allows a wider range of units
- Nov 7, 1995: 40% of sun's installed base is Solaris 2.x
- Nov 7, 1995: 80% of all new sun's ship with only a Solaris 2.x license
- 2.5: POSIX 1003.6 ACL's
- 2.5: sunsoft's most heavily tested release ever
- ksh is included
- single code-base for sparc, x86 and (RSN) powerpc
- 2.5: Additional library routines from SunOS 4.1.x are now first-class interfaces in libc:
- memory: bcmp, bcopy, bzero, index, rindex
- random numbers: random, srandom, initstate, setstate
- process control: killpg, getpriority, setpriority, ualarm, usleep, wait3, wait4, getrusage, getwd, setregid, setreuid
- regular expresssions: re_comp, re_exec
- standard i/o: setbuffer, setlinebuf
- miscellaneous: ftime, getdtablesize, gethostod, gethostname, sethostname, getpagesize, reboot
- setuid scripts are no longer an inherent security hole (they're easily exploited in 4.1.x)
- There is now decent way of telling how much memory a machine has. With SunOS 4.1.x, dmesg could be used sometimes (but not if the machine had been up for a while), adb could be used (but you need to be root, and the page size varies from machine to machine), sysinfo (off the net) could be used (it dumps core on some machines, and even panics a few!), but none were as nice as prtconf is now.