What was the Windows 95 Build environment?

Discuss Windows 95, 98 and ME.
Post Reply
Shintaro1969
User avatar
Posts: 85
Joined: Sat Jan 01, 2022 10:23 am

What was the Windows 95 Build environment?

Post by Shintaro1969 »

Hi,

I was just wondering if anyone knew what OS was used when building Windows 95?

Was it Win 3.1 using the MS C Compiler? Or Win NT 3.5 Workstation with the MS C Compiler? Or even a different compiler?

Were they eventually compiling new Win 95 Beta's on a previous Beta? AKA "Eat your own dog food"?

Actually, the build process is of interest to me as well.

Did the individual devs compile local to their machines, for testing, then submit the changes to the Source Tree?

Cheers.
“Wyrd bið ful āræd. Fate is inexorable.”

Evo
Posts: 41
Joined: Sun Jul 16, 2023 9:49 am
Location: Saint-Petersburg, Russia

Re: What was the Windows 95 Build environment?

Post by Evo »

HI!
Windows 95 is compiling on Windows 3.1


Hyoenmadan86
Posts: 224
Joined: Fri Sep 07, 2012 6:45 pm

Re: What was the Windows 95 Build environment?

Post by Hyoenmadan86 »

Microsoft OSs have been always cross compiled from proper workstation OSs, as the compiler division developed their tools first for these operating environments.

MS-DOS development started in a DEC TOPS/20, and then transfered to Xenix when it became available. IBM did their part at some Intel custom platform. MSDOS on MSDOS compilation only came later, mostly for OEMs so they could assemble MS supplied object files along with their own small pieces of code to produce their own branded DOS disks for their custom hardware... But MS never used this path at home themselves.

Windows development started at Xenix, and then transferred to OS/2 when it became stable enough (OS/2 1.2 probably). Most early DOS tools supplied by MS to Windows developers have traces of their Xenix parent heritage. Chicago and NT development was mostly done in OS/2, and Windows 9x development was transferred to Windows NT promptly when it became available.

xelloss
User avatar
Donator
Posts: 390
Joined: Sun Aug 18, 2013 7:26 pm
Location: Edinburgh, Scotland

Re: What was the Windows 95 Build environment?

Post by xelloss »

Well, considering that the development of Windows 95 should have started around the time NT was released, I think we can conjecture that one of the first acts of the development was to port the build environment to NT. It would have made little sense to keep using OS/2 (which version?), though we know that OS/2 was used for some time to compile MS products. Xenix sounds like even more of a stretch, and MS-DOS was _not_ an option due to its limitations.

My guess:
- Xenix --> DOS, OS/2 1.x, Windows 1.x/2.x
- OS/2 1.x --> Windows 3.x, medium-large 16 bit Windows applications, maybe DOS starting with version 5.0
- NT --> Everything from Windows 95 onwards

I'm not sure what was used to build Windows NT 3.1. Actually I don't see a real alternative to OS/2, but who knows if Dave Cutler liked it enough...

Hyoenmadan86
Posts: 224
Joined: Fri Sep 07, 2012 6:45 pm

Re: What was the Windows 95 Build environment?

Post by Hyoenmadan86 »

