Reader Otul Osan wants to know what the use case for C:\ WINDOWS\ WINSTART.BAT was, compared to C:\ AUTOEXEC.BAT and when exactly during system startup it launches.
In Windows 95, you could create a winstart.bat file in your Windows directory. During startup, the virtual machine manager initializes and creates the so-called “System virtual machine” (the “System VM”), which is the virtual machine that all Windows programs run in. But before running the user-mode kernel in that virtual machine, the virtual machine manager runs the winstart.bat batch file if it exists.
In pictures: First, we boot up MS-DOS and the command prompt. (Note: All diagrams omit lots of details not relevant to the discussion and are not to scale.)
Stuff (unused) MS-DOS
The box labeled “Stuff” is a catch-all for random things that go at low addresses, like the interrupt vector table and the BIOS data area.
Next, command.com runs autoexec.bat , which might install some TSRs.
Stuff TSR1 (unused) MS-DOS
And then Windows starts up and initializes the virtual machine manager. The system is now running in protected mode with a virtual machine running in v86 mode, and that virtual machine is initialized with whatever was running in real mode at the time the virtual machine manager took over.¹
v86 mode Stuff TSR1 (unused) MS-DOS ring 0: virtual machine manager
I crossed out MS-DOS because the virtual machine manager took over responsibility for the file system and shut off the real-mode file system in MS-DOS.
... continue reading