This question maybe a bit historical, but we didn’t have Superuser at the time.
Around 2000 when I was starting my Computer science degree, a subject was Operating systems. The teacher asked us to list a few OS. I said Windows 95.
I was immediately shot down. Windows 95 wasn’t on OS, as it used DOS to boot up. The actual OS was DOS, Win 95 was just a graphical wrapper around it.
I pointed that all trade magazines called Win95 an OS, but was told that they were run by laymen, and as a professional, I should know better. DOS was the only OS from Microsoft, at least till Win2K came out later that year.
So 12 years on, I’m still not sure. Could Win 95 be considered an OS?
I would say yes. First and foremost, windows 95 was a 32 bit operating system, which allowed pre-emptive multitasking (lets contrast this to the 16 bit MS dos) – dos was merely used as a way to bootstrap the OS, and used for some dos related functions (NT replaced it with the NTVDM). It had its own drivers (for example for networking, and mouse) and to an extent memory management. It handled disk and FS functionality. I’d probably compare this with OS/2 which also handled dos type things, and had its own API.
Windows 9x was also tied to specific versions of dos, as I recall, unlike windows 3.11. I’d argue that ‘dos’ here is a subsystem of windows rather than vice versa.
It’s definitely an OS.
I’d argue it is on the basis that there are a set of defined things that an ‘operating system’ performs, and Windows 95 was responsible for all of them regardless of DOS.
One of the jobs of an OS is to abstract out hardware interaction to common APIs so that applications do not need hardware-specific support.
Virtual Device Drivers (VxDs) where not sat within the 16-bit DOS environment, they were strictly 32-bit code operating within the Windows kernel under the HAL.
A few operations such as basic VGA, Hard disk, Keyboard and serial port access fell in the realm of the BIOS using interrupts, but DOS wasn’t particularly involved.
Loading and executing programs
Windows was responsible for loading the program from the hard disk into RAM and beginning its execution with the exception of legacy DOS applications.
Scheduling and process management
DOS had no multitasking to speak of, Windows 95 supported preemptive multitasking and multithreading.
Windows allowed the use of swap file to allow applications to use more memory in their local address space than actually existed as physically available memory. DOS did not have such a capability.
I’ve kept this a tad light on details, but the idea is there. Windows did all the things an ‘Operating System’ does and didn’t require DOS in order to do it except as a kind of pre-execution environment.
Back in the nineties, Microsoft marketed Windows 95 as an operating system. If that’s not the most important reference, I don’t know what else is.
The Most Compatible Operating System – Windows 95 gives you the flexibility to use the latest 32-bit applications, as well as your existing applications.
See for yourself on the Wayback Machine:
Of course, it always depends on what an “operating system” is defined as for you.
Your question “was it an O/S” can’t be answered without a definition of “Operating System”. If you use the Wikipedia entry as a definition, we have to answer “YES, Windows 95 is an operating system”.
MS/DOS is a boot loader for Windows 3.x and Windows 95.
Even Windows 3.x is a operating system. It has device drivers for the access of hardware. It provides services for inter-application-communication, memory management, timers and so on. With the 386 Enhanced Mode it can host 16 and 32 bit applications.
You may argue that Windows95 is not a real multi-tasking-OS. But that was not your teachers question.
You can just grab some function to handle some messages in a loop and some ISRs and you have a real operating system. It’s not necessary to have memory management, tasks or processes at all. Don’t compare apples and oranges, but they are all fruits.