Windows NT 4.0
Explore the New Features
March 31, 1996
Windows NT 4.0 is currently undergoing beta testing and is due for releaseearly this summer. NT 4.0 combines--and improves on--the Windows 95 userinterface without compromising NT's robust architecture. NT 4.0 also offersimproved interoperability with other systems, although this improvement ismostly relevant for integration with legacy systems.
User Interface
NT 4.0 has sometimes been called the Shell Update Release because Windows NTWorkstation and Server both get the Windows 95 user interface (known as the shell)in this release. This fact is ironic because much of the work on this userinterface was originally for Microsoft's forthcoming Cairo operating system(which has become a floating collection of features to put in future versions ofNT). As the situation stands, responsibility for the shell bounces between theNT and Windows 95 teams, as each leap-frogs the other in major releases. One wayto look at the state of the interface is that the Win95 team added the "eyecandy" we've become familiar with, and then the NT team got to figure outhow to make the interface robust and secure, support multiple logins andmultiple profiles, and be Unicode-aware.
From a technical perspective, the new user interface in NT 4.0 consists ofseveral pieces that will be familiar from the Windows 95 interface. The mostobvious piece includes the new shell components, such as the Taskbar, StartMenu, Desktop, and Explorer. From Windows 95, you
can also recognize NT 4.0's new common controls and common dialogs (forinstance, the FileSave dialog); the new look, which incorporates userinterface features such as 3D forms, single-button close, and Microsoft SansSerif font for menus; and even the new WinHelp system, which has such featuresas full-text search and easy-to-use "what's this" help.
Some of this shell-related functionality first shipped with Windows NT3.51. In particular, the Windows common controls--implemented in theCOMMCTRL.DLL--provide most of the intrinsic control for new shell componentssuch as the Explorer (see screen 1). In its dual-pane view with everythingturned on, the Explorer primarily consists of a Treeview, Listview, Toolbar,Tooltip, and Status control. Although support for these controls shipped with NT3.51, we didn't get a chance to play with them until the new Windows shell andapplications designed for the Windows 95 Compatibility Logo started shipping.Eventually, most of the operating system and virtually all applications will usethese controls and will look and feel similar in Windows 95 and NT.
Still more aspects of the new user interface will become obvious once youget a chance to use it. Some, such as right mouse-button context menus andtabbed dialogs for properties, aren't so much shell features as they arestrongly suggested guidelines for application developers. Some shell featuresdon't even have any visible interface. A good example is the ShellExecuteExfunction, which is called when a user types something into the Run dialog. Inthis case, the user's string can contain a program, a file of a registered type,a folder to open or explore, or even a Hypertext Transfer Protocol (HTTP) orFile Transfer Protocol (FTP) Universal Resource Locator (URL). Windows NT knowshow to activate the string, even to the point of starting the Internet Exploreror initiating a Remote Access Service (RAS) AutoDial to access a remote file orfolder.
Shell-related Differences
Although the NT 4.0 shell is similar to the Windows 95 interface, somefeatures and functions in the new shell work uniquely with NT (however, some ofthese will be in the next update to Windows 95). Perhaps the best place to startdiscussing shell-related differences between NT 4.0 and Windows 95 is at thepoint where a user logs on. Administrators and experienced NT users know thatprevious versions of NT store individual user profile information in theregistry and maintain it in a separate hive, or disk file, in the systemrootsystem32configdirectory. The Program Manager uses this information to implement user-specificand common program groups. The new shell replaces program groups with foldersthat contain shortcuts, and administrators implement the functionality of commonprogram groups by placing folders and shortcuts under the systemrootprofilesAllUsers directory. Screen 2 shows the structure of the profiles subdirectory,including subdirectories for Administrator, All Users, Default User, and one foreach user on the system.
As you might expect, the NT implementation of the new shell is secure. TheNT 4.0 shell security includes the usual user profile protections and addressessuch features as the wastebasket, or Recycle Bin. An important point is that theNT shell provides several Unicode interfaces, all of which are missing inUnicode-ignorant Windows 95. Although these Unicode interfaces are primarily adeveloper issue, they have some important ramifications. For example, the NTversion of the Briefcase can convert Unicode to ANSI (file names only), and theFind Files feature includes an ANSI-only search option.
One of the NT shell's handiest features is the built-in support for viewingthe properties of Object Linking and Embedding (OLE) documents, such as thosethat Microsoft's Office suite of applications creates. In the Windows 95 shell,the properties page for this article looks like screen 3. NT 4.0, however,understands the latest version of the document summary information and addsproperties tabs for contents and customizing. Users can now select from a richerset of properties or even develop their own, assigning text, date, number, oryes/no values (see screen 4). Also promised--but not delivered in the firstbeta--is a new Task Manager.
Alas, a few features from the Windows 95 implementation of the shell aremissing or limited in NT 4.0. A good example is changing the display resolution.Windows 95's desktop properties control lets you easily change the displayresolution. In NT 4.0, you still have to reboot to implement this change. SomePlus! pack functionality, which many people lump in with Windows 95, is anexample of features that appear to be new in the NT 4.0 shell but that werealready part of NT. These features that were already in NT include full-windowdrag, RAS server, and animated icons. Other Windows 95 Plus! features, such asthe sound schemes, are in NT, and yet other features, such as diskdefragmentation, will never work under NT. Fortunately, NT 4.0 doesinclude the Plus! pack's well-done Pinball arcade-style game.
Internet
In recent months, Microsoft has made a lot of noise about how important theInternet is and how all Microsoft products revolve around it, but NT 4.0 doesn'thave much new Internet technology. The most important Internet-related featurein NT 4.0 Server is Microsoft's Internet Information Server (IIS--formerlycode-named Gibraltar). IIS shipped in February as an add-on to Windows NT andhas received favorable reviews, particularly for its speed. The IIS version thatwill ship with NT 4.0 will be only a minor update of the February release andnot add any major new functionality.
On the client side, Microsoft has packaged several components fordevelopers to use when creating Internet-enabled applications. Of course,Microsoft did include a newer version of the Internet Explorer than the versionthat shipped with Windows 95 (and the updated version is now also available forWindows 95).
Network OLE
One big feature under the hood in NT 4.0 is the first release of NetworkOLE. You won't really see anything in Network OLE, and users willprobably be unaware of its existence. However, having Network OLE will letdevelopers and solution providers use off-the-shelf and custom-created OLEcomponents to build robust distributed applications. Without going into muchdetail, I'll just say that Network OLE uses an industry standard RemoteProcedure Call (RPC) mechanism to enable an OLE-based application to start andmanipulate a remote or networked OLE server. To facilitate this architecture, aService Control Manager (SCM) manages object creation on the local machine byexamining the cache of running objects and causing them to be created remotelywhen appropriate.
Roughly the same functionality is available today with the remoteautomation capabilities of Microsoft Visual Basic (VB) 4.0's Enterprise Edition.However, that solution works only with OLE Automation, whereas Network OLEsupports any built-in or custom OLE service. Network OLE also improvesperformance over Remote Automation because Network OLE dispenses with RemoteAutomation's proxy and Automation Manager. Note: Windows 95 currently does nothave a Service Control Manager, so Windows 95 cannot use Network OLE. Microsofthas indicated that some sort of Windows 95 support is forthcoming, but thecompany has not yet said how it will package and deliver this support.
NT 4.0 also includes support for OLE free threading. To isolate threads,previous OLE implementations were either not thread-safe or had to use whatMicrosoft called "apartment-model" threading. Although OLE freethreading requires significant additional development work, it removes OLE fromthe message loop, which results in fewer thread transitions and can measurablyimprove performance. Applications that are free threaded can initialize a poolof worker threads, which means the application scales better. This capability isparticularly useful in server applications. In addition, an application canimplement some components using the free-threading model and some using theapartment model. This flexibility is important when you can't re-architect yourapplications or when some of your development tools--for instance, VB--don'tsupport free threading.
OLE in NT 4.0 takes full advantage of NT's built-in security and cleans upa problem that was frequently associated with OLE applications trying to run asservices under NT: NT's built-in security did not let OLE services communicatebetween applications because most applications are launched from a desktoprunning in a different security context or winstation from the services. UsingNetwork OLE, NT 4.0 now allows communication between security contexts.
Kernel Mode User and GDI
Another feature that's way under the hood in NT 4.0 is theincorporation of the Win32 subsystem into the Kernel. In the past, most ofWindows' core functionality was implemented in three DLLs comprising a libraryof callable routines that, in greatly simplified terms, provided the following:
User: keyboard and mouse input, user interface output (windows, icons, menus, and so on), and messaging
Kernel: I/O services, virtual memory management, and task scheduling
Graphics Device Interface (GDI): bitmaps, fonts, colors, and so on
In the 16-bit versions of Windows, all applications share the same addressspace. When Microsoft (actually, Dave Cutler) designed Windows NT, the decisionwas to put each process in a separate address space, isolate the Kernel from therest of the operating system and create a separate Win32 process for managingUser and GDI objects. Under this design, each application is isolated not onlyfrom the operating system, but also from all its windows, menus, and so on.
Unfortunately, most calls to a User or GDI routine involve a trip through aclient-server runtime subsystem in the Kernel executive. This trip entails asubstantial number of thread transitions and noticeably affects performance. TheNT developers did as much as possible to improve performance and ended upimplementing a couple of optimization techniques: First, they implementedbatching of User and GDI calls, which helps amortize the overhead of the threadtransitions, and second, they implemented caching values on the client side topotentially short circuit some calls. Figure 1 shows an architectural diagram ofthe typical path that a call to NT's User32.DLL takes.
With NT 4.0, Microsoft wanted to add the new shell and user interfacewithout taking a noticeable performance hit, so the developers decided to movethe Win32 subsystem into the Kernel. The idea was to save some overhead andeliminate a large number of (expensive) thread transitions. Microsoft thenfigured that performance would increase so much that batching and caching wouldno longer be required. Unfortunately, tests showed improved performance for Userroutines, but GDI routines were slower. The developers put batching and cachingback in and brought overall performance into line with what they were initiallytrying to achieve.
Microsoft claims that these changes do not affect system stability, butmany users undoubtedly will adopt a wait-and-see attitude. Figure 2 is therevised architectural diagram showing the relocated Win32 subsystem. Note thatthe client/server runtime subsystem is still present in NT 4.0--a smallCSRSS.EXE still loads CSRSRV.DLL, which is primarily for console applications.
Hardware Profile Support
Another top customer-requested feature of NT is built-in support formultiple hardware configurations. Although NT didn't get Windows 95's handyplug-and-play support--it has been deferred back into Cairo--NT 4.0 adds supportfor multiple hardware profiles. You can select a hardware profile at boot time,usually to handle docking stations, external peripherals, and even PC Carddevices (PCMCIA cards with a marketing makeover). PC Cards work fine in NT 4.0and even have a new Control Panel configuration applet--you just can't hot swapthem. NT 4.0 also doesn't support Advanced Power Management (APM), although itwill obviously respect any hardware settings you have enabled.
Other Features
Now that we've reviewed the most prominent features of NT 4.0, we can turnto the less earth-shattering ones. Here are a few interesting ones.
DirectX: The Windows 95 Game Software Developer's Kit (SDK) introduced the DirectX family of application programming interfaces (APIs) to give Windows game developers better performance by letting them program closer to the hardware. Specific DirectX API sets include DirectDraw for high-speed graphics and animation, DirectPlay for multiplayer communications, DirectInput for handling game input devices, and DirectSound for advanced audio capabilities such as low latency and mixing. Although support for the DirectX APIs isn't in the first beta-release of NT 4.0, the plan is to include these APIs in beta 2. Unfortunately, the entire spectrum of DirectX APIs may not end up fully implemented. DirectSound, for instance, runs in emulation mode and uses the existing NT sound drivers.
RAS: NT 4.0 also includes revamped RAS support. Changes include shell integration similar to Windows 95 (where the Dial-Up Networking folder appears off the My Computer root), AutoDial, the new RAS APIs added to Windows 95 to support Microsoft Network (MSN) and the Internet Explorer, and new phonebook APIs that display built-in dialogs for adding and editing phonebook entries. You can trigger RAS AutoDial by referring to an Internet host name, an Internet Protocol (IP) address, or a NetBIOS server name that RAS AutoDial has previously learned.
Telephony API: TAPI is available in Windows NT 3.51, but only as a limited subset supporting the functions necessary to make data calls and interface with RAS. NT 4.0 gains full TAPI support, so NT will now be able to run such applications as MSN, the Exchange Client, the Internet Explorer, and various fax applications. Unfortunately, both MSN and Microsoft Fax--including the fax printer driver, shared fax modem, viewer, send fax wizard, and exchange extensions--are not shipping with NT 4.0. Also, some telephony applications such as Microsoft Phone, need additional support for Unimodem/V, which is not yet ported to NT.
486 Emulation: Previous versions of NT running on RISC platforms perform only 286 emulation. NT 4.0 runs 386-enhanced 16-bit applications.
CD File System (CDFS): NT 4.0 CDFS now supports autoplay CDs and CD-XA formats.
Messaging Subsystem (NT-WMS): The NT-WMS includes the Exchange client, Mail API (MAPI), migration Microsoft Mail service, and Internet mail service. The Exchange group delivers it, and it is equivalent to the components that shipped with Windows 95.
NetWare 4 client/login script support: The NetWare Directory Service (NDS) client for Windows NT Workstation provides NetWare login script support and file/print capabilities.
Windows Internet Name Service (WINS) and Domain Name System (DNS): NT 4.0 includes DNS (equivalent to the Berkeley Internet Naming Daemon--BIND--in BSD UNIX). DNS returns IP addresses for named clients. DNS integration with the dynamic WINS database for mapping computer names to IP addresses is improved.
A Desktop Winner
NT 4.0 has a lot to offer: a great and extensible user interface, a robustarchitecture, as much security as you feel like administering, and a bunch ofnew services for developers to play with. It's too early to know for sure, but amemory requirement of 12MB will likely make NT Workstation 4.0 more competitiveon the business desktop. And on the server side, IIS and other new features inNT Server 4.0 go a long way to strengthen NT server's competitive position andstrategic importance in the corporate market. Of course, you still might want torun Windows 95 on systems where you play DOS-based games on laptops withfrequent PCMCIA card hot swaps, or on systems that don't support NT's minimummemory requirements (probably 12MB for NT Workstation). If, however, you arelooking for an industrial-strength solution for corporate desktops, NT 4.0offers an impressive set of features and functions. Don't be surprised to see NT4.0 blanket the landscape like a sudden snowstorm.
See Sidebar "NT 4.0 For Developers"
About the Author
You May Also Like