Steve Halladay manages software development for DATASONIX in Boulder, CO. He received his MS in Computer Science in 1982 and has over 10 years experience developing products like CSIM and Multi-C in C and C++. You can reach Steve at DATASONIX (303) 545-1807.
Introduction
Inside Windows NT is a architectural description of Microsoft's operating system. This book describes the major components, functions, and features of the operating system. Inside Windows NT is not an NT technical reference. This book purposely avoids most of the bits and bytes details of the operating system. Instead, Custer's book tempers the detail to give readers a high level tour of NT, with enough meat to make the book interesting.Custer claims that the book was not written to explain detailed operating system theory, but Inside Windows NT could be an excellent text for any student of operating systems. As Custer points out in the book, Microsoft built a team of high powered operating systems experts to develop NT. The NT development team seems to have elegantly addressed many traditional operating systems issues as well as more pragmatic problems like compatibility and performance. Custer's book captures how and why the NT development team managed these concerns.
Even though Inside Windows NT takes the reader into the bowels of the NT operating system, the reader need not be a kernel guru. Custer carefully and succinctly lays a foundation that helps the average software developer understand the NT requirements, issues, and architecture.
Because Inside Windows NT is published by Microsoft Press, I was concerned that it might be another form of sales literature. Much to my delight I found Custer's work to be objective and informative. Obviously, this book does not point out NT's weaknesses and it does leave the reader believing the NT development team has done a thorough job.
Content
The first chapter describes NT's requirements. The second chapter is an overview of the operating system. The remaining seven chapters each treat a different aspect of NT in detail. The topics from the last seven chapters of the book include the object manager, security, processes and threads, Windows and protected subsystems, memory management, the kernel, the I/O system, and networking.Even though Custer completely covers the different aspects of the operating system, she has written the chapters to be as independent as possible. I would suggest readers use the first two chapters as a foundation for the remainder of the book. Having read the first two chapters, readers can select, and understand, topics of interest from the remaining seven chapters in independent order.
Chapter 1 introduces the subject matter by identifying the NT design goals, and giving some background on the development team. The design goals help the reader understand some of the central issues of current operating systems such as compatibility, extensibility, and performance. It is important to understand these goals to appreciate later discussion of the architecture.
Chapter 2 is an overview of NT. This chapter enumerates the major components of the operating system and also identifies some of the more interesting features of the operating system. To answer the types of questions I had about NT, I found chapter 2 to be worth the price of the book. By reading chapter 2, I became aware of the general flavor and capabilities of NT.
Chapter 3 discusses the NT object manager and security. Unlike MS-DOS and Windows, NT has a full blown security system. Chapter 3 shows how NT guarantees its security and what capabilities it supports.
Chapter 4 defines and discusses processes and threads. NT supports threads as well as processes. While the description of NT's process and thread model was not revolutionary, the description was thorough and easy to understand.
Chapter 5 describes how NT will support MS-DOS, Windows, OS/2, and other platforms' applications. This chapter can be especially illuminating for those considering porting their application to NT. Reading chapter 5 was like finding out how the magician performs his or her tricks. I found the information in chapter 5 to be new and interesting.
Chapter 6 describes the virtual memory system. NT supports all the virtual memory features you would expect such as paged and shared memory. One of the interesting considerations in the design of NT memory management is multiprocessor support. However, this chapter does not go into great detail on this subject.
Chapter 7 describes the NT kernel, the lowest level of software within NT. This chapter describes how NT handles interrupts and exceptions. The concepts in this chapter are fairly standard operating system concepts. Unlike MS-DOS, the direct hardware interrupts are off limits to developers. Chapter 7 explains why developers cannot directly access interrupts and how NT protects interrupts.
Chapter 8 describes NT's I/O subsystem. This description includes information on user-supplied device drivers. Since the book is only an architectural overview, this chapter does not explain all the details of how to write device drivers for NT, but chapter 8 helps device-driver writers understand what device drivers can do in the NT environment.
Chapter 9 addresses networking issues and features. Unlike MS-DOS or Windows, NT supports sophisticated networking. Some of the features discussed in this chapter include servers, drivers, and remote procedure calls.
Unfortunately, one of the NT aspects this book does not cover is the different flavors of NT. The book presents NT as one monolithic operating system. However, Microsoft appears to be offering scaled down versions of NT with different feature sets. Custer also notes that not all features described in the book will be in the first release of NT. This information appears to be left out of the book so that the book could be published in a timely manner. While I would have liked to know what aspects of the operating system described in the book would be in the product I purchase from Microsoft, I was delighted to get timely information about NT.
Conclusion
Prior to purchasing Inside Windows NT, I was skeptical that Microsoft could put together a real operating system. However Custer's book has persuaded me to think otherwise. I am now looking forward to getting my first copy of NT. Custer presents the information in an organized way and with sufficient depth so that readers can understand what NT is and how they might use it. Custer's writing style is easy to read and understand, even when she explains reasonably complex concepts.Inside Windows NT contains pertinent information for both operating system students and application developers. This book is a good introduction to NT for developers. I also recommend this book for those selecting their next operating system.
Title: Inside Windows NT
Author: Helen Custer
Publisher: Microsoft Press
1-800-MSPRESS
Price: $24.95
ISBN: 1-55615-481-X