Misplaced Pages

Win32 Thread Information Block

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The Thread Information Block ( TIB ) or Thread Environment Block ( TEB ) is a data structure in Win32 on x86 that stores information about the currently running thread . It descended from, and is backward-compatible on 32-bit systems with, a similar structure in OS/2 .

#799200

106-496: The TIB is officially undocumented for Windows 9x . The Windows NT series DDK (as well as the MinGW / ReactOS implementation) includes a struct NT_TIB in winnt.h that documents the subsystem independent part. Even before TIB was effectively documented, many applications have already started using its fields that they are effectively a part of the API . The first field containing

212-458: A relocatable format using the filename extension .CMD to avoid name conflicts with CP/M-80 and MS-DOS .COM files. MS-DOS version 1.0 added a more advanced relocatable . EXE executable file format. Most of the machines in the early days of MS-DOS had differing system architectures and there was a certain degree of incompatibility, and subsequently vendor lock-in . Users who began using MS-DOS with their machines were compelled to continue using

318-479: A struct pointer . Using Microsoft Windows SDK or similar, a programmer could use an inline function defined in winnt.h named NtCurrentTeb which returns the address of the current Thread Information Block as NT_TIB * . Alternative methods of access for IA-32 architectures are as follows: Windows 9x Windows 9x is a generic term referring to a line of discontinued Microsoft Windows operating systems from 1995 to 2000, which were based on

424-541: 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

530-618: A 1994 settlement agreement limiting Microsoft to per-copy licensing. Digital Research did not gain by this settlement, and years later its successor in interest, Caldera , sued Microsoft for damages in the Caldera v. Microsoft lawsuit. It was believed that the settlement ran in the order of $ 150 million , but was revealed in November 2009 with the release of the Settlement Agreement to be $ 280 million . Microsoft also used

