Notes on Moving the CSRVL to Windows NT
Justin Voskuhl, firstname.lastname@example.org
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
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
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.
- Visual C++ 4.0 (recently released to manufacturing at MS)
- Windows NT Workstation 3.51
- Windows NT Resource Kit
- Visual Basic Pro 4.0
- Fortran PowerStation
- Office '95 Pro Productivity Suite
- Subscription to MSDN Level Two for each researcher
- UNIX Interoperability tools, X11 emulator, NFS software
Projects to Move to NT
The following are brief descriptions
of projects that are ongoing in the CSRVL and could benefit from
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.
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
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.