xelloss wrote:
Tue Sep 12, 2023 7:41 pm
I'm not sure what was used to build Windows NT 3.1. Actually I don't see a real alternative to OS/2, but who knows if Dave Cutler liked it enough...
For Windows NT, early leaked compilers and toolset are mostly OS/2 executables. Is said Cutler and his team put "dogfeeding" (force developing in the platform being developed (Dave Plummer on his Yt channel said he was given with a MIPS Jazz workstation loaded with an NT build as developer machine, early in the development cycle, when NT "text mode" wasn't blue but gray).) as priority, but I dunno they could force the rest of teams, specially those in charge of non core components and Win32 on it. So most surely, Cutler team built their own development environment self contained in Windows NT when it got mature enough, but the rest of teams kept using OS/2 during all the NT development cycle. In the bright side, and unlike crude OS/2 first versions, Windows NT was solid enough since its release while using the approved MS HQL hardware (MIPS Jazz, Compaq Workstation stuff for x86, and later Alpha workstations), so everyone in Redmond most surely moved to Windows NT 3.1 soon after its release and that's how has been since then.

--
I doubt Chicago development cycle ocurring on Windows NT... A major chunk of it at least. OS/2 had facilities to make easier the development of the windows VMM (OS/2 VDM, the way how it works allows virtualization tricks the Windows NT one doesn't) and a full built in OS DPMI server to build and debug Kernel386 DPMI client and its core (User, Kernel/32, GDI). Also, is said Chicago team had certain internal "issues" and "different viewpoints" with NT Cutler team and there were certain level of "animosity" between leaders of both teams. The issues were important enough NT team had to port Chicago pieces to NT by themselves, with almost no help of Chicago team (probably that's why the NT "shell update" took so long to get done).

I actually wonder if there was an early build of Chicago with the VMM running inside an OS/2 DOS box (as Netware for OS/2 does, for example), or the Kernel386/USER/GDI graphical components running in an OS/2 window as a DPMI client application for testing and debugging purposes.

vbdasc
Posts: 317
Joined: Fri Apr 30, 2010 6:14 pm

Re: What was the Windows 95 Build environment?

Post by vbdasc »

Hyoenmadan86 wrote:
Tue Sep 12, 2023 6:10 pm
MS-DOS development started in a DEC TOPS/20, and then transfered to Xenix when it became available. IBM did their part at some Intel custom platform. MSDOS on MSDOS compilation only came later, mostly for OEMs so they could assemble MS supplied object files along with their own small pieces of code to produce their own branded DOS disks for their custom hardware... But MS never used this path at home themselves.
I can remember Tim Paterson (the DOS creator) writing somewhere that he originally wrote the DOS toolset on a CP/M machine with a Z80 CPU, and then, using his Z80-to-8086 source code translation technology, he migrated the toolset to his 8086 machines, when they became actually available, and for a period of time DOS development was self-hosted.

Also, there is some anecdotal saying that MS used a non-IBM compatible SCP MSDOS machine to build LINK.EXE, because that machine could access substantially more conventional memory than the 640Kb IBM PC memory limit.

xelloss
User avatar
Donator
Posts: 390
Joined: Sun Aug 18, 2013 7:26 pm
Location: Edinburgh, Scotland

Re: What was the Windows 95 Build environment?

Post by xelloss »

vbdasc wrote:
Wed Sep 13, 2023 8:40 am
I can remember Tim Paterson (the DOS creator) writing somewhere that he originally wrote the DOS toolset on a CP/M machine with a Z80 CPU, and then, using his Z80-to-8086 source code translation technology, he migrated the toolset to his 8086 machines, when they became actually available, and for a period of time DOS development was self-hosted.

Also, there is some anecdotal saying that MS used a non-IBM compatible SCP MSDOS machine to build LINK.EXE, because that machine could access substantially more conventional memory than the 640Kb IBM PC memory limit.
Paterson's DOS was indeed self-hosted through the assembler he wrote, which as far as I can tell it was the main development tool for DOS 1.x, though maybe SCP machines were better suited than IBM PCs (but did MS-DOS 1.x really need more than 640kb RAM to be built?).
Things likely changed with DOS 2.0.

Hyoenmadan86
Posts: 224
Joined: Fri Sep 07, 2012 6:45 pm

Re: What was the Windows 95 Build environment?

Post by Hyoenmadan86 »

xelloss wrote:
Wed Sep 13, 2023 10:04 am
I can tell it was the main development tool for DOS 1.x, though maybe SCP machines were better suited than IBM PCs (but did MS-DOS 1.x really need more than 640kb RAM to be built?).
The anecdote as I read was for the Linker. It may have been already bigger than the DOS kernel itself (which isn't a surprise, generally build tools are complex than the kernels them build (ask linux and gcc/llvm guys for example).

---
And yeah, I know SCP DOS was selfhosted, and most leaked history is about MS-DOS 1.00, but no one really knows what really happened after its release. MS is known for wanting always faster build times and self contained build environments. DOS itself grew pretty fast after, as IBM took on it and MS started to work seriously in the product. It makes sense they moved DOS development to TOPS after DOS1 release, as they say.

So far, and thanks to the leaks, is known latter DOS3, DOS4, 5 and 6 were done in Xenix, where they used their version control system based in CVS to keep track of the source. But the option to selfbuild was kept all the way. Ofc isn't the most convenient way as you can read in Os2museum and VirtuallyFun blog stories for example.

Post Reply