From: brian%jaguar.cs.utah.edu@cs.utah.edu (Brian Sturgill)
Subject: OS/2 vs NT features list, Revision 1.6
Date: 5 Sep 92 01:25:00 MDT
Followup-To: comp.os.os2.advocacy,comp.os.ms-windows.advocacy
Originator: brian@jaguar.cs.utah.edu
Organization: University of Utah CS Dept


OS/2 vs NT features list, Revision 1.6

FOLLOWUPS ARE REDIRECTED ONLY TO THE ADVOCACY GROUPS, PLEASE LEAVE IT
THAT WAY.

#
I hope that the revision process will slow down some now... we shall
see, we shall see!

This list strives to document the differences in features between
OS/2 2.0 and the not yet released Windows NT.  This list is NOT perfect yet.
While I believe I understand both fairly well, they are far too complex
for anyone to know everything, and I cannot take the time to thoroughly
check all the facts.
This of course is why I ask for your input... please be nice!


Warning: I develop for both systems, but have a bias towards NT.
	I do try to be fair though.


KEY TO CHANGE MARKERS

A "#" at the beginning of a line signifies that it has been
changed this revision.  An "@", signifies it is new this revision.
An "!" indicates a point that definitely needs more information.
One of the characters in front of a paragraph or a section title
implies it is for the whole unit. (I don't mark grammar or
spelling corrections.)
Deletions in this revision:
	Generic wait on multiple events/semaphores of different types.
		// OS/2 has this in DosWaitSemMuxWait()
		
	Automatic stack expansion.
		// This next part is true as stated ... but!
		OS/2 2.0 does not (in the general case) have dynamic stack
		extension. Someone inside IBM (and others) sent me this story:
		Thread 1's stack is statically sized according to the value
		you set in the executable at compile time.  All pages
		of this stack are committed as the process starts, so you
		don't want to grossly oversize the stack.  All other threads
		do have dynamic stack extension.  Doing this somehow made
		compatibility with older API's easier.
		// OS/2 has sufficient other features (NT has them too)
		// which allow the stack extention to be done anyway.
		// Unfortunately C Set/2 does not take advantage
		// of these features. :-(

		// Ding, dong, the witch is dead!
		// (Everybody dance!)

	Good _documented_ debug hooks.  // OS/2 has this as DosDebug()

BRIEF EXPLAINATION OF WHY I SHOW THE BASIC SYSTEM PACKAGES FIRST

The base features of an OS make a lot of difference in what sort
of apps will be developed for it.  For example a recent freeware
program for the Macintosh used sound clips from a recent Bush speech
to randomly generate new speeches.  If it were not the case that
all modern Macintoshes have sound support in hardware and software,
it would have been much less likely the author would have gone to
the trouble.  Another example, suppose there is a telephone package
that answer/logs/places calls using a specialized board.  Under NT
everybody has RPC, so it would not be surprising to find such a
package having a feature that could alert another system via RPC
that a call has come in, likewise it could send the notification
(or even a WAV file of a saved voice-message) via e-mail as there
is a built-in Mail API in NT and the MM features are there to play
back the message under a Windows 3.X or NT system.

As OS/2 currently markets features such as MM and RPC as options, how
likely do you think it is developers would use them in main-stream
applications, especially low-end ones?

After this set of lists, you'll find another set that shows features of
OS/2 (and NT) add-ons and a price list.

************************
					      ***
First a set of lists of the features in the _basic_ system packages.
					      ***
************************

Features in OS/2 2.0 GA but not in the pre-beta Windows NT
  
	Object Oriented Shell (WorkPlace Shell)
	
	Great DOS support
	
	REXX
		NT comes with no equal script/batch language.
!			This is a major weakness in NT... anybody know
			what's in the works BEFORE Cairo?

#	Windows 3.0 support (NT has it too, but it is not as good).
	
	Is actually released.
		Except when simply comparing features, this "feature" is
		of course a quite important difference.  I assume people
		realize that it means that NT does not yet have support,
		polished documentation, NetWare support, etc.

	Supports OS/2 1.X PM apps.

@	SOM (A generic object wrapper package used by WPS for its objects)

	Supports Windows 2.0 apps.

	Runs without a GUI.

	Installable from CD-ROM and diskettes.

	Can boot non-DOS systems in a VDM.

