Windows 9x
File:Am windows95 desktop.png | |
Developer | Microsoft |
---|---|
Working state | Unsupported |
Source model | Closed source |
Kernel type | Monolithic kernel |
Default user interface | Graphical User Interface |
License | MS-EULA |
Windows 9x is the family of Microsoft Windows operating systems that comprises the 32-bit, DOS-based Windows versions: Windows 95, Windows 98, and often also Windows Me,[1] which were produced in the 1990s and 2000. All these Windows releases have internal version numbers in the 4.x series.
Overview
Similar to Windows 3.x, the Windows 9x operating systems require the MS-DOS kernel (IO.SYS) to boot. In addition, the MS-DOS memory manager (HIMEM.SYS) is required when running in real-mode (MS-DOS mode, without the Windows GUI). WIN.COM is executed to launch the graphical user interface. Unlike Windows 3.x, Windows 9x's WIN.COM is loaded automatically by the system, if the "BootGUI" parameter is set to 1 in MSDOS.SYS. During this process, the CPU is switched from real mode to protected mode, and several virtual device drivers (VxDs) are loaded. These VxDs allow Windows 9x to interact with hardware resources directly as well as providing several low-level functionalities such as 32-bit disk access and memory management.
Windows 9x consists of both 32-bit and 16-bit code. The Win32 API is entirely 32-bit, but DOS-based components, such as the MS-DOS kernel and many of its device drivers and external commands are 16-bit. Additionally, some of the programs that ship with the operating system, such as ScanDisk and Disk Defragmenter, come in two versions: 16-bit (e.g. scandisk.exe) and 32-bit (e.g. scandskw.exe).
Microsoft explains the following:[2]
- "Some functions, however, are handled by MS-DOS code, although the code itself is running in virtual 8086 mode, not real mode. Functions implemented in this manner ensure backward compatibility with existing real-mode software, such as the Novell NetWare client."
The DOS functions mentioned above are handled by the files DOSMGR.VXD and V86MMGR.VXD.
Windows 9x is designed as a single-user system. Thus, the security model is less effective than the one in Windows NT. One reason for this is the FAT file systems (including FAT12/16/32), which are the only ones that Windows 9x supports officially, although Windows NT also supports FAT and Windows 9x can be extended to read and write NTFS volumes using third-party Installable File System drivers. FAT systems have very limited security; every user that has access to a FAT drive also has access to all files on that drive. The FAT file systems provide no access control lists and file-system level encryption like NTFS.[3]
Most of the feature set and compatibility of the Windows 9x line of operating systems was merged with Windows NT with the release of Windows XP, which was the successor to both Windows 2000 and Windows Me.
Architecture
The user-mode parts of Windows 9x consists of three subsystems: the Win16 subsystem, the Win32 subsystem and MS-DOS. [4] The GDI, which is a part of the Win32 and Win16 subsystems, is also a module that is loaded in user mode, unlike Windows NT where the GDI is loaded in kernel mode. The kernel-mode parts consists of the Virtual Machine Manager (VMM), the Installable File System Manager (IFSHLP), the Configuration Manager, and in Windows 98 and later, also the WDM Driver Manager (NTKERN) [5]. As a 32-bit operating system, virtual memory space is 4 GiB, divided fixed, lower 2 GiB for applications and upper 2 GiB for kernel per process.
Registry
Like Windows NT, Windows 9x stores user-specific and configuration-specific settings in a large information database called the Windows registry. Hardware-specific settings are also stored in the registry, and many device drivers use the registry to load configuration data. Previous versions of Windows used files such as AUTOEXEC.BAT, CONFIG.SYS, WIN.INI, SYSTEM.INI and other files with an .INI extension to maintain configuration settings. As Windows became more complex and incorporated more features, .INI files became too unwieldy for the limitations of the then-current FAT filesystem. Backwards-compatibility with .INI files was maintained until Windows XP succeeded the 9x and NT lines.
The registry consists of two files, User.dat and System.dat. In Windows Me, Classes.dat was added.
Virtual Machine Manager
The Virtual Machine Manager (VMM) is one of the core components of Windows 9x. The VMM creates virtual MS-DOS environments for system processes and Windows applications that still need to run in MS-DOS mode. The VMM is the replacement for Win386 in Windows 3.x, and the file vmm32.vxd is a monolithic file which contains many basic VxDs that are needed for booting Windows.
Device drivers
Device drivers in Windows 9x can be virtual device drivers or (starting with Windows 98) WDM drivers. VxDs usually have the filename extensions .vxd or .386 and WDM compatible drivers usually use the extension .sys. The 32-bit VxD message server (msgsrv32) is a program that is able to load virtual device drivers (VxDs) at startup and then handle communication with the drivers. Additionally, the message server performs several background functions, including loading the Windows shell (such as Explorer.exe or Progman.exe).[6]
Another type of device drivers are .DRV drivers. These drivers are loaded in user-mode, and are commonly used to control devices such as multimedia devices. To provide access to these devices, a dynamic link library is required (such as MMSYSTEM.DLL).
File management
Like Windows for Workgroups 3.11, Windows 9x provides support for 32-bit file access, and unlike Windows 3.x, Windows 9x has support for the VFAT file system, allowing file names with a maximum of 255 character instead of having 8.3 filenames.
Advantages and disadvantages
This article needs additional citations for verification. (November 2007) |
Advantages
Windows 9x is a hybrid 16/32-bit operating system. It typically has lower system requirements than contemporary Windows NT versions.
The graphical user interface (GUI) runs on a DOS-based layer. Through Windows 9x's memory managers and other post-DOS improvements, the overall system performance and functionality is improved.
Windows 95 and Windows 98 also offer regressive support for DOS applications in the form of being able to boot into a native "DOS Mode" (MS-DOS can be booted without booting Windows, not putting the CPU in protected mode). This differs from the emulation used in Windows NT-based operating systems. Some very old applications or hardware require "DOS Mode". Having a command line mode outside of the GUI also offers the ability to fix certain system errors without entering the GUI. For example, if a virus is active in GUI mode it can often be safely removed in DOS mode, by deleting its files, which are usually locked while infected in Windows. Similarly, corrupted registry files, system files or boot files can be restored from the command line. Windows 95 and Windows 98 can be started from DOS Mode by typing 'WIN' <enter> at the command prompt.
Windows 9x can run some software that does not run on Windows NT.
Disadvantages
Software Protection
Windows 9x has never been as stable as common users required, for many reasons. Often the software developers of drivers and applications had insufficient experience with creating programs for the 'new' system, thus causing many errors which have been generally described as "system errors" by users, even if the error is not caused by parts of Windows or DOS. Windows 9x can gain high stability, by using high quality device drivers and carefully selecting application programs.
User access
Some operating systems that were available at the same time as Windows 9x are either multi-user or have multiple user accounts with different access privileges, which allows important system files (such as the kernel image) to be immutable under most user accounts. In contrast, while Windows 98 offers the option of having profiles for multiple users, it has no concept of access privileges, making it roughly equivalent to a single-user, single-account operating system; this means that all processes can modify all files on the system that aren't open, in addition to being able to modify the boot sector and perform other low-level hard drive modifications. This enables viruses and other clandestinely installed software to integrate themselves with the operating system in a way that is difficult for ordinary users to detect or undo. The profile support in Windows is meant for convenience only; the system can be accessed by pressing "Cancel" at login, even if all profiles have a password.
Support for software and hardware
There is no native support for SATA drives, multi-threading, symmetric multiprocessing or multi-core processors, and most hardware manufacturers do not ship drivers for Windows 98 SE any more, so current high-end graphics cards and peripherals may not work properly or at all.
System resources, which refer to two blocks of conventional (within the first 1MB [640kB for practical purposes] of RAM, also known as real-mode) memory (the user heap and the GDI heap), are each limited to 64 KB.
Alpha compositing and therefore transparency effects, such as fade effects in menus, are not supported.
Windows 9x does not natively support NTFS.
Design problems
Windows 9x has a number of bugs and design deficiencies that have contributed to its instability when compared with Windows NT and other operating systems.
c:\con\con
One of the most popular and most circulated bugs in Windows 95 and Windows 98 is the c:\con\con bug, which can only be achieved by using one of the File Allocation Table file systems. By entering "c:\con\con" (without the quotes) into the address bar of Windows Explorer, there is a conflict between Windows and the file system, causing the computer to crash. This can also be achieved by entering "c:\nul\nul" (without quotes) into the address bar.[7]
Microsoft released a patch to remove the bug in 1999. Windows Me does not have this bug. [8]
Unprotected region of memory
Although Windows 9x features memory protection, it does not protect the first megabyte of memory from userland applications. This area of memory contains code critical to the functioning of the operating system, and by writing into this area of memory an application can crash or freeze the operating system. This was a source of instability as faulty applications could by accident write into this region and with that halt the operating system. [citation needed]
Drivers share address space with the kernel
Drivers written for Windows 9x/Windows Me are loaded into the same address space as the kernel. This means that drivers can by accident or design overwrite critical sections of the operating system. Doing this can lead to system crashes, freezes and disk corruption. Faulty operating system drivers were a source of instability for the operating system. Windows NT too is susceptible to this issue, however, with the introduction of User-Mode Driver Framework for Windows NT-based operating systems, this issue is addressed.
Timeout code depended on the execution speed
Windows 95 could fail to boot on systems faster than 350 MHz. The reason was due to a timeout loop that depended on the execution speed of the processor. The timeout loop was used for dealing with hardware devices incapable of keeping up with the full speed of the system, such as hard drives. If a processor executed the loop too fast the slow device would fail to function properly and possibly prevent the operating system from booting.
A patch for this issue can be downloaded from Microsoft, but users must be able to boot the OS to install it. [9]
Disk corruption on shutdown
When Windows 95/98/Me shut down, they use a timeout loop to give hard drives time to commit their write back caches to their platters. On fast CPUs or with disks fitted with large write back caches this timeout can run out before the disk has committed its write back cache, which can lead to disk corruption and loss of data.
A patch for this issue can be downloaded from Microsoft. [10]
Out of memory with large amount of RAM installed
The Windows 9x/Me VCache is limited to a size of 800 MB. This 800 MB includes system and video memory, and on systems where the combined video and system memory exceeds 800 megabytes the operating system may fail to boot with a 'out of memory' error.
There is a workaround for this issue.[11]
Limited system resources
Windows 9x/Me set aside two blocks of 64 KB memory regions for GDI and heap resources. By running multiple applications, applications with numerous GDI elements or by running applications over a long span of time, one could exhaust these memory areas. If this happened one would be unable to launch applications or open further windows in already running applications. [12]
Crash after 49.7 days of uptime
Due to a timing error, Windows may crash after continuously running for about a month and a half. This affected unpatched versions of Windows 95 and Windows 98.[13]
Altering critical files
Users and software can render the operating system unable to function by deleting or overwriting important system files from the hard disk. Users and software are also free to change configuration files in such a way that the operating system is unable to boot or properly function.
Installation software often replaced and deleted system files without properly checking if the file was still in use or of a newer version. This created a phenomenon often referred to as DLL hell.
Windows Me introduced System File Protection and System Restore to handle common problems caused by this issue.
Releases
The following Windows 9x/Me versions were released:[14]
- Windows 95 original release (version 4.00.950)
- Windows 95 OEM Service Release 1 (OSR1) (version 4.00.950A)
- Windows 95 OEM Service Release 2 (OSR2) (version 4.00.950B)
- Windows 95 OEM Service Release 2.1 (OSR 2.1) (version 4.00.950B)
- Windows 95 OEM Service Release 2.5 (OSR 2.5) (version 4.00.950C)
- Windows 98 Standard Edition (version 4.10.1998)
- Windows 98 Second Edition (version 4.10.2222)
- Windows Millennium Edition (Me) (version 4.90.3000)
Plus! packs
- Microsoft Plus! for Windows 95
- Microsoft Plus! for Windows 98
- Microsoft Plus! Game Pack: Cards and Puzzles (released alongside Windows Me)
Criticism
Windows 9x is often characterized as being unstable—it is widely panned for its instability, displaying the "Blue Screen of Death", when abruptly terminating an application—usually due to malfunctioning drivers or hardware.
References
- ^ In common usage, the term "Windows 9x" itself may or may not include Windows Me. Another term "Windows 9x/Me" is often used to explicitly include Windows Me. In the main part of this article they will be treated as synonyms.
- ^ Windows 95 performance tuning: The basics
- ^ FAT32 or NTFS: Making the choice - Theeldergeek.com
- ^ Windows 95 architecture components
- ^ Windows 98 architecture
- ^ Function of the Windows 32-Bit message server - Microsoft Help and Support
- ^ Bugtraq: con\con is a old thing (anyway is cool)
- ^ Fatal exception 0E with multiple MS-DOS device names in path
- ^ Difficulties using AMD K6-2 or Athlon CPU
- ^ ScanDisk runs even though Windows shut down correctly
- ^ Error messages with large amounts of RAM Installed"
- ^ Resource management under Microsoft Windows
- ^ "CNET - Windows may crash after 49.7 days"
- ^ How to determine the version of Windows 95/98/Me in use