MinWin

Last updated

MinWin is a term used informally by Microsoft to describe the kernel and operating system components that form the basis of releases of Microsoft Windows starting with Windows Vista. The term was first used in 2003 to describe approximately 95% of the common components of the operating system, but has over time come to refer to a significantly smaller portion. Its most recent and most well-known variation was a minimalistic, self-contained set of Windows components that shipped as part of Windows 7 and Windows Server 2008 R2.

Contents

Background

Through the history of Microsoft Windows, the core of the operating system was generally designed to be a single large, inter-related set of components. With successive releases, the set of components considered to be the core of Microsoft Windows numbered into the thousands, with numerous dependencies that prevented the company from producing a version of Microsoft Windows that (for example) didn't include the graphical user interface and printing components. Further complicating this was the issue that many configuration tasks could only be performed using the graphical user interface.

In an April 2003 interview coinciding with the release of Windows Server 2003, Rob Short, the vice-president of the Windows Core Technology group, explained that creating a command-line version would involve "looking at the layers and what's available at each layer and how do we make it much closer to the thing the Linux guys have -- having only the pieces you want running. That's something Linux has that's ahead of us, but we're looking at it. We will have a command line-only version, but whether it'll have all the features in is another matter. A lot of the tools depend on having the graphical interface." [1] Windows Server 2003 was seen by reviewers such as Direction On Microsoft's Michael Cherry as having reduced the reliance on graphical tools to configure the operating system, [2] but the operating system itself still required the full graphical interface to be installed, even on servers where it would never be needed.

After Windows Server 2003's release, Rob Short assembled a team of kernel architects at Microsoft, with the intention of untangling and documenting the dependencies within the core operating system. The kernel development team had realized that they were having difficulty being able to "predict the impact of changes and to make broad, cross-group changes to Windows", [3] and the new kernel architecture team would aim to improve software engineering practices both within the Windows kernel itself, as well as with the other components of Windows. To do this, every component of the operating system (consisting of about 5,500 distinct files in late 2005, [3] during the development of Windows Vista) was assigned a "layer number" that represents its dependency position relative to other components, with lower-numbered components being closer to the core of the operating system, and higher numbers representing high-level components. With this information, the core architecture team began to address a range of issues where low-level components were reliant on high-level components, and finding ways to resolve those dependencies. In doing so, a number of new options for creating focused sub-sets of Windows for different purposes became possible.

Larry Osterman, a developer on the Windows Audio team at Microsoft, described the effort in a November 2008 posting to the Channel 9 discussion forum as, "refactoring code along architectural layering lines, and it's the natural extension of what we've been doing since the Longhorn Reset (so arguably Vista was the first "minwin" based operating system)." [4] Brandon Paddock, also a Windows developer, expanded on this, saying, "It's more like a set of guidelines and principles, kind of like how SDL (Secure Development Lifecycle) guides our development process toward more secure software, the MinWin effort guides Windows components to fit into a more clearly and well-defined layered architecture." [5]

Releases

While Microsoft has stated that MinWin will not be released as a stand-alone product, the various iterations of MinWin have shipped in every Windows operating system release since Windows Vista.

Windows Vista

The first use of the term "MinWin" by Microsoft was in 2003 during the development of Windows Vista, known at the time by its codename, Longhorn. MinWin was described at the time as consisting of approximately 95% of the total Longhorn code base, [6] with the additions for each edition of Longhorn layered on top of that. While the name MinWin was never used as part of Windows Vista's marketing efforts or in presentations to developers or IT professionals, some of the kernel architecture team's componentization and refactoring work was shipped with Windows Vista.

Windows Server 2008

One of Microsoft's goals for Windows Server 2008 was to produce a variant with a sub-set of the entire Windows operating system that contains enough components to run a number of common server roles, such as Active Directory, Microsoft DNS Server, DHCP Server, and Internet Information Services. During its development in 2005 and 2006, this installation option was internally called "MinWin", [7] and sometimes externally "Server Foundation", [8] before its final name of Server Core was chosen. By the time Server Core was ready to be shipped with Windows Server 2008, however, the term "MinWin" had changed to describe a much smaller set of components, and its focus and intent had shifted from being a large sub-set of the complete Windows operating system with some high-level components removed, to being a small, self-contained operating system that has no dependencies on higher-level components.

