From: brian%jaguar.cs.utah.edu@cs.utah.edu (Brian Sturgill)
Subject: OS/2 vs NT features list, Revision 1.3
Date: 1 Sep 92 22:28:00 MDT
Originator: brian@jaguar.cs.utah.edu
Organization: University of Utah CS Dept


OS/2 vs NT features list, Revision 1.3

I've spent many hours digging this information out. I've tried
to be as unbiased as I can.  I am (as many of you seem to love to point
out) not perfect.

My mail volume has quadrupled since I started this thread... please
don't be offended (unless you were flaming me) if I did not respond... I'm
swamped. (Keep the mail coming though... there's good info out there.)

A "#" at the beginning of an entry signifies that it has been changed
this revision.  An "@", signifies it is new this revision.
Deletions in this version:
	SDK has C++			// Not a part of the base package
	NTFS
		Extensible Attributes	// Editing mistake
		B-tree directories.	// I was wrong

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 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.


Here is a list of 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.)
#     OS2 LAN Server 2.0 Entry Package	$795	(Source: press release
						found on CompuServe.)

* 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.

#
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 press release, so if you have experience with both please
jump in.

If you have detailed feature lists for Lan Server 2.0 Entry or Advanced
Packages, I'd love to see them.

The lists below is of features in the BASIC system package.

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.

@	Runs without a GUI.

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.
		DosAllocMem is not equivalent, it merely allocates memory
		blocks.  This API is roughly equivalent to doing malloc's
		from multiple heaps.
		
#	Automatic stack expansion.
		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.  Worse, 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.

	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.  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.
		Apparently the 16-bit API DosReadAsynch, DosWriteAsynch
		still exist in thunked form.
		Deitel and Kogan don't mention them... anybody
		know why they're being phased out?

@	Console API
		Please remain calm on this one... I am just hoping for
		some information.  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 flys by 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.)

	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.
	
	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 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.
		ACLS
		UPS support.

	Volume Stripping(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
		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.
@	Probably will pass NT in SuperVGA support.
#	Rumored to slim-down such that it might properly fit in 4 megs.
		I use the word rumored as I've not seen an announcement
		from IBM that this will happen at this time.  People
		believe it will... if you know for certain... tell
		me and I'll take "rumored" off.  Other rumors I've left
		off the list, but this one is quite important to OS/2's
		positioning against NT.

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)
@	Tape API
	Win32s (Run NT programs under Windows 3.1)
#	Remote booting (Diskless/dataless workstations)
		(Some say OS/2 has this now... is this in the base package?)
	Remote installation and 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 it's user that it was about to
		shutdown... shutdown, accepted the new OS, rebooted.
		All without manual intervention on the client side.
	NTFS
		Symlinks
		Sparse File


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. Publically
		available details are sketchy.  Prototypes have been
		demoed to a lucky few.

@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.

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

OS/2 Multimedia (Avaliable 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


OS/2 Lan Server 2.0 Entry Package (Avaliable now)
	???

OS/2 Lan Server 2.0 Advanced Package (Avaliable now)
	???

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           :-) :-) :-)
Xref: sparky comp.os.os2.advocacy:5028 comp.os.os2.misc:29317