636-448: A DOS startup disk on Windows Vista , the files on the startup disk are dated April 18, 2005, but are otherwise unchanged, including the string "MS-DOS Version 8 Copyright 1981–1999 Microsoft Corp" inside COMMAND.COM . Windows 7, 8, and 8.1 can also create a MS-DOS startup disk. Starting with Windows 10 , the ability to create a MS-DOS startup disk has been removed, and so either a virtual machine running MS-DOS or an older version (in

742-485: 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 . MS-DOS MS-DOS ( / ˌ ɛ m ˌ ɛ s ˈ d ɒ s / em-es- DOSS ; acronym for Microsoft Disk Operating System , also known as Microsoft DOS ) is an operating system for x86 -based personal computers mostly developed by Microsoft . Collectively, MS-DOS, its rebranding as IBM PC DOS , and

848-516: A Graphical User Interface (GUI) on top of MS-DOS. With Windows 95 , 98 , and Me , the role of MS-DOS was reduced to a boot loader according to Microsoft, with MS-DOS programs running in a virtual DOS machine within 32-bit Windows, with ability to boot directly into MS-DOS retained as a backward compatibility option for applications that required real mode access to the hardware, which was generally not possible within Windows. The command line accessed

954-887: A TIB which is embedded in a data block known as the TDB (thread data base). The TIB contains the thread-specific exception handling chain and pointer to the TLS (thread local storage.) The thread local storage is not the same as C local storage. A process should be free to move the stack of its threads as long as it updates the information stored in the TIB accordingly. A few fields are key to this matter: stack base, stack limit, deallocation stack, and guaranteed stack bytes, respectively stored at offsets 0x8 , 0x10 , 0x1478 and 0x1748 in 64 bits. Different Windows kernel functions read and write these values, specially to distinguish stack overflows from other read/write page faults (a read or write to

1060-755: A copy of the Windows Me boot disk, stripped down to bootstrap only. This is accessible only by formatting a floppy as an "MS-DOS startup disk". Files like the driver for the CD-ROM support were deleted from the Windows Me bootdisk and the startup files ( AUTOEXEC.BAT and CONFIG.SYS ) no longer had content. This modified disk was the base for creating the MS-DOS image for Windows XP. Some of the deleted files can be recovered with an undelete tool. When booting up an MS-DOS startup disk made with Windows XP's format tool,

1166-478: A demo system running Cairo for all attendees to use. Based on the Windows NT kernel, Cairo was a next-generation operating system that was to feature as many new technologies into Windows, including a new user interface with an object-based file system (this new user interface would officially debut with Windows 95 nearly 4 years later while the object-based file system would later be adopted as WinFS during

SECTION 10

#1732791680800

1272-608: A few operating systems attempting to be compatible with MS-DOS, are sometimes referred to as "DOS" (which is also the generic acronym for disk operating system ). MS-DOS was the main operating system for IBM PC compatibles during the 1980s, from which point it was gradually superseded by operating systems offering a graphical user interface (GUI), in various generations of the graphical Microsoft Windows operating system. IBM licensed and re-released it in 1981 as PC DOS 1.0 for use in its PCs. Although MS-DOS and PC DOS were initially developed in parallel by Microsoft and IBM,

1378-541: A forceful letter to PC Week (November 5, 1990), denying that Microsoft was engaged in FUD tactics ("to serve our customers better, we decided to be more forthcoming about version 5.0") and denying that Microsoft copied features from DR DOS: "The feature enhancements of MS-DOS version 5.0 were decided and development was begun long before we heard about DR DOS 5.0. There will be some similar features. With 50 million MS-DOS users, it shouldn't be surprising that DRI has heard some of

1484-448: A higher price. Executable programs for CP/M-86 and MS-DOS were not interchangeable with each other; many applications were sold in both MS-DOS and CP/M-86 versions until MS-DOS became preponderant (later Digital Research operating systems could run both MS-DOS and CP/M-86 software). MS-DOS originally supported the simple .COM , which was modeled after a similar but binary-incompatible format known from CP/M-80 . CP/M-86 instead supported

1590-541: 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

1696-458: A large share of the business computer market. Microsoft and IBM together began what was intended as the follow-on to MS-DOS/PC DOS, called OS/2 . When OS/2 was released in 1987, Microsoft began an advertising campaign announcing that "DOS is Dead" and stating that version 4 was the last full release. OS/2 was designed for efficient multi-tasking and offered a number of advanced features that had been designed together with similar look and feel ; it

1802-415: A more modern computing environment. These factors immediately began to impact the operating system's efficiency and stability. Microsoft marketing adopted Windows 95 as the product name for Chicago when it was released on August 24, 1995. Microsoft went on to release five different versions of Windows 95: OSR2, OSR2.1, and OSR2.5 ("OSR" being an initialism for "OEM Service Release") were not released to

1908-747: A page guarded among the stack limits in guaranteed stack bytes will generate a stack-overflow exception instead of an access violation). The deallocation stack is important because Windows API allows to change the amount of guarded pages: the function SetThreadStackGuarantee allows both read the current space and to grow it. In order to read it, it reads the GuaranteedStackBytes field, and to grow it, it uses has to uncommit stack pages. Setting stack limits without setting DeallocationStack will probably cause odd behavior in SetThreadStackGuarantee . For example, it will overwrite

2014-407: A particular model), or per-copy (a fee for each copy of MS-DOS installed). The largest manufacturers used the per-processor arrangement, which had the lowest fee. This arrangement made it expensive for the large manufacturers to migrate to any other operating system, such as DR DOS. In 1991, the U.S. government Federal Trade Commission began investigating Microsoft's licensing procedures, resulting in

2120-513: A standard Microsoft kernel, which they would typically supply on disk to end users along with the hardware. Thus, there were many different versions of "MS-DOS" for different hardware, and there is a major distinction between an IBM-compatible (or ISA) machine and an MS-DOS [compatible] machine. Some machines, like the Tandy 2000 , were MS-DOS compatible but not IBM-compatible, so they could run software written exclusively for MS-DOS without dependence on

2226-527: A stopgap release between Windows 98 and Windows XP (then code-named Whistler at the time). It borrowed some features from the business-oriented Windows 2000 into the Windows 9x series, and introduced the first version of System Restore , which allowed users to revert their system state to a previous "known-good" point in the case of a system failure. Windows Me also introduced the first release of Windows Movie Maker and included Windows Media Player 7 . Internet Explorer 5.5 came shipped with Windows Me. Many of

SECTION 20

#1732791680800

2332-602: A variety of other computers based on various other processors were in serious competition with the IBM PC: the Apple II , Mac , Commodore 64 and others did not use the 808x processor; many 808x machines of different architectures used custom versions of MS-DOS. At first all these machines were in competition. In time the IBM PC hardware configuration became dominant in the 808x market as software written to communicate directly with

2438-450: A variety of tactics in MS-DOS and several of their applications and development tools that, while operating perfectly when running on genuine MS-DOS (and PC DOS), would break when run on another vendor's implementation of DOS. Notable examples of this practice included: All versions of Microsoft Windows have had an MS-DOS or MS-DOS-like command-line interface called MS-DOS Prompt which redirected input to MS-DOS and output from MS-DOS to

2544-456: A virtual machine or dual boot) must be used to format a floppy disk, or an image must be obtained from an external source. Other solutions include using DOS compatible alternatives, such as FreeDOS or even copying the required files and boot sector themselves. The last remaining components related to MS-DOS was the NTVDM component, which was removed entirely in Windows starting with Windows 11 as

2650-457: A year before the development of Windows 3.1's successor (Windows 95, code-named Chicago) began, Microsoft announced at its 1991 Professional Developers Conference that they would be developing a successor to Windows NT code-named Cairo , which has been implied by some to succeed both Windows NT and Windows 3.1's successor under one unified system. Microsoft publicly demonstrated Cairo at the 1993 Professional Developers Conference, complete with

2756-608: Is 4.x. The internal versions for Windows 95, 98, and Me are 4.0, 4.1, and 4.9, respectively. Previous MS-DOS-based versions of Windows used version numbers of 3.2 or lower . Windows NT , which was aimed at professional users such as networks and businesses, used a similar but separate version number between 3.1 and 4.0. All versions of Windows from Windows XP onwards are based on the Windows NT codebase. The first independent version of Microsoft Windows, version 1.0 , released on November 20, 1985, achieved little popularity. Its name

2862-529: Is a fork of Gecko 1.8.1 aimed at bringing "improved compatibility on the modern web" for versions of Windows as old as Windows 95 and NT 4.0. The latest version, 2.2, was released in February 2019 and added support for TLS 1.2 . Windows 9x is a series of monolithic 16/32-bit operating systems. Like most operating systems, Windows 9x consists of kernel space and user space memory. Although Windows 9x features some memory protection , it does not protect