Andrew Mason, the program manager at Microsoft responsible for Windows Server Core, explained in a February 2008 interview for TechNet that Windows Server 2008 (both the full installation, as well as Server Core) is built on top of this smaller set of components. [9] In this release, MinWin is "the definition of the lowest-level pieces of the operating system", including Windows kernel, the hardware abstraction layer, file system and networking support. Other parts commonly considered part of the core operating system, such as the event logs, performance counters, Windows Management Instrumentation, are part of Server Core.

Windows 7

In October 2007, Eric Traut, a developer at Microsoft, demonstrated a self-contained MinWin system, made up of about 100 files, on which a basic HTTP server was running. [10] Traut noted that MinWin takes up about 25 MB on disk and has a working set (memory usage) of 40 MB. It lacked a graphical user interface and is interfaced using a full-screen command line interface. Traut explained during the demo that MinWin would not be offered as a stand-alone product, but would instead be used as the basis for future operating system releases such as Windows 7. [11]

Several months after Traut's demonstration, some confusion arose from an interview by Ina Fried of CNET's News.com with Steven Sinofsky, the vice-president of Windows engineering at Microsoft. Sinofsky described the Windows 7 kernel as a further evolution of the Windows Server 2008 kernel, itself an evolution of the Windows Vista kernel. [12] This was interpreted by web sites such as Slashdot [13] to mean that Windows 7 would not include MinWin. Mark Russinovich suggested that some of the confusion surrounding MinWin may be related to the imprecise use of the word "kernel"; [14] MinWin is not, in and of itself a kernel, but rather a set of components that includes both the Windows NT Executive and several other components that Russinovich has described as "Cutler's NT". [15]

Windows Server 2016

In Windows Server 2016, Nano Server is an option without the 32-bit compatibility layer or graphics.

See also

Related Research Articles

Microsoft Windows was announced by Bill Gates on November 10, 1983. Microsoft introduced Windows as a graphical user interface for MS-DOS, which had been introduced two years earlier. The product line evolved in the 1990s from an operating environment into a fully complete, modern operating system over two lines of development, each with their own separate codebase.

Microsoft Windows, commonly referred to as Windows, is a group of several proprietary graphical operating system families, all of which are developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. Active Microsoft Windows families include Windows NT and Windows IoT; these may encompass subfamilies,. Defunct Microsoft Windows families include Windows 9x, Windows Mobile and Windows Phone.

The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces (APIs) available in the Microsoft Windows operating systems. The name Windows API collectively refers to several different platform implementations that are often referred to by their own names ; see the versions section. Almost all Windows programs interact with the Windows API. On the Windows NT line of operating systems, a small number use the Native API.

Windowing system Software that manages separately different parts of display screens

In computing, a windowing system is software that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP paradigm for a user interface.

NTLDR is the boot loader for all releases of Windows NT operating system up to and including Windows XP and Windows Server 2003. NTLDR is typically run from the primary storage device, but it can also run from portable storage devices such as a CD-ROM, USB flash drive, or floppy disk. NTLDR can also load a non NT-based operating system given the appropriate boot sector in a file.

Windows Management Instrumentation (WMI) consists of a set of extensions to the Windows Driver Model that provides an operating system interface through which instrumented components provide information and notification. WMI is Microsoft's implementation of the Web-Based Enterprise Management (WBEM) and Common Information Model (CIM) standards from the Distributed Management Task Force (DMTF).

Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class C of hardware devices to be accessed through identical interfaces even though C may contain different subclasses of devices that each provide a different hardware interface.

Windows NT 4.0 Pre-emptive, graphical operating system by Microsoft

