From: brian%jaguar.cs.utah.edu@cs.utah.edu (Brian Sturgill)
Subject: OS/2 vs NT features list, Revision 1.2
Date: 31 Aug 92 16:46:29 MDT
Originator: brian@jaguar.cs.utah.edu
Organization: University of Utah CS Dept


OS/2 vs NT features list, Revision 1.2

I've spent many hours digging this information out. I've tried
to be as unbiased as I can.

If you feel the need to bash either OS using this list, please do
so in a separate thread.

If you have correction/additions/deletetions please jump right in.  If
you're not sure and don't want to suggest it publically, e-mail me...
If I don't know for certain already, 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.
Please specify the source of the information.

I hope to keep this thread having a high information content level, but
we shall see, this group isn't the best place to attempt such things.
Below some of the features I've added explainations.  Please tell me
if more are needed.  Also chide me (via e-mail) if I'm too preachy.

Also.... this is a list of features in the BASIC system package.

If someone would like to make a list of features for the LAN Server
OS/2 add-on, that would be great.  Please try to find out the
list prices for these features... I only know the ones from memory
a few months ago, and so don't really trust my numbers.

I do know the following:
	NT list price:  		< $500. (Source: NT dev conf, InfoWorld)
	OS/2 2.0 list price:		$195	(Source: 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 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.

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.

Features currently in OS/2 2.0 but not in Windows NT
  
	Object Oriented Shell (WorkPlace Shell)
	
	Great DOS support
	
	Mediocre Windows 3.0 support (NT's is currently poor).
	
	Is actually released.

Features currently in Windows NT but not in OS/2 2.0
	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.
	
	Generic wait on multiple events/semaphores of different types.
		This is helps prevent deadlocks.  Consider the classic
		deadlock example: Two processes, P1 and P2, both want
		to access tape drives A and B.  P1 locks A and waits for
		B, P2 locks B and waits for A. Deadlock.
		With the generic wait facility you say wake me when
		I have both A and B.  This mechanism prevents many
		deadlock problems.
		
	Multiple growable heaps.
		A process can have more than one heap.  That heap can be
		grown.  Classic example of use is you have a bunch
		of data elements that are used in one part of your program
		that needs to be dynamically allocated, but before
		the end you no longer need that set of data and need to
		free the memory.  Rather than free each element, allocate
		a heap just for that data.  Do the allocations from that
		heap.  At the end free the heap.
		
	Automatic stack expansion.
		I am certain that OS/2 does not do this.
		OS/2 has you specify a limit on the stack size, but allocates
		only one page of the stack at a time, using a guard page
		technique to expand the stack.  When you hit the
		stack size limit your process dies.  Why they went most
		of the way, instead of all the way, I really cannot say.
		
	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)
	
	Memory mapped files
	
	Asynchronous I/O
		OS/2 1.X had this feature but for unexplained reasons
		dropped it in 2.0.  While you can do it with threads,
		you can also multi-task in DOS... all you have to do
		is write the code that intercepts the timer interrupt
		and swaps the processes.
		
	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.)
		
	Dynamic 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.j

	Pen Support.
	
	Windows 3.1 support.
	
	Fully 32-bit drivers.
	
	SDK has C++
	
	GUI
		Fully 32-bit API
		Fast client/server approach.
		Separate queues per process.
			PM and Windows 3.X have one message queue for all
			applications.
		Designed to help accellerators.
			The internal routines have been changes so that
			drawing commands are buffered and sent to the
			underlying graphics drivers in a manner that
			can take advantage of graphics accellerator cards.
		
	OLE
	
	Good _published_ debug hooks.
	
	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 impersonate a client's identity to
			so that work can safely be performed on behalf
			of a client.
		
	RPC
		DCE support
		OLE integrated with RPC
		RPC has corresponding LPC
	NTFS
		Fast Recovery (CHKDSK gigabyte volumes in a few seconds.)
		High Reliability
		Hard Links
		Case-Sensitive
		Extensible Attributes
		Automatic 8.3 names
			If you give NTFS a name that does not fit the 8.3
			pattern it will automatically generate a unique
			8.3 filename so that DOS apps can see it also.
		ACLS
		B-tree directories.
		Volume striping
		UPS support.
		
	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
		Berkely 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.

OS/2 2.0 will add the following in September/October
	Catch up to NT by having Windows 3.1 support.
	Catch up to NT by adding a 32-bit GUI.
	Catch up to NT by allowing 32-bit drivers.
	Rumored to slim-down such that it might properly fit in 4 megs.

Windows NT will add the following in September/October
	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)
	Win32s (Run NT programs under Windows 3.1)
	Remote booting.
	Remote installation and maintenance support.
	NTFS
		Symlinks
		Sparse File


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           :-) :-) :-)