2968-412: Is mainly for education and experimentation with historic operating systems and for new programmers to gain an understanding of how low-level software works, both historic and current. According to program manager Rich Turner, the other versions could not be open-sourced due to third-party licensing restrictions. Due to the historical nature of the software, Microsoft will not accept any pull requests to

3074-518: Is often called the MS-DOS Prompt. In part, this was the official name for it in Windows 9x and early versions of Windows NT (NT 3.5 and earlier), and in part because the SoftPC emulation of DOS redirects output into it. Actually only COMMAND.COM and other 16-bit commands run in an NTVDM with AUTOEXEC.NT and CONFIG.NT initialization determined by _DEFAULT.PIF , optionally permitting

3180-441: Is still used in embedded x86 systems due to its simple architecture and minimal memory and processor requirements, though some current products have switched to the still-maintained open-source alternative FreeDOS . In 2018, Microsoft released the source code for MS-DOS 1.25 and 2.0 on GitHub , with the source code for MS-DOS 4.00 being released in the same repository six years later. The purpose of this, according to Microsoft,

3286-572: Is the last version compatible with latter releases of Windows 9x (i.e. 98 and Me). While Internet Explorer 6 for Windows XP did receive security patches up until it lost support, this is not the case for IE6 under Windows 98 and Me. Due to its age, Internet Explorer 7 , the first major update to Internet Explorer 6 in half a decade, was only available for Windows XP SP2 and Windows Vista. The Windows Update website continued to be available for Windows 98, Windows 98 SE, and Windows Me after their end of support date; however, during 2011, Microsoft retired

Win32 Thread Information Block - Misplaced Pages Continue

3392-571: The FAT32 file system which allows support for disk partitions larger than the 2 GB maximum accepted by Windows 95. The USB support in Windows 98 was more robust than the basic support provided by the OEM editions of Windows 95. It also introduces the controversial integration of the Internet Explorer 4 web browser into the Windows shell and File Explorer (then known as Windows Explorer at

3498-591: The Intel 8086 and 8088 processors, including the IBM PC and clones, the initial competition to the PC DOS/MS-DOS line came from Digital Research , whose CP/M operating system had inspired MS-DOS. In fact, there remains controversy as to whether QDOS was more or less plagiarized from early versions of CP/M code. Digital Research released CP/M-86 a few months after MS-DOS, and it was offered as an alternative to MS-DOS and Microsoft's licensing requirements, but at

3604-499: The PEB one can obtain access to the import tables (IAT), process startup arguments, image name, etc. It is accessed from the FS segment register on 32-bit Windows and GS on 64-bit Windows. This table is based on Wine 's work on Microsoft Windows internals. Note: the 64-bit version of Windows uses stack unwinding done in kernel mode instead. FS (for 32-bit) or GS (for 64-bit) maps to

3710-499: The SEH frame, in particular, is directly referenced by the code produced by Microsoft's own compiler. The Win32 subsystem-specific part of the TEB is undocumented, but Wine includes a TEB definition in winternl.h . The TIB can be used to get a lot of information on the process without calling Win32 API. Examples include emulating GetLastError() , GetVersion() . Through the pointer to

3816-581: The Santa Cruz Operation (SCO). On March 25, 2014, Microsoft made the code to SCP MS-DOS 1.25 and a mixture of Altos MS-DOS 2.11 and TeleVideo PC DOS 2.11 available to the public under the Microsoft Research License Agreement , which makes the code source-available , but not open source as defined by Open Source Initiative or Free Software Foundation standards. Microsoft would later re-license

3922-453: The VFAT file system, allowing file names with a maximum of 255 characters instead of having 8.3 filenames . Windows 9x has no support for event logging and tracing or 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. Windows 9x is designed as a single-user system. Thus,

4028-531: The Windows 95 kernel and its underlying foundation of MS-DOS , both of which were updated in subsequent versions. The first version in the 9x series was Windows 95, which was succeeded by Windows 98 and then Windows Me , which was the third and last version of Windows on the 9x line, until the series was superseded by Windows XP . Windows 9x is predominantly known for its use in home desktops . In 1998, Windows made up 82% of operating system market share. The internal release number for versions of Windows 9x

4134-681: The Windows NT -derived 32-bit operating systems ( Windows NT , 2000 , XP and newer), developed alongside the 9x series, do not contain MS-DOS compatibility as a core component of the operating system nor do they rely on it for bootstrapping, as NT was not with the level of support for legacy MS-DOS and Win16 apps that Windows 9x was, but does provide limited DOS emulation called NTVDM (NT Virtual DOS Machine) to run DOS applications and provide DOS-like command prompt windows. 64-bit versions of Windows NT prior to Windows 11 (and Windows Server 2008 R2 by extension) do not provide DOS emulation and cannot run DOS applications natively. Windows XP contains

4240-468: The development of Windows Vista ). According to Microsoft's product plan at the time, Cairo was planned to be released as late as July 1996 following its development. However, it had become apparent that Cairo was a much more difficult project than Microsoft had anticipated, and the project was subsequently cancelled 5 years into development. A subset of features from Cairo were eventually added into Windows NT 4.0 released on August 24, 1996, albeit without

