Windows IT Pro is the authoritative and independent resource for windows nt, windows 2000, windows 2003, windows xp. Features a collection of resources and magazines for windows IT professionals.
  
  
  Advanced Search 


December 1998

Windows NT and VMS: The Rest of the Story


RSS
Subscribe to Windows IT Pro | See More Windows NT 4.0 Articles Here | Reprints | Or get the Monthly Online Pass—only $5.95 a month!

TABLE 1: VMS and NT Terminology Translations
VMS Term NT Translation
Interrupt Priority Level (IPL) Interrupt Request Level (IRQL)
Asynchronous System Trap (AST) Asynchronous Procedure Call (APC)
Fork Procedure Deferred Procedure Call (DPC)
I/O Request Packet (IRP) I/O Request Packet (IRP)
Bug Check Bug Check
System Service System Service
sys.exe ntoskrnl.exe
Paged Pool Paged Pool
Nonpaged Pool Nonpaged Pool
Look aside List Look aside List
Section Section

NT and VMS
Most of NT's core designers had worked on and with VMS at Digital; some had worked directly with Cutler. How could these developers prevent their VMS design decisions from affecting their design and implementation of NT? Many users believe that NT's developers carried concepts from VMS to NT, but most don't know just how similar NT and VMS are at the kernel level (despite the Usenet joke that if you increment each letter in VMS you end up with WNT­Windows NT).

As in UNIX and most commercial OSs, NT has two modes of execution, as Figure 2 shows. In user mode, applications execute, and OS/2, DOS, and POSIX execute and export APIs for applications to use. These components are unprivileged because NT controls them and the hardware they run on. Without NT's permission, these components cannot directly access hardware. In addition, the components and hardware cannot access each other's memory space, nor can they access the memory associated with NT's kernel. The components in user mode must call on the kernel if they want to access hardware or allocate physical or logical resources.

The kernel executes in a privileged mode: It can directly access memory and hardware. The kernel consists of several Executive subsystems, which are responsible for managing resources, including the Process Manager, the I/O Manager, the Virtual Memory Manager, the Security Reference Monitor, and a microkernel that handles scheduling and interrupts. The system dynamically loads device drivers, which are kernel components that interface NT to different peripheral devices. The hardware abstraction layer (HAL) hides the specific intricacies of an underlying CPU and motherboard from NT. NT's native API is the API that user-mode applications use to speak to the kernel. This native API is mostly undocumented, because applications are supposed to speak Win32, DOS, OS/2, POSIX, or Win16, and these respective OS environments interact with the kernel on the application's behalf.

VMS doesn't have different OS personalities, as NT does, but its kernel and Executive subsystems are clear predecessors to NT's. Digital developers wrote the VMS kernel almost entirely in VAX assembly language. To be portable across different CPU architectures, Microsoft developers wrote NT's kernel almost entirely in C. In developing NT, these designers rewrote VMS in C, cleaning up, tuning, tweaking, and adding some new functionality and capabilities as they went. This statement is in danger of trivializing their efforts; after all, the designers built a new API (i.e., Win32), a new file system (i.e., NTFS), and a new graphical interface subsystem and administrative environment while maintaining backward compatibility with DOS, OS/2, POSIX, and Win16. Nevertheless, the migration of VMS internals to NT was so thorough that within a few weeks of NT's release, Digital engineers noticed the striking similarities.

Those similarities could fill a book. In fact, you can read sections of VAX/VMS Internals and Data Structures (Digital Press) as an accurate description of NT internals simply by translating VMS terms to NT terms. Table 1 lists a few VMS terms and their NT translations. Although I won't go into detail, I will discuss some of the major similarities and differences between Windows NT 3.1 and VMS 5.0, the last version of VMS Dave Cutler and his team might have influenced. This discussion assumes you have some familiarity with OS concepts (for background information about NT's architecture, see "Windows NT Architecture, Part 1" March 1998 and "Windows NT Architecture, Part 2" April 1998).

