Jump to content

Windows 9x: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Zx-man (talk | contribs)
No edit summary
Line 62: Line 62:


===c:\con\con===
===c:\con\con===
One of the most popular and most circulated bugs in Windows 9x 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 figuratively literally "fry" itself. This can also be achieved by entering "c:\nul\nul" (without quotes) into the address bar.
One of the most popular and most circulated bugs in Windows 9x is the [[Concon|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 [[BSOD|crash]]. This can also be achieved by entering "c:\nul\nul" (without quotes) into the address bar.<ref>http://seclists.org/bugtraq/2000/Mar/0086.html</ref>


===Zero-page overwrite===
===Zero-page overwrite===

Revision as of 12:13, 17 August 2007

Template:Mergesection

Windows "9x"
File:Am windows95 desktop.png
Screenshot of Windows 95, the first version of Windows in the 9x series
DeveloperMicrosoft
Working stateUnsupported
Source modelClosed source
Kernel typeMonolithic kernel
Default
user interface
Graphical User Interface
LicenseMS-EULA

Windows 9x is a term used to describe the DOS-based Microsoft Windows operating systems, Windows 95, Windows 98, and often also Windows Me,[1] which were produced in the 1990s and 2000. All these Windows releases have internal versions numbers in the 4.x series.

Overview

Similar to Windows 3.x, the Windows 9x operating systems require the MS-DOS kernel (IO.SYS) and memory manager (HIMEM.SYS) in order to boot up. Then 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 "BootGUI" is set to 1 in MSDOS.SYS. During this process, 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 enhanced 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).

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. 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 file systems provide no access control lists like NTFS.[2]

Most of the feature set 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. 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 newer releases also the WDM Driver Manager (NTKERN). As 32-bit OS Virtual Memory Space is 4 GiB, divided fixed, lower 2 GiB for application 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. The registry eliminates the need of files such as Autoexec.bat, Config.sys, Win.ini, System.ini and other files with an .INI extension. Hardware-specific settings are also stored in the registry, and many device drivers use the registry to load configuration data.

The registry consists of two files, User.dat and System.dat.

Virtual Machine Manager

The Virtual Machine Manager (VMM) is one of the core components of Windows 9x. VMM create virtual machine environments for system processes and Windows applications. 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).[3]

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.

Limitations

Windows 9x has some limitations, compared to Windows NT:

  • Windows 9x cannot take advantage of dual-core CPUs or symmetric multiprocessing.
  • 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.
    • A third-party memory manager, Helix Software’s Hurricane, provided an elegant solution to this limitation (each running application was given its own heaps, which, for inactive [e.g. minimized] programs, were swappable into XMS [above the 1MB mark] memory), but Helix was bought out and the program was discontinued.
  • Alpha compositing and therefore transparency effects, such as fade effects in menus, are not supported.
  • Maximum natively supported hard drive size is 137 GB.
  • Window 9x does not natively support NTFS, limiting file sizes to 4 GB (FAT32) or 2 GB (FAT16).
  • Some Windows software only runs on Windows NT.
    • Conversely, some software or features of software, notably those depending on .VxD drivers, or which otherwise needs direct access to hardware (mostly utilities), won’t work under Windows NT and up.
  • Perhaps the most serious limitation regarding security is that Windows 9x treats all users as equal, and has no Administrator vs. regular User distinction, nor levels of privileges. Any user can write to any file or Windows Registry key. Software (including certain major business applications) developed for Windows 9x for this reason often required Administrator privileges to run (not just install) under Windows NT (so that they could continue to modify files and Registry keys that would normally be protected), thus forcing the users to be logged in as Administrator at all times, vastly increasing their vulnerability to malware attacks (the malware would inherit the full administrative privileges, enormously increasing the damage they could do).
    • Windows Vista finally addressed this problem by effectively tricking such legacy programs that they were running as Administrator even when they weren't. Each such legacy program has its own fake copy of the Registry and system files that it can modify as it sees fit when running under Vista, without affecting the real Registry and system files. As far as the application is concerned, the fake ones are the real ones.

Bugs

Windows 9x was shipped with several bugs, most have been proven to be true.

c:\con\con

One of the most popular and most circulated bugs in Windows 9x 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.[4]

Zero-page overwrite

This bug is achieved in a console window (an MS-DOS window) at the prompt of the "debug" program (can be accessed by typing "debug" without quotes at the MS-DOS prompt). This bug overwrites the "zero-page," which contains the interrupt table (including IRQ vectors). If anything overwrites it, the processor will jump to the memory location ffff:ffff, which does not contain any sensible code, rendering Windows 9x unrecoverable.[5]

Accidental Boot

This bug causes Windows 9x to attempt to boot while the operating system is still running. By opening the "debug" (once again, without the quotes) in an MS-DOS window, and telling it to jump to address F000:FFF0. This memory point contains the boot call, which produces the result of Windows attempting to boot while already running, sometimes crashing Windows.

Releases

The following Windows 9x/Me versions were released:[6]

  • 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 (for Windows Me)

References

  1. ^ 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.
  2. ^ FAT32 or NTFS: Making the Choice - Theeldergeek.com
  3. ^ Function of the Windows 32-Bit Message Server - Microsoft Help and Support
  4. ^ http://seclists.org/bugtraq/2000/Mar/0086.html
  5. ^ Everything2.com. "The quickest way to crash Windows 9x". Retrieved 2007-07-08.{{cite web}}: CS1 maint: numeric names: authors list (link)
  6. ^ How to Determine the Version of Windows 95/98/Me in Use