4346-748: The "pre-announcement" of MS-DOS 6.0 again stifled the sales of DR DOS. Microsoft had been accused of carefully orchestrating leaks about future versions of MS-DOS in an attempt to create what in the industry is called FUD ( fear, uncertainty, and doubt ) regarding DR DOS. For example, in October 1990, shortly after the release of DR DOS 5.0, and long before the eventual June 1991 release of MS-DOS 5.0, stories on feature enhancements in MS-DOS started to appear in InfoWorld and PC Week . Brad Silverberg , then Vice President of Systems Software at Microsoft and general manager of its Windows and MS-DOS Business Unit, wrote

Win32 Thread Information Block - Misplaced Pages Continue

4452-451: The 1994 release of MS-DOS 6.21, which had disk compression removed. Shortly afterwards came version 6.22, with a new version of the disk compression system, DriveSpace, which had a different compression algorithm to avoid the infringing code. Prior to 1995, Microsoft licensed MS-DOS (and Windows) to computer manufacturers under three types of agreement: per-processor (a fee for each system the company sold), per-system (a fee for each system of

4558-561: The DOS command line (usually COMMAND.COM ) through a Windows module (WINOLDAP.MOD). Windows NT-based operating systems boot to a kernel whose purpose is to load Windows and run the system. One cannot run Win32 applications in the loader system in the manner that OS/2, UNIX or consumer versions of Windows can launch character-mode sessions. The command session permits running various supported command-line utilities from Win32, MS-DOS, OS/2 1.x and POSIX. The emulators for MS-DOS, OS/2 and POSIX use

4664-524: The IBM 5150 or the IBM PC . Within a year, Microsoft licensed MS-DOS to over 70 other companies. It was designed to be an OS that could run on any 8086-family computer. Each computer would have its own distinct hardware and its own version of MS-DOS, similar to the situation that existed for CP/M , and with MS-DOS emulating the same solution as CP/M to adapt for different hardware platforms. To this end, MS-DOS

4770-470: The MS-DOS Prompt, or, in later versions, Command Prompt . This could run many DOS and variously Win32, OS/2 1.x and POSIX command-line utilities in the same command-line session, allowing piping between commands. The user interface, and the icon up to Windows 2000, followed the native MS-DOS interface. The Command Prompt introduced with Windows NT is not actually MS-DOS, but shares some commands with MS-DOS. The 16-bit versions of Windows (up to 3.11) ran as

4876-434: The MS-DOS name for all versions but the IBM one, which was originally called "IBM Personal Computer DOS", later shortened to IBM PC DOS . (Competitors released compatible DOS systems such as DR-DOS and PTS-DOS that could also run MS-DOS applications.) In the former Eastern bloc , MS-DOS derivatives named DCP ( Disk Control Program  [ de ] ) 3.20 and 3.30 (DCP 1700, DCP 3.3) and WDOS existed in

4982-405: The NTVDM and can therefore no longer natively run DOS or 16-bit Windows applications. There are alternatives such as virtual machine emulators such as Microsoft's own Virtual PC , as well as VMware , DOSBox etc., unofficial compatibility layers such as NTVDMx64, OTVDM (WineVDM), Win3mu and others. The introduction of Windows 3.0 in 1990, with an easy-to-use graphical user interface , marked

5088-631: The PATH environment variable. The registry consists of two files: User.dat and System.dat. In Windows Me, Classes.dat was added. 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 machines . 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

5194-597: The PC hardware without using standard operating system calls ran much faster, but on true PC-compatibles only. Non-PC-compatible 808x machines were too small a market to have fast software written for them alone, and the market remained open only for IBM PCs and machines that closely imitated their architecture, all running either a single version of MS-DOS compatible only with PCs, or the equivalent IBM PC DOS. Most clones cost much less than IBM-branded machines of similar performance, and became widely used by home users, while IBM PCs had

5300-720: The Virtual Machine Manager (VMM), the Installable File System Manager ( IFSHLP ), the Configuration Manager, and in Windows 98 and later, the WDM Driver Manager (NTKERN). 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. Like Windows NT, Windows 9x stores user-specific and configuration-specific settings in

5406-543: The Win16 subsystem, the Win32 subsystem and MS-DOS. Windows 9x/Me set aside two blocks of 64 KiB 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, it could exhaust these memory areas. If free system resources dropped below 10%, Windows would become unstable and likely crash. The kernel mode parts consist of

SECTION 50

#1732791680800

5512-454: The Windows 9x series until July 11, 2006, when extended support ended for Windows 98, Windows 98 Second Edition (SE), and Windows Millennium Edition (Me) – 4 years after extended support for Windows 95 ended on December 31, 2001. Microsoft DirectX, a set of standard gaming APIs, stopped being updated on Windows 95 at version 8.0a. It also stopped being updated on Windows 98 and Me after the release of Windows Vista in 2006, making DirectX 9.0c

5618-520: The Windows GUI; this capability was retained through Windows 98 Second Edition. Windows Me removed the capability to boot its underlying MS-DOS 8.0 alone from a hard disk, but retained the ability to make a DOS boot floppy disk (called an "Emergency Boot Disk") and can be hacked to restore full access to the underlying DOS. On December 31, 2001, Microsoft declared all versions of MS-DOS 6.22 and older obsolete and stopped providing support and updates for

5724-773: The Windows Update v4 website and removed the updates for Windows 98, Windows 98 SE, and Windows Me from its servers. Microsoft announced in July 2019 that the Microsoft Internet Games services on Windows Me (and XP) would end on July 31, 2019 (and for Windows 7 on January 22, 2020). The growing number of important updates caused by the end of life service for these operating systems have slowly made Windows 9x even less practical for everyday use. Today, even open source projects such as Mozilla Firefox will not run on Windows 9x without major rework. RetroZilla

5830-424: The background for loading Windows 9x . MS-DOS was a renamed form of 86-DOS  – owned by Seattle Computer Products , written by Tim Paterson . Development of 86-DOS took only six weeks, as it was basically a clone of Digital Research 's CP/M (for 8080/Z80 processors), ported to run on 8086 processors and with two notable differences compared to CP/M: an improved disk sector buffering logic, and

5936-442: The beginning of the end for the command-line driven MS-DOS. With the release of Windows 95 (and continuing in the Windows 9x product line through to Windows Me ), an integrated version of MS-DOS was used for bootstrapping , troubleshooting, and backwards-compatibility with old DOS software, particularly games, and no longer released as a standalone product. In Windows 95, the DOS, called MS-DOS 7, can be booted separately, without

6042-666: The code under the MIT License on September 28, 2018, making these versions free software . Microsoft later released the code for MS-DOS 4.00 on April 25, 2024, under the same license. As an April Fool's Day joke in 2015, Microsoft Mobile launched a Windows Phone application called MS-DOS Mobile which was presented as a new mobile operating system and worked similar to MS-DOS. Microsoft licensed or released versions of MS-DOS under different names like Lifeboat Associates "Software Bus 86" a.k.a. SB-DOS , COMPAQ-DOS , NCR-DOS or Z-DOS before it eventually enforced

6148-630: The early 2000s. By March 2004, it was impossible to purchase any versions of the Windows 9x series. Over time, support for the Windows 9x series ended. Windows 95 had lost its mainstream support in December 31, 2000, and extended support was dropped from Windows 95 on December 31, 2001 (which also ended support for older Windows versions prior to Windows 95 on that same day). Windows 98 and Windows 98 Second Edition had its mainstream support end on June 30, 2002, and mainstream support for Windows Me ended on December 31, 2003. Microsoft then continued to support

6254-557: The first megabyte of memory from 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 or 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. The user-mode parts of Windows 9x consist of three subsystems:

6360-499: The general public, rather, they were available only to OEMs that would preload the OS onto computers. Some companies sold new hard drives with OSR2 preinstalled (officially justifying this as needed due to the hard drive's capacity). The first Microsoft Plus! add-on pack was sold for Windows 95. On June 25, 1998, Microsoft released Windows 98, code-named "Memphis" during development. It included new hardware drivers and better support for

6466-459: The host's window in the same way that Win16 applications use the Win32 explorer. Using the host's window allows one to pipe output between emulations. The MS-DOS emulation takes place through the NTVDM (NT Virtual DOS Machine). This is a modified SoftPC (a former product similar to VirtualPC ), running a modified MS-DOS 5 (NTIO.SYS and NTDOS.SYS). The output is handled by the console DLLs, so that

SECTION 60

#1732791680800

6572-700: The introduction of FAT12 instead of the CP/M filesystem . This first version was shipped in August 1980. Microsoft, which needed an operating system for the IBM Personal Computer , hired Tim Paterson in May 1981 and bought 86-DOS 1.10 for US$ 25,000 in July of the same year. Microsoft kept the version number, but renamed it MS-DOS. They also licensed MS-DOS 1.10/1.14 to IBM, which, in August 1981, offered it as PC DOS 1.0 as one of three operating systems for

6678-431: The introduction of virtual memory . Microsoft developed Windows 3.1 , which included several minor improvements to Windows 3.0, primarily consisting of bugfixes and multimedia support. It also excluded support for Real mode, and only ran on an Intel 80286 or better processor. Windows 3.1 was released on April 6, 1992. In November 1993 Microsoft also released Windows 3.11 , a touch-up to Windows 3.1 which included all of

6784-471: The last version of DirectX to support these operating systems. Support for Microsoft Internet Explorer on all Windows 9x releases have also ended. Windows 95, Windows 98 and Windows Me all lost security patches for Internet Explorer when the respective operating systems reached their end of support date. Internet Explorer 5.5 with Service Pack 2 is the last version of Internet Explorer compatible with Windows 95, while Internet Explorer 6 with Service Pack 1

6890-699: The late 1980s. They were produced by the East German electronics manufacturer VEB Robotron . The following versions of MS-DOS were released to the public: Support for IBM's XT 10 MB hard disk drives, support up to 16 MB or 32 MB FAT12 -formatted hard disk drives depending on the formatting tool shipped by OEMs, user-installable device drivers, tree-structure filing system, Unix-like inheritable redirectable file handles, non-multitasking child processes an improved Terminate and Stay Resident (TSR) API, environment variables, device driver support, FOR and GOTO loops in batch files, ANSI.SYS . Microsoft DOS

6996-639: The limitations of the then-current FAT filesystem. Backwards-compatibility with .INI 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

7102-402: The limits of their contemporary hardware. Very soon an IBM-compatible architecture became the goal, and before long all 8086-family computers closely emulated IBM's hardware , and only a single version of MS-DOS for a fixed hardware platform was needed for the market. This version is the version of MS-DOS that is discussed here, as the dozens of other OEM versions of "MS-DOS" were only relevant to

7208-467: The more reliable Windows 98 Second Edition for the remainder of Windows Me's lifecycle until the release of Windows XP in 2001. A small number of Windows Me owners moved over to the business-oriented Windows 2000 Professional during that same time period. The inability of users to easily boot into real mode MS-DOS like in Windows 95 and 98 led users to quickly figure out how to hack their Windows Me installations to provide this missing functionality back into

7314-621: The need to call the real mode file system code of the DOS kernel). Partial support for Unicode can be installed on Windows 9x through the Microsoft Layer for Unicode . Windows 9x does not natively support NTFS or 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

7420-525: The new features from Windows Me were also available as updates for older Windows versions such as Windows 98 via Windows Update . The role of MS-DOS has also been greatly reduced compared to previous versions of Windows, with Windows Me no longer allowing real mode DOS to be accessed. Windows Me initially gained a positive reception upon its release, but later on it was heavily criticized by users for its instability and unreliability, due to frequent freezes and crashes. Windows Me has been viewed by many as one of

7526-454: The object file system. Windows NT and Windows 9x would not be truly unified until Windows XP nearly 5 years later, when Microsoft began to merge its consumer and business line of Windows under a singular brand name based on Windows NT. After Windows 3.11 , Microsoft began to develop a new consumer oriented version of the operating system code-named Chicago. Chicago was designed to have support for 32-bit preemptive multitasking, that of which

7632-561: The operating system dropped support for 32-bit processors in favor of being solely offered in 64-bit versions only. This effectively ended any association of MS-DOS within Microsoft Windows after 36 years. MS-DOS 6.22 was the last standalone version produced by Microsoft for Intel 8088 , Intel 8086 , and Intel 80286 processors, which remains available for download via their MSDN , volume license, and OEM license partner websites, for customers with valid login credentials. MS-DOS

7738-467: The operating system. Windows Me never received a dedicated Microsoft Plus! add-on like with Windows 95 and Windows 98. The release of Windows 2000 marked a shift in the user experience between the Windows 9x series and the Windows NT series. Windows NT 4.0, while based on the Windows 95 interface, suffered from a lack of support for USB, Plug and Play and DirectX versions after 3.0, preventing its users from playing contemporary games. Windows 2000 on

7844-442: The original version. Windows 98 Second Edition also has certain improvements over the original release, and hardware support through device drivers was increased. Many minor problems present in the original release of Windows 98 were also found and fixed. These changes, among others, makes it (according to many) the most stable release of Windows 9x family—to the extent that some commentators used to say that Windows 98's beta version

7950-501: The other hand, while primarily made towards business and server users, featured an updated user interface and better support for both Plug and Play and USB, as well as including built-in support for DirectX 7.0 . The release of Windows XP in late 2001 confirmed the change of direction for Microsoft, bringing the consumer and business operating systems together under Windows NT. After the release of Windows XP, Microsoft stopped selling Windows 9x releases to end users (and later to OEMs) in

8056-551: The patches and updates that followed the release of Windows 3.1 in early 1992. Meanwhile, Microsoft continued to develop Windows NT . The main architect of the system was Dave Cutler , one of the chief architects of VMS at Digital Equipment Corporation . Microsoft hired him in August 1988 to create a successor to OS/2 , but Cutler created a completely new system instead based on his MICA project at Digital. The first version of Windows NT, Windows NT 3.1 , would be released on July 27, 1993 and used Windows 3.1's interface. About

8162-600: The period when Digital Research was competing in the operating system market some computers, like the Amstrad PC1512 , were sold with floppy disks for two operating systems (only one of which could be used at a time), MS-DOS and CP/M-86 or a derivative of it. Digital Research produced DOS Plus , which was compatible with MS-DOS 2.11, supported CP/M-86 programs, had additional features including multi-tasking, and could read and write disks in CP/M and MS-DOS format. While OS/2

8268-460: The peripheral hardware of the IBM PC architecture. This design would have worked well for compatibility, if application programs had only used MS-DOS services to perform device I/O. Indeed, the same design philosophy is embodied in Windows NT (see Hardware Abstraction Layer ). However, in MS-DOS' early days, the greater speed attainable by programs through direct control of hardware was of particular importance, especially for games, which often pushed

8374-455: The platform without Microsoft and sold it as the alternative to DOS and Windows. As a response to Digital Research 's DR DOS 6.0 , which bundled SuperStor disk compression, Microsoft opened negotiations with Stac Electronics , vendor of the most popular DOS disk compression tool, Stacker. In the due diligence process, Stac engineers had shown Microsoft part of the Stacker source code. Stac

8480-492: The program at the prompt ( CMD.EXE , 4NT.EXE , TCC.EXE ), can see the output. 64-bit Windows has neither the DOS emulation, nor the DOS commands EDIT, DEBUG and EDLIN that come with 32-bit Windows. The DOS version returns 5.00 or 5.50, depending on which API function is used to determine it. Utilities from MS-DOS 5.00 run in this emulation without modification. The very early beta programs of NT show MS-DOS 30.00, but programs running in MS-DOS 30.00 would assume that OS/2

8586-421: The release (notably Plug and Play) slipped. Microsoft did not change all of the Windows code to 32-bit; parts of it remained 16-bit (albeit not directly using real mode ) for reasons of compatibility, performance and development time. Additionally it was necessary to carry over design decisions from earlier versions of Windows for reasons of backwards compatibility, even if these design decisions no longer matched

8692-424: The same requests from customers that we have." – (Schulman et al. 1994). The pact between Microsoft and IBM to promote OS/2 began to fall apart in 1990 when Windows 3.0 became a marketplace success. Many of Microsoft's further contributions to OS/2 also went into creating a third GUI replacement for DOS, Windows NT . IBM, which had already been developing the next version of OS/2, carried on development of

8798-554: The security model is much less effective than the one in Windows NT. One reason for this is the FAT file systems (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

8904-521: The shared features of its "single-user OS" and "the multi-user, multi-tasking , UNIX -derived operating system", and promising easy porting between them. After the breakup of the Bell System , however, AT&T Computer Systems started selling UNIX System V . Believing that it could not compete with AT&T in the Unix market, Microsoft abandoned Xenix, and in 1987 transferred ownership of Xenix to

9010-496: The stack limits to wrong values. Different libraries call SetThreadStackGuarantee , for example the .NET CLR uses it for setting up the stack of their threads. The TIB of the current thread can be accessed as an offset of segment register FS (x86) or GS (x64). It is not common to access the TIB fields by an offset from FS:[0] , but rather first getting a linear self-referencing pointer to it stored at FS:[18h] . That pointer can be used with pointer arithmetic or be cast to

9116-401: The system. As MS-DOS 7.0 was a part of Windows 95, support for it also ended when Windows 95 extended support ended on December 31, 2001. As MS-DOS 7.10 and MS-DOS 8.0 were part of Windows 98 and Windows ME, respectively, support ended when Windows 98 and ME extended support ended on July 11, 2006, thus ending support and updates of MS-DOS from Microsoft. In contrast to the Windows 9x series,

9222-519: The systems they were designed for, and in any case were very similar in function and capability to some standard version for the IBM PC—often the same-numbered version, but not always, since some OEMs used their own proprietary version numbering schemes (e.g. labeling later releases of MS-DOS 1.x as 2.0 or vice versa)—with a few notable exceptions. Microsoft omitted multi-user support from MS-DOS because Microsoft's Unix -based operating system, Xenix ,

9328-430: 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 WIN386.EXE 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

9434-488: The time). On June 10, 1999, Microsoft released Windows 98 Second Edition (also known as Windows 98 SE), an interim release whose notable features were the addition of Internet Connection Sharing and improved WDM audio and modem support. Internet Connection Sharing is a form of network address translation , allowing several machines on a LAN (Local Area Network) to share a single Internet connection . It also includes Internet Explorer 5 as opposed to Internet Explorer 4 in

9540-662: The two products diverged after twelve years, in 1993, with recognizable differences in compatibility, syntax and capabilities. Beginning in 1988 with DR-DOS , several competing products were released for the x86 platform. Initially, MS-DOS was targeted at Intel 8086 processors running on computer hardware using floppy disks to store and access not only the operating system, but application software and user data as well. Progressive version releases delivered support for other mass storage media in ever greater sizes and formats, along with added feature support for newer processors and rapidly evolving computer architectures. Ultimately, it

9646-474: The use of Win32 console applications and internal commands with an NTCMDPROMPT directive. Win32 console applications use CMD.EXE as their command prompt shell. This confusion does not exist under OS/2 because there are separate DOS and OS/2 prompts, and running a DOS program under OS/2 will launch a separate DOS window to run the application. All versions of Windows for Itanium (no longer sold by Microsoft) and x86-64 architectures no longer include

9752-478: The version customized for their hardware, or face trying to get all of their proprietary hardware and software to work with the new system. In the business world, the 808x-based machines that MS-DOS was tied to faced competition from the Unix operating system; the latter ran on many different hardware architectures. Microsoft itself sold a version of Unix for the PC called Xenix . In the emerging world of home users,

9858-612: The version number and the VER internal command reports as "Windows Millennium" and "5.1", respectively, and not as "MS-DOS 8.0" (which was used as the base for Windows Me but never released as a stand-alone product), though the API still says Version 8.0. The creation of the MS-DOS startup disk was then carried over to later versions of Windows, with the majority of its contents remaining unchanged from its introduction in Windows XP. When creating

9964-502: The worst operating systems of all time, both in critical and in retrospect. PC World was highly critical of Windows Me months after it was released (and indeed when it was no longer available), with their article infamously describing Windows Me as "Mistake Edition" and placing it 4th in their "Worst Tech Products of All Time" feature in 2006. Consequently, many home users that were affected by Windows Me's instabilities (as well as those who negatively viewed Windows Me) ultimately stuck with

10070-560: Was available in OS/2 and Windows NT, although a 16-bit kernel would remain for the sake of backward compatibility. The Win32 API first introduced with Windows NT was adopted as the standard 32-bit programming interface, with Win16 compatibility being preserved through a technique known as " thunking ". A new GUI was not originally planned as part of the release, although elements of the Cairo user interface were borrowed and added as other aspects of

10176-455: Was designed with a modular structure with internal device drivers (the DOS BIOS ), minimally for primary disk drives and the console, integrated with the kernel and loaded by the boot loader, and installable device drivers for other devices loaded and integrated at boot time. The OEM would use a development kit provided by Microsoft to build a version of MS-DOS with their basic I/O drivers and

10282-515: Was fully multi-user. The company planned, over time, to improve MS-DOS so it would be almost indistinguishable from single-user Xenix, or XEDOS , which would also run on the Motorola 68000 , Zilog Z8000 , and the LSI-11 ; they would be upwardly compatible with Xenix, which Byte in 1983 described as "the multi-user MS-DOS of the future". Microsoft advertised MS-DOS and Xenix together, listing

10388-606: Was in control. The OS/2 emulation is handled through OS2SS.EXE and OS2.EXE, and DOSCALLS.DLL. OS2.EXE is a version of the OS/2 shell (CMD.EXE), which passes commands down to the OS2SS.EXE, and input-output to the Windows NT shell. Windows 2000 was the last version of NT to support OS/2. The emulation is OS/2 1.30. POSIX is emulated through the POSIX shell, but no emulated shell; the commands are handled directly in CMD.EXE. The Command Prompt

10494-416: Was initially "Interface Manager", but Rowland Hanson , the head of marketing at Microsoft, convinced the company that the name Windows would be more appealing to consumers. Windows 1.0 was not a complete operating system, but rather an "operating environment" that extended MS-DOS . Consequently, it shared the inherent flaws and problems of MS-DOS. The second installment of Microsoft Windows, version 2.0 ,

10600-483: Was more stable than Windows 95's final (gamma) version. Like with Windows 95, Windows 98 received the Microsoft Plus! add-on in the form of Plus! 98 . On September 14, 2000, Microsoft introduced Windows Me (Millennium Edition; also known as Windows ME), which upgraded Windows 98 with enhanced multimedia and Internet features. Code-named "Millennium", It was conceived as a quick one-year project that served as

10706-528: Was released on December 9, 1987, and used the real-mode memory model, which confined it to a maximum of 1 megabyte of memory. In such a configuration, it could run under another multitasking system like DESQview , which used the 286 Protected Mode . Microsoft Windows scored a significant success with Windows 3.0 , released in 1990. In addition to improved capabilities given to native applications, Windows also allowed users to better multitask older MS-DOS-based software compared to Windows/386 , thanks to

10812-1212: Was released through the OEM channel, until Digital Research released DR-DOS 5.0 as a retail upgrade. With PC DOS 5.00.1, the IBM–Microsoft agreement started to end, and IBM entered the retail DOS market with IBM DOS 5.00.1, 5.02, 6.00 and PC DOS 6.1, 6.3, 7, 2000 and 7.1. Localized versions of MS-DOS existed for different markets. While Western issues of MS-DOS evolved around the same set of tools and drivers just with localized message languages and differing sets of supported codepages and keyboard layouts, some language versions were considerably different from Western issues and were adapted to run on localized PC hardware with additional BIOS services not available in Western PCs, support multiple hardware codepages for displays and printers, support DBCS, alternative input methods and graphics output. Affected issues include Japanese ( DOS/V ), Korean, Arabic (ADOS 3.3/5.0), Hebrew (HDOS 3.3/5.0), Russian ( RDOS 4.01 / 5.0 ) as well as some other Eastern European versions of DOS. On microcomputers based on

10918-507: Was seen as the legitimate heir to the "kludgy" DOS platform. MS-DOS had grown in spurts, with many significant features being taken or duplicated from Microsoft's other products and operating systems. MS-DOS also grew by incorporating, by direct licensing or feature duplicating, the functionality of tools and utilities developed by independent companies, such as Norton Utilities , PC Tools ( Microsoft Anti-Virus ), QEMM expanded memory manager, Stacker disk compression , and others. During

11024-517: Was the key product in Microsoft's development from a programming language company to a diverse software development firm, providing the company with essential revenue and marketing resources. It was also the underlying basic operating system on which early versions of Windows ran as a GUI. MS-DOS went through eight versions, until development ceased in 2000; version 6.22 from 1994 was the final standalone version, with versions 7 and 8 serving mostly in

11130-506: Was under protracted development, Digital Research released the MS-DOS compatible DR-DOS 5.0, which included features only available as third-party add-ons for MS-DOS. Unwilling to lose any portion of the market, Microsoft responded by announcing the "pending" release of MS-DOS 5.0 in May 1990. This effectively killed most DR DOS sales until the actual release of MS-DOS 5.0 in June 1991. Digital Research brought out DR DOS 6.0, which sold well until

11236-592: Was unwilling to meet Microsoft's terms for licensing Stacker and withdrew from the negotiations. Microsoft chose to license Vertisoft's DoubleDisk, using it as the core for its DoubleSpace disk compression. MS-DOS 6.0 and 6.20 were released in 1993, both including the Microsoft DoubleSpace disk compression utility program. Stac successfully sued Microsoft for patent infringement regarding the compression algorithm used in DoubleSpace. This resulted in

#799200