TABLE 2: Significant VMS and NT Similarities
VMS NT
Process scheduler implements 32 priority levels split into halvesProcess scheduler implements 32 priority levels split into halves
Process scheduler never lowers a process' priority below the priority level the application programmedProcess scheduler never lowers a process' priority below the priority level the application programmed
Uses boosting to handle CPU hoggingUses boosting to handle CPU hogging
Supports SMPSupports SMP
Digital introduces kernel threads in VMS 7.0NT 3.1 uses kernel threads
Relies heavily on memory-mapped filesRelies heavily on memory-mapped files
Uses demand-paged virtual memory for physical memory managementUses demand-paged virtual memory for physical memory management
Uses working sets with a clock-based replacement algorithmUses working sets with a clock-based replacement algorithm
Balance Set Manager uses swapping to handle the system's memory demandsBalance Set Manager doesn't use swapping
Supports a layered-driver model throughout the device driver stacksSupports a layered-driver model throughout the device driver stacks
Implements asynchronous packet-based I/O commandsImplements asynchronous packet-based I/O commands
Represents resources as objects managed by an Object ManagerRepresents resources as objects managed by an Object Manager
Security subsystem based on objects with access control lists (ACLs)Security subsystem based on objects with ACLs
MONITORPerformance Monitor
BACKUPNT Backup

NT's processes are virtually the same as VMS's processes (Table 2, page 118, shows a comparison of VMS and NT processes). In NT, as in VMS, the process scheduler implements 32 priority levels. The process with the highest priority is always running, and processes with equal priority are scheduled in a round-robin pattern. The system considers the 16 high-priority levels realtime or fixed priorities, because the process scheduler doesn't manipulate priority in processes the system assigns to that range. The 16 low-priority levels (except 0, which the system reserves for the idle thread that executes when nothing else can) are dynamic because the scheduler, often with the input of device drivers, bumps priorities up in reaction to various conditions, such as when the process receives input from a device. This bumping procedure is called boosting. A defining aspect of the NT and VMS schedulers is that they never lower a process' priority below the priority level the application programmed. To handle CPU hogging, in which a process burns CPU cycles without regard to other processes in the system, the scheduler boosts the priority of starved processes that haven't executed for a defined period. Both VMS 5.0 and NT 3.1 schedulers support symmetric multiprocessing (SMP), which let them execute processes simultaneously on different CPUs in order to increase applications' performance.

A major difference between NT process management and VMS process management is that NT processes contain one or more threads of execution, and NT's scheduler gives CPU time to threads, not processes. Digital didn't introduce kernel threads into VMS until version 7.0 in 1995. This addition is one of several enhancements Digital has made to VMS since NT's release that appear to be in response to NT capabilities. In turn, Microsoft added lightweight user-mode threads support to NT 4.0 in 1996, which it copied from the VMS implementation of threads.

   Previous  1  [2]  3  Next 


Reader Comments
I enjoyed Mark Russinovich’s excellent “Windows NT and VMS: The Rest of the Story” (December 1998), which compared VMS and NT internals. I was hatched under VMS, and I’ve often found familiar widgets under the NT hood.
Like many manufacturing systems administrators, I was sucked into the vortex of Microsoft Office systems several years ago. Nevertheless, I must continue to provide PC access to VMS manu-
facturing files.
Do you remember which network operating system (NOS) you need to share VMS files with PC-land? (Hint: During this software’s golden era—–one Tuesday afternoon in 1992—–the software’s market share made Banyan VINES look like a sound investment.) OK, I’ll whisper it: “VMS Pathworks.”
Guess what? Thousands of VMS boxes that run manufacturing applications day and night still need Pathworks to share VMS files with a PC network. Does Compaq care? Don’t bet Grandpa’s bell-bottoms. Sure, we’ve seen Pathworks upgrades—–ones that work on only Alpha boxes running this week’s version of OpenAXP. What about all those VAX stations that Digital Equipment built to run forever?
What do administrators like me do now—–toss 10 development-years’ worth of production software in the bin and throw out our most reliable hardware? Or, dream wistfully that Compaq will develop a conscience before curtailing support for our old systems?<br>
--Alan Hodge

Alan Hodge August 06, 1999