#	Can be configured to work well in 6 megs of memory.
		If you add OS/2 2.0's memory requirements for the
		base package + TCP/IP base + MM + LAN Server Entry you get:
		6 + 1 + 1 + 3 = 11 megs.  NT currently requires 12 and is
		targeted to use 8 megs.  Thus I contend neither has
		a real edge in memory usage when counting relevant add-ons.

	Optional direct access to hardware from VDMs.

@	Allows peformance tuning by "twiddling" parameters.
		(Unfortunately, sometimes you need to.)

Features in the pre-beta Windows NT but not in OS/2 2.0 GA
	
@	Designed to be a self balancing system.
		(Unfortunately, sometimes you can't "twiddle" as much as
		you want to.)

	System tables dynamically extensible.
		In other words no arbitrary limits of 256 processes or
		1024 open files, etc.

	Quota and and Statistics hooks for most system objects.
	
	Full symmetric multiprocessing support.
	
	Global VM/File Buffer Cache.
		This is a common feature in most modern operating
		systems.  It apparently makes disk consistency
		easier to manage.

	All but 60K kernel is pageable. (Microkernel design)
		All means All... everything but a small piece
		is pageable.

	Memory mapped files

	Asynchronous I/O
		OS/2 1.X had this feature but for unexplained reasons
		dropped it in 2.0.  It turns out that NT's version of
		async I/O requires you to give it a data buffer at the
		time you issue the I/O request, so this form is only
		marginally better than simulating async I/O with threads.
		IBM is dropping the feature because their underlying
		implementation was using threads anyway.

!	Console API
		In truth OS/2 has this too, but for some reason
		OS/2 2.0 only supports the Console API via 16-bit
		thunked-calls.  In theory the 16-bit calls are there
		only for backwards compatibility.  Anybody know what
		the future plans are?

	DOS, (later POSIX), OS/2 1.X and NT console apps use the same window.
		If you bring up an NT command prompt and run a DOS program
		the output occurs in the same window.  Contrast this
		with OS/2 2.0... if you run the DOS "ls" command in an
		OS/2 window a DOS window appears... the output appears and
		the window closes; often before the output can be read.

	Platform independent device driver support.
		Platform independence means independent of the
		hardware on which NT runs.  The device driver people
		at the NT developers conference did not seem to
		believe this at first either... but after a long
		set of questions seemed convinced this was more or
		less possible.  (A smaller head file contains the
		few differences that are necessary between platforms.)

	Dynamically loadable/unloadable file system and device drivers.

	Generalized Registry. (database as replacement for '.ini'
	files)
		Rather than have a "config.sys" and other initialization
		files, all system data is put into a tree-structured
		database.

	Windows 3.1 support.
	
	Fully 32-bit drivers.
	
	GUI
		Fully 32-bit Graphics Engine.
		Fast client/server approach.
			I emphasize fast as its design is very nice in
			that respect. (It was covered in depth at the
			NT developers conference.)  It's too hard to
			describe in one paragraph.  Uses shared memory,
			buffering, etc.
		Separate queues per process.
			PM and Windows 3.X have one message queue for all
			applications.  NT's implementation of this feature
			does not suffer from the problem of misdirected
			type/mouse ahead. (At least I couldn't make
			it mess-up on my system.)
		Designed to help accelerators.
			The internal routines have been changed so that
			drawing commands are buffered and sent to the
			underlying graphics drivers in a manner that
			can take better advantage of graphics accelerator
			cards.
		
	OLE
	
	Security
		C2 level (not certified)
		ACL's for all objects.
		Logons.
		E-Mail API (X.500, can use X.400 as a transport)
		B2 hooks
#		Advanced form of setuid().
			This allows servers with appropriate privileges
			to act as a surrogate for a client so that work 
			can safely be performed on behalf of that client.
		
	RPC
		DCE support
		OLE integrated with RPC
		RPC has corresponding LPC

@	All system API calls that take strings, take UNICODE strings.
		(ANSI wrappers are provided.)

	NTFS
@		(Note: NTFS has all features of HPFS, NT has FAT and HPFS too.)

		Fast Recovery (CHKDSK gigabyte volumes in a few seconds.)
		High Reliability
		Hard Links
		Case-Sensitive Filenames
		Automatic 8.3 names
			NTFS supports both long names and short ones.
			The short one is generated automatically
			if the long one it does not fit the 8.3 pattern.
			This is done so that DOS apps can see long-named
			files too.  In effect, a file has TWO names, one
			long and one short.
		ACLS
		UPS support.
