Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Windows 9x
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Design== ===Kernel=== {{Main|Architecture of Windows 9x}} Windows 9x is a series of [[Monolithic application|monolithic]] 16/32-bit operating systems. Like most operating systems, Windows 9x consists of [[kernel (operating system)|kernel space]] and [[Userland (computing)|user space]] memory. Although Windows 9x features some [[memory protection]], it does not protect the first megabyte of memory from [[Userland (computing)|userland]] applications for compatibility reasons. 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 (computing)|crash]] or [[Hang (computing)|freeze]] the operating system. This was a source of instability as faulty applications could accidentally write into this region, potentially corrupting important operating system memory, which usually resulted in some form of system error and halt.<ref>{{Cite web|url=http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/bottchat.mspx|title=Transcript: Chat with Ed Bott and Carl Siechert, Co-Authors of Microsoft Windows XP Inside Out|date=November 21, 2001|website=microsoft.com|publisher=[[Microsoft]]|archive-url=https://web.archive.org/web/20040918191218/http://www.microsoft.com/windowsxp/expertzone/chats/transcripts/bottchat.mspx|archive-date=September 18, 2004|access-date=April 20, 2019}}</ref> ====User mode==== The user-mode parts of Windows 9x consist of three subsystems: the Win16 subsystem, the Win32 subsystem and MS-DOS.<ref>{{Cite web|url=http://www.microsoft.com/technet/archive/win95/rk31_arc.mspx?mfr=true|title=Windows 95 Architecture Components|website=[[Microsoft Technet]]|publisher=[[Microsoft]]|archive-url=https://web.archive.org/web/20080207122429/http://www.microsoft.com/technet/archive/win95/rk31_arc.mspx?mfr=true|archive-date=February 7, 2008|access-date=April 20, 2019}}</ref> Windows 9x/Me set aside two blocks of 64 [[KiB]] memory regions for [[Graphics Device Interface|GDI]] and heap resources. By running multiple applications, applications with numerous GDI elements or by running applications over a long span of time, it could exhaust these memory areas. If free system resources dropped below 10%, Windows would become unstable and likely crash.<ref>{{Cite web|url=http://www.apptools.com/rants/resources.php|title=Resource Management Under Microsoft Windows|last=White|first=Gary|website=www.apptools.com|access-date=April 20, 2019}}</ref> ====Kernel mode==== The kernel mode parts consist of the Virtual Machine Manager (VMM), the Installable File System Manager ([[IFSHLP.SYS|IFSHLP]]), the Configuration Manager, and in Windows 98 and later, the [[Windows Driver Model|WDM]] Driver Manager (NTKERN).<ref>{{Cite web|url=http://www.microsoft.com/technet/archive/win98/reskit/part6/wrkc28.mspx?mfr=true|title=Chapter 28 - Windows 98 Architecture|website=[[Microsoft Technet]]|publisher=[[Microsoft]]|archive-url=https://web.archive.org/web/20071221222004/http://www.microsoft.com/technet/archive/win98/reskit/part6/wrkc28.mspx?mfr=true|archive-date=December 21, 2007|access-date=April 20, 2019}}</ref> As a 32-bit operating system, virtual memory space is 4 [[GiB]], divided into a lower 2 GiB for applications and an 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 <code>[[AUTOEXEC.BAT]]</code>, <code>[[CONFIG.SYS]]</code>, <code>[[WIN.INI]]</code>, <code>[[SYSTEM.INI]]</code> and other files with an <code>.INI</code> extension to maintain configuration settings. As Windows became more complex and incorporated more features, <code>.INI</code> files became too unwieldy for the limitations of the then-current FAT filesystem. Backwards-compatibility with <code>.INI</code> files was maintained until Windows XP succeeded the 9x and NT lines. Although Microsoft discourages using .INI files in favor of Registry entries, a large number of applications (particularly 16-bit Windows-based applications) still use .INI files. Windows 9x supports .INI files solely for compatibility with those applications and related tools (such as setup programs). The AUTOEXEC.BAT and CONFIG.SYS files also still exist for compatibility with real-mode system components and to allow users to change certain default system settings such as the PATH environment variable. 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 the [[32-bit]] [[protected mode]] kernel at the core of Windows 9x. Its primary responsibility is to create, run, monitor and terminate [[virtual machine]]s. The VMM provides services that manage memory, processes, interrupts and protection faults. The VMM works with virtual devices (loadable kernel modules, which consist mostly of 32-bit ring 0 or kernel mode code, but may include other types of code, such as a 16-bit real mode initialisation segment) to allow those virtual devices to intercept interrupts and faults to control the access that an application has to hardware devices and installed software. Both the VMM and virtual device drivers run in a single, 32-bit, flat model address space at privilege level 0 (also called ring 0). The VMM provides multi-threaded, [[preemptive multitasking]]. It runs multiple applications simultaneously by sharing CPU ([[central processing unit]]) time between the threads in which the applications and virtual machines run. The VMM is also responsible for creating MS-DOS environments for system processes and Windows applications that still need to run in MS-DOS mode. It is the replacement for vmm.386 in Windows 3.x, and the file vmm32.vxd is a compressed archive containing most of the core VxD, including VMM.vxd itself and ifsmgr.vxd (which facilitates file system access without the need to call the real mode file system code of the DOS kernel). ===Software support=== ==== Unicode ==== Windows 9x only officially supports [[Windows code page#ANSI code page|ANSI]] encoding, however partial support for [[Unicode]] encoding be installed on Windows 9x through the Microsoft Layer for Unicode.<ref>{{cite web | url=https://learn.microsoft.com/en-us/archive/msdn-magazine/2001/october/mslu-develop-unicode-applications-for-windows-9x-platforms-with-the-microsoft-layer-for-unicode |date=October 24, 2019 |title=MSLU: Develop Unicode Applications for Windows 9x Platforms with the Microsoft Layer for Unicode |series=[[MSDN Magazine]] |website=Microsoft}}</ref> ====File systems==== Windows 9x does not natively support [[NTFS]] or [[High Performance File System|HPFS]]; however, there are third-party solutions available for Windows 9x that allows read-only access to NTFS volumes. Early versions of Windows 95 did not support [[FAT32]]. Like [[Windows for Workgroups 3.11]], Windows 9x provides support for [[32-bit file access]] based on [[IFSHLP.SYS]]. Unlike Windows 3.x, Windows 9x has support for the [[VFAT]] file system, allowing [[long filename|file names]] with a maximum of 255 characters instead of having [[8.3 filename]]s. ====Event logging and tracing==== Windows 9x has no support for [[Tracing (software)|event logging and tracing]] or [[Windows Error Reporting|error reporting]] that the Windows NT family of operating systems has, although software like Norton CrashGuard can be used to achieve similar capabilities on Windows 9x. ====Security==== Windows 9x is designed as a single-user system. Thus, the security model is much less effective than the one in Windows NT. One reason for this is the [[File Allocation Table|FAT]] [[file system]]s (including FAT12/FAT16/FAT32), which are the only ones that Windows 9x supports officially, though Windows NT also supports FAT12 and FAT16 (but not FAT32; which wouldn’t be supported until Windows 2000) 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 list]]s and [[Encrypting File System|file-system level encryption]] like [[NTFS]].<ref>{{Cite web|url=http://www.theeldergeek.com/ntfs_or_fat32_file_system.htm|title=FAT32 or NTFS: Making the Choice|website=The Elder Geek|archive-url=https://archive.today/20120527005344/http://www.theeldergeek.com/ntfs_or_fat32_file_system.htm|archive-date=May 27, 2012|url-status=dead|access-date=April 22, 2019}}</ref> 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 95 and later operating systems offer the option of having profiles for multiple users, they have no concept of access privileges, making them roughly equivalent to a single-user, single-account operating system; this means that all [[Process (computing)|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 the Windows 9x family is meant for convenience only; unless some registry keys are modified, the system can be accessed by pressing "Cancel" at login, even if all profiles have a password. Windows 95's default login dialog box also allows new user profiles to be created without having to log in first. 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. This phenomenon is not exclusive to Windows 9x; many other operating systems are also susceptible to these vulnerabilities, either by viruses, malware or by the user’s consent. 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. ====Network sharing==== Windows 9x offers share-level access control security for file and printer sharing as well as user-level access control if a Windows NT-based operating system is available on the network.<ref>{{Cite web|url=https://docs.microsoft.com/en-us/previous-versions/cc768179(v%3dtechnet.10)|title=Chapter 9 - Security|last=Jin|first=Allen|date=February 20, 2014|website=Microsoft Docs|publisher=[[Microsoft]]|language=en-us|access-date=April 21, 2019}}</ref> In contrast, Windows NT-based operating systems offer only user-level access control but integrated with the operating system's own user account security mechanism. ===Hardware support=== ====Drivers==== [[Device driver]]s in Windows 9x can be virtual device drivers or (starting with Windows 98) WDM drivers. VxDs usually have the [[filename extension]] <code>.vxd</code> or <code>.386</code>, whereas WDM compatible drivers usually use the extension <code>[[.sys]]</code>. 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]]).<ref>{{Cite web|url=http://support.microsoft.com/?kbid=138708|title=Function of the Windows 32-Bit Message Server|website=Microsoft Help and Support|archive-url=https://web.archive.org/web/20070107132442/http://support.microsoft.com/?kbid=138708|archive-date=January 7, 2007|access-date=April 21, 2019}}</ref> Another type of device drivers are <code>.DRV</code> drivers. These drivers are [[New Executable]] format and 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). Windows 9x retains backwards compatibility with many drivers made for Windows 3.x and MS-DOS. Using MS-DOS drivers can limit performance and stability due to their use of conventional memory and need to run in real mode which requires the CPU to switch in and out of protected mode. Drivers written for Windows 9x 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. Other [[Monolithic kernel|monolithic]] and [[hybrid kernel]]s, like [[Linux kernel|Linux]] and [[Architecture of Windows NT|Windows NT]], are also susceptible to malfunctioning drivers impeding the kernel's operation. 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. Microsoft has repeatedly redesigned the Windows Driver architecture since the release of Windows 95 as a result. ====CPU and bus technologies==== Windows 9x has no native support for [[hyper-threading]], [[Data Execution Prevention]], [[symmetric multiprocessing]], [[Advanced Programmable Interrupt Controller|APIC]], or [[Multi-core (computing)|multi-core]] processors. Windows 9x has no native support for [[Serial ATA|SATA]] host bus adapters (and neither do Windows 2000 nor Windows XP for that matter), or [[USB]] drives (except for Windows Me). There are, however, many [[SATA#SATA revision 1.0 (1.5 Gbit/s, 150 MB/s, Serial ATA-150)|SATA-I]] controllers for which Windows 98/Me drivers exist (and indeed Windows 2000 and Windows XP also provided SATA support via third-party drivers as well), and USB mass storage support has been added to Windows 95 OSR2 and Windows 98 through third party drivers.<ref>{{Cite web|url=https://msfn.org/board/topic/43605-maximus-decim-native-usb-drivers/|title=Maximus-Decim Native USB Drivers|date=April 11, 2005|website=MSFN|access-date=April 20, 2019}}</ref><ref>{{Cite web|url=http://www.msfn.org/board/topic/172402-xusbsupp-extended-usb-supplement-for-windows-95-osr2/|title=XUSBSUPP - eXtended USB Supplement for Windows 95 OSR2|date=August 3, 2014|website=MSFN|archive-url=https://web.archive.org/web/20141024124119/http://www.msfn.org/board/topic/172402-xusbsupp-extended-usb-supplement-for-windows-95-osr2/|archive-date=October 24, 2014|access-date=April 20, 2019}}</ref> Hardware driver support for Windows 98/Me began to decline in 2005, most notably with motherboard [[chipset]]s and [[video card]]s. Early versions of Windows 95 had no support for [[USB]] or [[Accelerated Graphics Port|AGP]] acceleration (including lack of [[Infrared]] support for Windows 95 RTM). Windows 95 had preliminary support for [[ATAPI]] CD-ROMs, albeit with buggy ATAPI implementation. Windows 95 prior to OSR2 also had buggy support for processors implementing [[MMX (instruction set)|MMX]] as well as processors based on the [[P6 (microarchitecture)|P6 microarchitecture]]. ===MS-DOS=== [[Windows 95]] was able to reduce the role of [[MS-DOS]] in Windows much further than had been done in [[Windows 3.1x]] and earlier. According to Microsoft developer Raymond Chen, MS-DOS served two purposes in Windows 95: as the boot loader, and as the 16-bit legacy device driver layer.<ref name="chen">{{cite web|url=https://devblogs.microsoft.com/oldnewthing/20071224-00/?p=24063|title=What was the role of MS-DOS in Windows 95?|author=Chen|first=Raymond|author-link=Raymond Chen (Microsoft)|date=December 24, 2007|website=The Old New Thing|publisher=[[Microsoft]]|access-date=October 6, 2019}}</ref> When Windows 95 started up, MS-DOS loaded, processed [[CONFIG.SYS]], launched [[COMMAND.COM]], ran [[AUTOEXEC.BAT]] and finally ran [[WIN.COM]]. The WIN.COM program used MS-DOS to load the virtual machine manager, read SYSTEM.INI, load the virtual device drivers, and then turn off any running copies of [[EMM386]] and switch into protected mode. Once in protected mode, the virtual device drivers ([[VxD]]s) transferred all state information from MS-DOS to the 32-bit file system manager, and then shut off MS-DOS. These VxDs allow Windows 9x to interact with hardware resources directly, as providing low-level functionalities such as [[32-bit disk access]] and memory management. All future file system operations would get routed to the 32-bit file system manager.<ref name="chen" /> In [[Windows Me]], win.com was no longer executed during the startup process; instead it went directly to execute VMM32.VXD from IO.SYS. The second role of MS-DOS (as the 16-bit legacy device driver layer) was as a backward compatibility tool for running DOS programs in Windows. Many MS-DOS programs and device drivers interacted with DOS in a low-level way, for example, by patching low-level BIOS interrupts such as [[INT 13|int 13h]], the low-level disk I/O interrupt. When a program issued an int 21h call to access MS-DOS, the call would go first to the 32-bit file system manager, which would attempt to detect this sort of patching. If it detects that the program has tried to hook into DOS, it will jump back into the 16-bit code to let the hook run. A 16-bit driver called IFSMGR.SYS would previously have been loaded by CONFIG.SYS, the job of which was to hook MS-DOS first before the other drivers and programs got a chance, then jump from 16-bit code back into 32-bit code, when the DOS program had finished, to let the 32-bit file system manager continue its work.<ref name="chen" /> According to Windows developer [[Raymond Chen (Microsoft)|Raymond Chen]], "''MS-DOS was just an extremely elaborate decoy. Any 16-bit drivers and programs would patch or hook what they thought was the real MS-DOS, but which was in reality just a decoy. If the 32-bit file system manager detected that somebody bought the decoy, it told the decoy to quack.''"<ref name="chen" /> ====MS-DOS Virtualization==== Windows 9x can run MS-DOS applications within itself using a method called "Virtualization", where an application is run on a [[Virtual DOS machine]]. ====MS-DOS Mode==== Windows 95 and Windows 98 also offer backwards compatibility for DOS applications in the form of being able to boot into a native "DOS Mode" (MS-DOS can be booted without booting Windows, but not putting the CPU in protected mode). Through Windows 9x's memory managers and other post-DOS improvements, the overall system performance and functionality is improved. Some old applications or games may not run properly in the virtual DOS environment within Windows and require real 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 real mode DOS. Windows 95 and Windows 98 can be started from DOS Mode by typing <code>'WIN'</code> at the command prompt and then hitting "Enter", akin to earlier versions of Windows such as Windows 3.1. ===User interface=== {{See also|User interface}} Users can control a Windows 9x-based system through a [[command-line interface]] (or CLI) or a [[graphical user interface]] (or GUI). The default mode for Windows is usually the graphical user interface, whereas the CLI is available through [[MS-DOS]] windows. The GUI provides a means to control the placement and appearance of individual application windows, and interacts with the window system. The [[Graphics Device Interface|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]]. [[Alpha compositing]] and therefore [[Transparency (graphic)|transparency]] effects, such as fade effects in menus, are not supported by the [[Graphics Device Interface|GDI]] in Windows 9x, unlike with Windows NT releases since Windows 2000. The default user interface of the GUI is [[Windows Explorer]]; however, a variety of additional [[List of alternative shells for Windows|Windows shell replacement]]s exist. Other GUIs include [[LiteStep]], bbLean and [[Program Manager]].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)