As a <i>Windows NT Magazine</i> subscriber for the past 2 years, I thank you for the accurate, useful, and timely articles. Mark Russinovich’s December cover story “Windows NT and VMS: The Rest of the Story” has historical value, but this history is well known. This article seems either Microsoft-sponsored (trying to give credibility to NT by tracing its roots to DEC’s VMS and David Cutler) or akin to an academic research paper.
History cannot be changed. David and VMS are the origins of NT. But, who removed VMS’s stability from NT? What about NT’s equivalent of VMS’s Mount Verification (MV)? I am a systems administrator, and we have a VAX VMS and five NT 4.0 servers. The VAX VMS has run without a crash or problem for the past 4 years. Meanwhile, the NT servers have crashed several times in the first few months of use. Plenty of tweaking and adding extra hardware have decreased the number of crashes, but NT will never be like VMS. Will NT make it to its 20th anniversary, as VMS did in October 1998?<br>
--Kersi Marolia<br><br>

<i>Microsoft was unaware of the article until after the magazine went into print. In addition, the idea that Microsoft wants the general public to know that NT’s core is closely based on VMS is unlikely. Have you ever heard Microsoft advertise this link?
I’m not sure what you mean by “academic.” If you mean “of little practical value,” you’re correct. However, many people find the untold history of the OS interesting.
In the article, I try to clearly describe what NT takes from VMS: the core architecture, philosophy, and in some cases, even the algorithms. NT is still very young compared to VMS, and NT’s developers wrote a lot of the OS’s layered management and application support (e.g., the Win32 environment, the administrative tools, the device drivers) from scratch. The kernel has undergone a lot of tweaking and enhancement. I’m not going to make excuses for NT, but I’m also not going to make general statements about NT’s stability based on only personal experience. Without an academic (scientific) study, that conclusion is meaningless.<br>--Mark Russinovich</i>

Kersi Marolia August 06, 1999


At Last the truth is comming out about what sort of theft goes on inside the M$ Corp corridors... I am not going to say any more except that WindBlows will never regain it's strangle hold over the computing world The arrival of Linux was just the start of the onslaught against the M$ Corp

Pete

Pete Nikolic May 21, 2004


What was I thinking? The arrival of Linux has had little impact. VMS has a greater chance than Linux. :)

Pete Nikolic June 10, 2004


