Notes on Moving the CSRVL to Windows NT

Justin Voskuhl,

Last Updated 18 October 1995

CSRVL projects and Windows NT

For a number of CSRVL research projects supervised by Ramin Zabih will be moving to WindowsNT. We are hopeful that this move will be supported by Microsoft.

About Windows NT

What is Windows NT?

Windows NT is Microsoft's highly portable, next-generation 32-bit Windows operating system. Even with its radically different architecture, Windows NT provides backward compatibility with MS-DOS, Windows 3.1, OS/2, and POSIX applications, even on non-Intel processors.

Windows NT is designed to be as extensible as possible. Borrowing from the design of CMU's Mach, Windows NT consists of priviledged executive, and a set of non-priviledged servers called protected subsystems. NT's design is unique in that protected subsystems execute in user mode like applications do. This structure allows protected subsystems to be modified or added without affecting the integrity of the executive. In addition to protected subsystems, NT provides a modular executive that can be easily extended. NT represents system resources as objects, that can only be modified through object-specific APIs. New system objects can be added without undermining existing objects. NT supports drivers that can be changed while the system is running, and NT can support new file systems, devices, networks, or transport protocols simply by writing a new driver. RPC is built into NT, so that an application can call remote services without regard to their location on the network. New services can be added to any machine on the network and be made available immediately.

Windows NT is designed to be as portable as possible. It is written primarily in C, with small portions written in C++. The only parts that are written in assembler are those that must directly talk to the hardware, and are carefully isolated from the rest of the system. This means there are a variety of CPUs that can run NT, including Intel x86, MIPS, PowerPC, and Alpha chips. NT can run on systems with one or more processors.

Windows NT provides several machanisms to increase reliability. NT responds predictably to error conditions, even those caused by hardware failures. Structured exception handling is used to catch software errors. Whenever an abnormal event occurs, exception handling code, which exists throughout the system, is automatically invoked in response to the condition, ensuring no undetected error wreaks havoc on user programs or the system itself. In addition NT implements a new file system, called NTFS, which can recover from all kinds of disk errors, including those in critical disk sectors. It uses redundancy and a transaction based scheme for storing data to ensure recoverability. NT security measures are C2 class government certified.

Finally, Windows NT is designed to be fast. Each component was written with an eye towards performance, with each protected subsystem optimized to maximize the speed of frequently used system calls. To increase speed of communication between protected subsystems, Local Procedure Call facilities are provided as an integral part of the OS. Finally, networking is built into Windows NT to achieve the best possible performance.

In summary, Windows NT is a thoroughly modern, full-featured, highly compatible operating system for 90's and beyond.

--(Mostly) Taken from Section 1.2 of Helen Custer's "Inside Windows NT" Microsoft Press

Why Windows NT?

The gap between the performance of the typical PC and the SPARC machines has grown smaller and smaller. At the same time, operating systems for the PC have grown more and more advanced. There are a number of reasons for moving to NT from current UNIX-based environment. They include having the results of CSRVL work being immediately usable by the large and growing Win32 user base outside of Cornell. Also, basic hardware to run NT has a higher performance/price ratio than many of the SPARC machines available. Another advantage is using the same OS from our "low-end" Pentium PCs all the way up to SMP RISC machines.

Moving to NT

Notes on moving to NT

There are a number of issues involved in moving some of the research in the CSRVL to Windows NT. There are both software and hardware hurdles we need to leap before researchers can do productive work under NT. Note we don't want to make anyone use NT who is more familiar with UNIX, or has reasons for doing work in UNIX. This will just be another option for doing work in the CSRVL. Interoperability with the existing UNIX investment is important.


Right now the CSRVL is populated mostly with SPARC IPC/IPX systems, with a few SparcStation5 machines and PC clones. Soon we'll have a dual processor Micron 133Mhz Pentium system as well. None of the SPARC systems will run NT, and as far as I'm aware, won't run NT in the near future. We will therefore need a number of NT workstations, which will probably be PC clones, and we're also interested in a multi-processor system, which may be Intel or RISC. Microsoft maintains a list of the SMP hardware NT will run on.


Microsoft is going to provide software to completely outfit ten NT machines initially. We get to determine what "complete" means. To this end, I've put together a list of software of interest to the CSRVL. You can find descriptions of most of these products at the Microsoft web site.

Projects to Move to NT

The following are brief descriptions of projects that are ongoing in the CSRVL and could benefit from Windows NT.

Spatial Energy Histograms

In many applications, color histograms are used to compare images. Their advantages are their efficiency, and their insensitivity to small changes in camera viewpoint. Their chief drawback is their lack of spatial information, which can lead images with very different appearances to have similar histograms. We describe a histogram-based method for comparing images that incorporates spatial information.

MPEG Browser and Scene Break Detector

Until now we could view mpegs just like we could watch movies. Unfortunately, we were unable to take the advantage of digital format: I have not seen mpeg players allowing user to skip to arbitrary frame, fast forward, rewind, etc. Even more importantly, the video was basically a sequence of frames with no structure. But it is obvious that video higher structure than frames: we can partition video into shots, scenes and larger chunks, like movies, tv shows, etc. We can also partition the video accoding to the content, for example we might want to select a segment of video in which a particular actor appears.

Mpeg_browse provides an interface for browsing video. User can play video, stop at arbitrary point, fast forward. What is the advantage of MPEG Browse over other video players? MPEG Browse adds a very limited, yet useful structure to the video: it partitions the video into shots. Based on these information, the browser can skip to the next shot, much like a CD player can skip to the next song. The scene break algorithm was developed by Ramin Zabih, Justin Miller , and Kevin Mai. For more details about the algorithm see the web page.

ATM Camera

Matt Welsh is designing a realtime video source for the Cornell/NYNET ATM Cluster which will allow machines on the cluster to capture and process images at high speeds. The video source employs a framegrabber and ATM interface card both over PCI. I am implementing kernel drivers for both cards, as well as some form of Active Messages and U-Net for this machine. The video source should be compatible with the Cornell IBM SP/2 as well.