@		UNICODE file names.

	Volume Striping(RAID 0) (Not just for NTFS)
		
	Multimedia
		Audio
			Waveform
			MIDI
			CD-source
		Media Control Interface.
		High-speed file streaming.
		Async event controllable.
		
	Networking
		TCP/IP
		Peer-peer file and printer sharing.
		Ability to support multiple vendors as transports
			w/common admin.
		Good network admin facilities.
		SNMP
		Berkeley sockets.
		Named pipes.
		Event logging.
		
	Fast Hyper-text Help System. (OS/2's is much slower.)
		I've used both, NT's is faster, though it
		has less features than OS/2's.
		NT's is of course a variant of Windows 3.1's
		help program (which is different from
		the Windows 3.0 one).
		
	Developers provided with a common installation program.

	More SuperVGA drivers.

	An NT user can change their initial environment without
	having to reboot for it to take effect.
		Under NT if a user want to do the equivalent of
		changing their PATH environment in config.sys,
		they go to the Control Panel, make the edit,
		then logout and back in again.  This is
		much faster than waiting through a reboot.

	NT can generically use more than 16 megs of memory.
		On ISA machines that don't support DMA above
		the 16 meg line OS/2 only uses the memory above
		16 megs as a form of fast swap.
	
	Has seamless support for 16-bit Windows apps on XGA and 8514 displays.
# '!' removed... OS/2 2.0 GA does not have this.


OS/2 2.0 will add the following in the Fall.

	Slim-down such that it will properly fit in 4 megs.

	Ship its DDK (actually DAK Device Adaptation Kits).

	Probably will pass NT in SuperVGA support.

	Catch up to NT by having Windows 3.1 support.

	Catch up to NT by adding a 32-bit graphics engine.

	Catch up to NT by allowing 32-bit drivers.

	Catch up to NT by having seamless support of 16-bit Windows
		apps with XGA and 8514 displays.


Windows NT will add the following in the Fall.

	Catch-up to OS/2 in 16-bit Windows 3.0 compatibility.

	Smarter, easier to use OLE (first step toward Cairo).

	POSIX  (1003.1 -- the system calls)

	Tape API

	Win32s (Run NT programs under Windows 3.1)

	NTFS
		Symlinks
		Sparse Files

	Ship its DDK.


OS/2 will add the following in 4Q92 or 1Q93:
	
	Pen API (possibly as an add-on).

NT will add the following in 4Q92 or 1Q93:

	Catch up to OS/2 by actually being released.

NT will add sometime in 1993:

@	Support for OS/2 1.X Presentation Manager applications.

OS/2 will add the following near October 1993:

	C2 and B1 security (RACF).
		Apparently there is a procedure called a PRPQ that
		allows you to get it now.  It is not yet certified.

Windows NT will add the following sometime in 1994:

	Cairo
		Cairo combines an OO shell (has a similar flavor to WPS)
		with an OO file system and OO networking. Publicly
		available details are sketchy.  Prototypes have been
		demoed to a lucky few.

		Cairo will also have a BASIC-based, object oriented,
		visual, scripting/batch language.

			***********

The lists below are of features in add-on packages.

			***********

LAN Manager for Windows NT  (Available at the time of NT's release)
	RAID 5
	Mirroring
	System admin tools for support of a site up to 50,000 nodes.

	Remote booting (Diskless/dataless workstations)
	Remote maintenance support.
		This was demoed at the NT conference.  The administrator
		on one machine sent a single command that told another
		machine it was to get a new version of the OS.
		The other machine told its user that it was about to
		shutdown... shutdown, accepted the new OS, rebooted.
		All without manual intervention on the client side.
!	Cost: ???

![MICROSOFT PEOPLE -- surely there's more to LM 4 NT... details?]

OS/2 Multimedia (Available now)
	(As far as I can tell from the feature list descriptions
	the only feature below without an analog in NT is the
	"Multimedia Data Converter Applet".)
	
	Amp/Mixer Support
	CD Digital Audio Support
	MIDI Sequencing and Synthesizer support
	Media Control Interface Support
	Multimedia I/O Manager
	Multimedia drivers cross over into DOS and Windows support.
	Synchronization/Streaming API
	Videodisc control
	Waveform Audio Support

	Applets
		MM Setup
		Multimedia Data Converter Applet
		Player Applets
		Volume Control
	Cost: $149


OS/2 LAN Server 2.0 Entry Package (Available now)
	(As far as I can tell from the feature list, NT's base package
	has most of this + Local security + better RPC - (possibly)
	remote booting for clients, so let's call it even.)

	UPS support
	User Profile Management
	Error logging facility
	Remote booting
	Domains
	Limited RPC
	According to PC-Week does not have peer-to-peer abilities.
	Cost: $795

OS/2 LAN Server 2.0 Advanced Package (Not available for OS/2 2.0 yet)
	(Includes features of Entry Package above.)
	Local security
@	Remote maintenance support
	higher throughput.
	Fault tolerance (disk duplexing and disk mirroring)
!	Cost: ???

OS/2 LAN Sever 3.0 (Due by year end)
	(Of course all the features from above)
	Clients can do peer-to-peer file and printer sharing.
!		Anybody know the level of security?
	Built-in TCP/IP
	Advanced version works under 2.0.
!	Cost: ???

@OTHER ADD-ONS

IBM seems to have more specialized add-ons available for OS/2 2.0 than
I am willing to type in.  Please just assume that in terms of such add-on
features NT will be behind for a while.
Examples: X, Extended Services, Database Server, etc.

RELEVANT LIST PRICES

	NT list price	 		< $500. (Source: NT dev conf, InfoWorld)


	OS/2 2.0 list price		$195	(Src: Programmer's connection)
	OS/2 2.0 Multimedia add-on***	$149	(Source: product announcement
						posted to USENET.)
	OS2/ TCP/IP Base Kit**		$200    (Source: product announcement
						found on ftp-os2.)
     OS/2 LAN Server 2.0 Entry Package*	$795	(Source: press release
						found on CompuServe.)
#     Total OS/2 2.0 (near-NT cnfg)****$1,339

@
**** This configuration is of course not 100% equivalent.
This OS/2 configuration has REXX, truly excellent VDMs, and the WPS, etc
over NT's base package. NT has numerous extra OS-type features, Logons,
an e-mail API, Symmetric multiprocessing, NTFS, etc over the OS/2
configuration.  All in all though I believe if there is error in calling
this a "near-NT cnfg", then I'm giving the break to OS/2, so
hopefully the OS/2 people can accept this cost comparison, however
painful it may be for them to do so.

*** OS/2's and Windows NT Multimedia support seem to be equivalent.
I have only seen OS/2's MM feature list though, so feel free to 
correct this if you've seen both.

** OS/2 2.0's TCP/IP Base Kit contains more programs
than comes with NT.  (NT comes with only "client" programs.)
However programming OS/2's TCP/IP requires a $500 programmers
toolkit, and this ability comes with NT's SDK for free.  Thus
I pretend it's an even swap.  Obviously for some, even many users
this isn't the case.  As NT has Berkeley sockets I suspect
that freeware based on Berkeley's daemons will soon appear and make
even this a moot point.

* Windows NT's networking features (beyond TCP/IP) are roughly equivalent
to the OS/2 LAN Server 2.0 "Entry Package".  Here I only have access to
a features list, so if you have experience with both please
jump in.



PLEASE READ BEFORE RESPONDING

I hope to keep this thread having a high information content level.
If you feel the need to bash either OS using this list, please do
so in a separate thread.  People bashing in this thread will be ignored.

If you have correction/additions/deletetions please jump right in.  If
you're not sure and/or don't want to suggest it publicly, e-mail me...
I have access to nearly all the available docs for OS/2 and NT.

If you know of a feature that one or the other will add in the future AND
you have a time frame.  Send it and the time frame along.  Time frames
should be no further out than the end of '94, and preferably before
the end of '93.  Please specify the source of the information.

To avoid things getting entirely out of hand please restrict things
to the systems level sorts of stuff.  For example servers such
as the OS/2 DataBase Server 2.0 are not strictly speaking OS features.
Unfortunately, these things are hard to define as PC OS's regularly muddy 
radition lines in this area.  Also, things from third-parties don't count.

Corrections of grammar, spelling, etc are welcomed.

Brian
-- 
C. Brian Sturgill                       *** OS/2 2.0 is for YOU! ***
University of Utah                  Microsoft needs some competition, but
Center for Software Science        -I- want to be one of the many using NT.
brian@cs.utah.edu; CIS: 70363,1373           :-) :-) :-)
Newsgroups: comp.os.os2.programmer