Windows NT 4.0 is a major release of the Windows NT operating system developed by Microsoft and oriented towards businesses. It was the direct successor to Windows NT 3.51, and was released to manufacturing on July 31, 1996, and was launched to retail on August 24, 1996, one year after the release of Windows 95, and two years before the release of Windows 98. Windows NT 4.0 was and remains a primary business-oriented operating system, and three years after its introduction, it was followed by Windows 2000. Workstation, server and embedded editions were sold, and all editions feature a graphical user interface similar to that of Windows 95, which was superseded by Windows 98 and could still be directly upgraded by either Windows 2000 Professional or Windows Me.

Architecture of Windows NT Overview of the architecture of the Microsoft Windows NT line of operating systems

The architecture of Windows NT, a line of operating systems produced and sold by Microsoft, is a layered design that consists of two main components, user mode and kernel mode. It is a preemptive, reentrant multitasking operating system, which has been designed to work with uniprocessor and symmetrical multiprocessor (SMP)-based computers. To process input/output (I/O) requests, they use packet-driven I/O, which utilizes I/O request packets (IRPs) and asynchronous I/O. Starting with Windows XP, Microsoft began making 64-bit versions of Windows available; before this, there were only 32-bit versions of these operating systems.

Windows Vista Personal computer operating system by Microsoft released in 2007

Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years prior, at the time being the longest time span between successive releases of Microsoft Windows desktop operating systems. Development was completed on November 8, 2006, and over the following three months, it was released in stages to computer hardware and software manufacturers, business customers and retail channels. On January 30, 2007, it was released internationally and was made available for purchase and download from the Windows Marketplace; it is the first release of Windows to be made available through a digital distribution platform.

Windows Server 2008 Server operating system by Microsoft released in 2008

Windows Server 2008 is the fourth release of the Windows Server operating system produced by Microsoft as part of the Windows NT family of the operating systems. It was released to manufacturing on February 4, 2008, and generally to retail on February 27, 2008. Derived from Windows Vista, Windows Server 2008 is the successor of Windows Server 2003, which is derived from the Windows XP codebase, released nearly five years earlier.

The Windows NT booting process is the process by which Windows NT 4.0, Windows 2000, Windows XP and Windows Server 2003 operating systems initialize. In Windows Vista and later, this process has changed significantly; see Windows NT 6 startup process for information about what has changed.

The Microsoft Windows operating system supports a form of shared libraries known as "dynamic-link libraries", which are code libraries that can be used by multiple processes while only one copy is loaded into memory. This article provides an overview of the core libraries that are included with every modern Windows installation, on top of which most Windows applications are built.

The startup process of Windows NT 6 differ from the startup process part of previous versions of Windows.

Client Server Runtime Subsystem, or csrss.exe, is a component of the Windows NT family of operating systems that provides the user mode side of the Win32 subsystem and is included in Windows NT 3.1 and later. Because most of the Win32 subsystem operations have been moved to kernel mode drivers in Windows NT 4 and later, CSRSS is mainly responsible for Win32 console handling and GUI shutdown. It is critical to system operation; therefore, terminating this process will result in system failure. Under normal circumstances, CSRSS cannot be terminated with the taskkill command or with Windows Task Manager, although it is possible in Windows Vista if the Task Manager is run in Administrator mode. On Windows 7 and later, Task Manager will inform the user that terminating the process may result in system failure, and prompt if they want to continue. In Windows NT 4.0 however, terminating CSRSS without the Session Manager Subsystem (SMSS) watching will not crash the system. However in Windows XP, terminating CSRSS without SMSS watching will crash the system due to the critical bit being set in RAM for csrss.exe.

Microsoft Drive Optimizer

Microsoft Drive Optimizer is a utility in Microsoft Windows designed to increase data access speed by rearranging files stored on a disk to occupy contiguous storage locations, a technique called defragmentation. Defragmenting a disk minimizes head travel, which reduces the time it takes to read files from and write files to the disk. As a result of the decreased read and write times, Microsoft Drive Optimizer decreases system startup times for systems starting from magnetic storage devices such as a hard drive. However, defragmentation is not helpful on storage devices such as solid state drives, USB drives or SD cards that use flash memory to increase speeds, as these drives do not use a head. Defragmentation may decrease lifespan for certain technologies, e.g. solid state drives. Microsoft Drive Optimizer was first officially shipped with Windows XP.

