The Changing Boot Strategy

The boot and login strategy has changed significantly since the September 1997 release of Waterloo Polaris.

There have been some questions about how/why these changes are made, and when the machine is actually in protected mode.

Old Login Method

As many have noticed, the old style Watstar login could take a while between userid entry and Windows being usable. We basically used the traditional Watstar login which occurs after DOS starts but before Windows loads.

To make matters confusing, this is termed real-mode by some documentation. Since EMM386 is running, the machine is actually in VM86 mode which is a ring 3 mode of the protected mode capabilities of the Intel i386 and successor processors. The VM86 capabilities are used to remap memory so device drivers and buffer pools can be placed in convenient locations within the 20+ bit addressing capabilities (1MB+64kB of memory) the good old MS-DOS understands.

The real-mode term refers to the fact that MS-DOS is executing real-mode level instructions, not the actual mode of the CPU.

This mode made logins quite slow, partly because the next two big stages in the process toward running Windows were slow. We had to copy some files critical for using 95, and we had to wait as Windows95 loaded the 32 bit protected mode VxD's which replace DOS and which created the massive swap file for this session. So users were waiting for things which would be repeated identically no matter who logged on.

diagram

Fast Logins

When sufficient machines were moved to Waterloo Polaris, most machines were converted to the "fast" login method.

This newer method delays the user login prompt until all the necessary files are copied and Windows is already partly running. The major 32 bit subsystems are already complete: 32 bit DOS and long filenames are fully up and available, TCP/IP is running, and the swap file is already created.

The only thing not running is the GUI and its APIs, and Microsoft Networking and other services which cannot start until the GUI is up.

Since so much is already complete, the time from login prompt to usuable GUI should be in the order of 60 seconds.

One of the major difficulties of moving to this stage is that we have traditionally filled environment variables with parameters appropriate for users. This created a conflict with the Win95 start mechanism which takes an environment snapshot as the VxD's initialize. So we had to create a mechanism so we could insert the needed variables into the snapshot.

Another major effort was to keep things working. Users had to be able to log on using either the fast or slow method and feel few differences other than the time involved. Also, we wanted to keep support for legacy system features, such as how administrators could script the batch files that enhance their users' environment.

Win32 Login

The next major stage is to move the login prompt to where standalone Windows95 would show a GUI prompt which asks for a username. While this would only appear to save another 5 seconds off our current login time, it is a critical step.

Currently, Windows95 asks Waterloo Polaris for the userid and password which we fill in from the blanks. So if a user follows our instructions, they never see that prompt.

What is appealing about this stage is that the Win32 and TCP/IP services are all working, so we can direct the authentication and authorization requests to any appropriate server using the Win32 TCP/IP API.

The Win32 login method will be very similar to how we would support logins from post-95 technologies, like Windows NT.


Created: Sept 17, 1998 by Erick Engelke