Fascinating. I've just started out learning about the WinNT setup, using the "Inside Windows NT" book. (I have to - I'm hoping to start developing stuff for the MS WinNT platform as well as the Linux/*BSD, and every little bit helps. (Mono and PNet) ;)

Now it looks as if it mightn't be such a bad idea to hunt down the VAX/VMS Internals and Data Structures book as well. Thanks for the info.

Wesley Parish July 04, 2004


This is very amusing and new to me. Linux was written from scratch yet Microsoft claims it might face crippling patent lawsuits. We now know this is laughable as the only company with a distant chance in hell of winning a lawsuit for damages against Linux was SCO, and we all know the laughing stalk they've become.

Windows NT on the other hand is a wholesale re-write of VMS, steals parts of OS2, and was written by the former employees of the people who wrote VMS in the first place! If anyone is ripe for a lawsuit then it is Microsoft.

I'm sure they've got their backs covered though, and if they don't then they could buy any threatening company out with their 50 Billion in cash. Except for IBM perhaps, that would be a clash of titans.

And to Pete Nikolic, yeah I guess you're right, Linux isn't a threat. That's probably why it continues marginalizing IIS into a niche and dominating the server market ;-)


Anonymous User February 08, 2005


http://www.euronet.nl/users/frankvw/index.html

Anonymous User February 22, 2005


The windows source code must be released to the public. Everyone than can laugh at the shoddy programming and stolen stuff in Winows NoTail.
Linux is better, bugs are fix faster, but still
new hardware support is sometimes a bit weird.
Still more stable than winows.

Anonymous User March 06, 2005 (Article Rating: )


Dear Anonymous User -March 06, 2005,

It already has been, look up "Windows 2000 Source" in Emule. Some Russian hackers stole the sourcecode and released it - stealing Microsoft's source is like stealing candy from a baby. It's filled with profanities and complaints about how terrible code is, quite amusing really.

Anonymous User March 08, 2005 (Article Rating: )


Fantastic article. I have used both VMS and Win/NT intimately for the last 20 years, and Mark's article is right on the money.

Anonymous User April 13, 2005 (Article Rating: )


 See More Comments  1   2 

You must log on before posting a comment.

If you don't have a username & password, please register now.




Top Viewed ArticlesView all articles
PsExec

This freeware utility lets you execute processes on a remote system and redirect output to the local system. ...

Friday at PASS Europe 2006

Kevin talks about the closing day of the event and shares a funny Microsoft film. ...

More fun TechEd 2005 Resources

Kevin points out some more TechEd resources ...


Windows OSs Whitepapers Why SaaS is the Right Solution for Log Management

Are You Satisfied?

A Preliminary Look at Deployment Plans for Microsoft Windows Vista

Related Events Check out our list of Free Email Newsletters!

Windows OSs eBooks Understanding and Leveraging Code Signing Technologies

A Guide to Windows Certification and Public Keys

SQL Server Administration for Oracle DBAs

Related Windows OSs Resources Become a VIP member of the Windows IT Pro community!
Get it all with the VIP CD and VIP access. A $500+ value for only $279!

Subscribe to Windows IT Pro!
Solve your toughest technical problems with our experts and access 10,000 + articles online. 30% off

Monthly Online Pass - Only $5.95!
Get instant access to 10,000+ articles from Windows IT Pro Magazine!

TechNet Virtual Labs
Evaluate and test Microsoft's newest products.

Job Openings in IT


ADS BY GOOGLE SPONSORED LINKS FEATURED LINKS

Microsoft Exchange & Windows Connections event returns to Las Vegas Nov 10 - 13
Connections returns to Las Vegas for this exciting event where each attendee will receive SQL Server 2008 standard with 1 CAL. Co-located with Microsoft ASP.NET, SQL Server, and SharePoint Connections with over 250 in-depth sessions.

Free Online Event! Virtualization:Get the Facts!
Register now and attend this free, live in-depth online conference on November 13 and 20, 2008, produced by Windows IT Pro. All registrants are eligible to receive a complimentary one-year digital subscription to Windows IT Pro (a $49.95 value)!

Check Out Hyper-V Video on ITTV
Watch Karen Forster's interview on Hyper-V's performance on ITTV.net.

Ease Your Scripting Pains with the Flexibility of PowerShell!
Join MVP Paul Robichaux on December 11, 2008 at 11:00 AM EDT as he equips you with PowerShell basics in 3 introductory lessons, each followed by a live Q&A session—all on your own computer!

PASS Community Summit 2008 in Seattle on Nov 18-21
The don’t-miss event for Microsoft SQL Server Professionals. Register now and you’ll enjoy top-notch Microsoft and Community speakers and more.



Speed Up Your PC!
Try Diskeeper 2008 with InvisiTasking Free Now!

Get Protected -- Data Protection Manager 2007
Protect your virtualized environment with Data Protection Manager

Agent-less Remote Backup Service, Free 30 Day Trial
Award winning remote backup service at a competitive price with no min GB/month. Sign up Now!

ScriptLogic Cartoon Caption Contest
Submit your caption and you will be entered to win $198.42

Order Your SQL Fundamentals CD Today!
Learn how to use SQL Server, understand Office integration techniques and dive into the essentials of SQL Express and Visual Basic with this free SQL Fundamentals CD.

List Your Products in Our Technology Resource Directory
Don't miss the chance to post your free listing in this comprehensive directory for IT and developer professionals, powered by Windows IT Pro. But hurry! Deadline ends Oct. 9.
Windows IT Pro Home Register FAQ for Windows WinInfo News
Europe Edition About Us Contact Us/Customer Service Media Kit Affiliates / Licensing  
SQL Server Magazine Office & SharePoint Pro Windows Dev Pro IT Job Hound ITTV
IT Library Technology Resource Directory Connected Home Windows Excavator Windows SuperSite 
 
 Windows IT Pro is a Division of Penton Media Inc.
 Copyright © 2008 Penton Media, Inc., All rights reserved. Terms and Use | Privacy Statement | Reprints and Licensing