Microsoft Windows is the name of several families of computer software operating systems created by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces (GUIs).

Windows NT is a proprietary graphical operating system produced by Microsoft, the first version of which was released on July 27, 1993. It is a processor-independent, multiprocessing and multi-user operating system.

In computing on Microsoft platforms, WoW64 is a subsystem of the Windows operating system capable of running 32-bit applications on 64-bit Windows. It is included in all 64-bit versions of Windows—including Windows XP Professional x64 Edition, IA-64 and x64 versions of Windows Server 2003, as well as x64 versions of Windows Vista, Windows Server 2008, Windows 7, Windows 8, Windows Server 2012, Windows 8.1, Windows 10, Windows Server 2016, Windows Server 2019, and Windows 11, as well as ARM64 versions of Windows 10, Windows 11 and Windows Server 2022. In Windows Server Server Core, it is an optional component. It is not available in Windows Nano Server variants. WoW64 aims to take care of many of the differences between 32-bit Windows and 64-bit Windows, particularly involving structural changes to Windows itself.

Windows Hardware Error Architecture (WHEA) is an operating system hardware error handling mechanism introduced with Windows Vista SP1 and Windows Server 2008 as a successor to Machine Check Architecture (MCA) on previous versions of Windows. The architecture consists of several software components that interact with the hardware and firmware of a given platform to handle and notify regarding hardware error conditions. Collectively, these components provide: a generic means of discovering errors, a common error report format for those errors, a way of preserving error records, and an error event model based up on Event Tracing for Windows (ETW).

References

  1. Rupert Goodwins (April 25, 2003). "Q&A: Windows Server 2003 kernel guru". ZDNet . Retrieved 2008-11-01.
  2. Michael Cherry (April 14, 2003). "Windows Administration Moves Beyond GUI". Directions On Microsoft. Archived from the original on November 19, 2008. Retrieved 2008-11-01.
  3. 1 2 "Rob Short (and kernel team) - Going deep inside Windows Vista's kernel architecture". Channel 9. Microsoft. December 23, 2005. Retrieved 2008-11-01.
  4. Osterman, Larry (November 13, 2008). "windows 7 != MinWin". Archived from the original on June 15, 2009. Retrieved 2009-02-28.
  5. Paddock, Brandon (November 13, 2008). "windows 7 != MinWin". Archived from the original on June 15, 2009. Retrieved 2009-02-28.
  6. Paul Thurrott (May 2003). "Longhorn Setup and Deployment Strategies". SuperSite For Windows. Archived from the original on 2016-11-13. Retrieved 2012-02-09.
  7. Thurrott, Paul (April 1, 2005). "Longhorn Server Preview". SuperSite for Windows. Archived from the original on November 13, 2016. Retrieved 2012-02-09.
  8. Yaniv Weinberg (2006). "INF 207 - Windows Server Longhorn – End to End Technical Overview". TechEd presentation. Microsoft. Archived from the original on 2012-12-09.
  9. David Tesar (February 24, 2008). "Windows Server 2008 - Server Core PM Andrew Mason". Microsoft. Retrieved 2012-02-09.
  10. Long Zheng (October 19, 2007). "Eric Traut talks (and demos) Windows 7 and MinWin" . Retrieved 2007-10-20.
  11. Mary Jo Foley (October 19, 2007). "Stripped-down 'MinWin' kernel to be at the core of Windows 7 and more". ZDNet. Retrieved 2008-11-01.
  12. Fried, Ina (May 27, 2008). "Windows chief talks '7'". news.com . Retrieved 2008-05-28.
  13. "Slashdot - Windows 7 Won't Have Compact "MinWin" Kernel". May 28, 2008. Retrieved 2008-07-23.
  14. Ed Bott (March 31, 2008). "Is MinWin really the new Windows 7 kernel?" . Retrieved 2008-11-01.
  15. Robert McLaws (October 30, 2008). "Mark Russinovich Explains MinWin Once and For All". windows-now.com. Archived from the original on November 3, 2008. Retrieved 2008-11-01.