MinWin — термин, неформально используемый корпорацией Microsoft для описания ядра и компонентов операционной системы , которые составляют основу выпусков Microsoft Windows, начиная с Windows Vista . Термин впервые был использован в 2003 году для описания приблизительно 95% общих компонентов операционной системы, но со временем стал относиться к значительно меньшей части. Его последняя и наиболее известная вариация представляла собой минималистичный, автономный набор компонентов Windows, поставляемых как часть Windows 7 и Windows Server 2008 R2 .
На протяжении всей истории Microsoft Windows ядро операционной системы, как правило, проектировалось как единый большой, взаимосвязанный набор компонентов. С последующими выпусками набор компонентов, считающихся ядром Microsoft Windows, исчислялся тысячами, с многочисленными зависимостями , которые не позволяли компании выпускать версию Microsoft Windows, которая (например) не включала бы графический пользовательский интерфейс и компоненты печати. Еще больше усложняла ситуацию проблема того, что многие задачи конфигурации можно было выполнить только с помощью графического пользовательского интерфейса.
В интервью в апреле 2003 года, совпавшем с выпуском Windows Server 2003 , Роб Шорт, вице-президент группы Windows Core Technology, объяснил, что создание версии для командной строки будет включать «рассмотрение уровней и того, что доступно на каждом уровне, и как мы можем сделать это намного ближе к тому, что есть у ребят из Linux — иметь только те части, которые вы хотите запустить. Это то, что Linux имеет впереди нас, но мы смотрим на это. У нас будет версия только для командной строки, но будет ли она иметь все функции — это другой вопрос. Многие инструменты зависят от наличия графического интерфейса». [1] Windows Server 2003 рассматривался рецензентами, такими как Майкл Черри из Direction On Microsoft, как система, которая уменьшила зависимость от графических инструментов для настройки операционной системы, [2] но сама операционная система по-прежнему требовала установки полного графического интерфейса, даже на серверах, где он никогда не понадобится.
После выпуска Windows Server 2003 Роб Шорт собрал команду архитекторов ядра в Microsoft с намерением распутать и документировать зависимости в пределах ядра операционной системы. Команда разработчиков ядра поняла, что у них возникли трудности с «предсказанием влияния изменений и внесением широких, межгрупповых изменений в Windows» [3] , и новая команда архитектуры ядра будет стремиться улучшить методы разработки программного обеспечения как в самом ядре Windows, так и в других компонентах Windows. Для этого каждому компоненту операционной системы (состоящей из примерно 5500 отдельных файлов в конце 2005 года [3] во время разработки Windows Vista ) был назначен «номер слоя», который представляет его положение зависимости относительно других компонентов, при этом компоненты с меньшим номером находятся ближе к ядру операционной системы, а более высокие номера представляют компоненты высокого уровня. Обладая этой информацией, команда архитектуры ядра начала решать ряд проблем, в которых компоненты низкого уровня зависят от компонентов высокого уровня, и искать способы разрешения этих зависимостей. При этом стал возможен ряд новых возможностей создания специализированных подмножеств Windows для различных целей.
Ларри Остерман, разработчик из команды Windows Audio в Microsoft, описал эти усилия в сообщении, опубликованном в ноябре 2008 года на форуме обсуждения Channel 9 , как «рефакторинг кода в соответствии с архитектурными линиями слоев, и это естественное продолжение того, что мы делали со времен Longhorn Reset (так что, возможно, Vista была первой операционной системой на базе «minwin»)». [4] Брэндон Паддок, также разработчик Windows, расширил это, сказав: «Это больше похоже на набор руководящих принципов и рекомендаций, вроде того, как SDL ( Secure Development Lifecycle ) направляет наш процесс разработки к более безопасному программному обеспечению, усилия MinWin направляют компоненты Windows, чтобы они вписывались в более четкую и хорошо определенную многоуровневую архитектуру». [5]
Хотя Microsoft заявила, что MinWin не будет выпущен как отдельный продукт, различные версии MinWin поставлялись в каждом выпуске операционной системы Windows, начиная с Windows Vista.
Термин «MinWin» впервые был использован корпорацией Microsoft в 2003 году во время разработки Windows Vista , известной в то время под кодовым названием Longhorn. В то время MinWin описывался как состоящий примерно из 95% общей кодовой базы Longhorn, [6] с дополнениями для каждой редакции Longhorn, наложенными поверх этого. Хотя название MinWin никогда не использовалось в рамках маркетинговых усилий Windows Vista или в презентациях для разработчиков или ИТ-специалистов, часть работы по компонентизации и рефакторингу команды по архитектуре ядра была поставлена вместе с Windows Vista.
Одной из целей Microsoft для Windows Server 2008 было создание варианта с подмножеством всей операционной системы Windows, который содержал бы достаточно компонентов для запуска ряда общих ролей сервера, таких как Active Directory , Microsoft DNS Server, DHCP Server и Internet Information Services . Во время разработки в 2005 и 2006 годах этот вариант установки имел внутреннее название «MinWin», [7] а иногда и внешнее название «Server Foundation», [8] до того, как было выбрано его окончательное название Server Core. Однако к тому времени, когда Server Core был готов к поставке с Windows Server 2008, термин «MinWin» изменился, чтобы описывать гораздо меньший набор компонентов, а его фокус и намерение сместились с того, чтобы быть большим подмножеством полной операционной системы Windows с некоторыми удаленными высокоуровневыми компонентами, на то, чтобы быть небольшой, автономной операционной системой, не имеющей зависимостей от высокоуровневых компонентов.
Эндрю Мейсон, менеджер программ в Microsoft, ответственный за Windows Server Core, объяснил в интервью TechNet в феврале 2008 года, что Windows Server 2008 (как полная установка, так и Server Core) построена поверх этого меньшего набора компонентов. [9] В этом выпуске MinWin является «определением самых низкоуровневых частей операционной системы», включая ядро Windows, уровень абстракции оборудования , файловую систему и поддержку сети. Другие части, обычно считающиеся частью основной операционной системы, такие как журналы событий, счетчики производительности, Windows Management Instrumentation , являются частью Server Core.
В октябре 2007 года Эрик Траут , менеджер в Microsoft, продемонстрировал автономную систему MinWin, состоящую из примерно 100 файлов, на которой работал базовый HTTP- сервер. [10] [11] Траут отметил, что MinWin занимает около 25 МБ на диске и имеет рабочий набор (использование памяти) 40 МБ. У него отсутствовал графический пользовательский интерфейс , и он взаимодействовал с помощью полноэкранного интерфейса командной строки . Траут объяснил во время демонстрации, что MinWin не будет предлагаться как отдельный продукт, а вместо этого будет использоваться в качестве основы для будущих выпусков операционных систем, таких как Windows 7. [ 12]
Через несколько месяцев после демонстрации Траута возникла некоторая путаница из-за интервью Ины Фрид из CNET News.com со Стивеном Синофски , вице-президентом по разработке Windows в Microsoft. Синофски описал ядро Windows 7 как дальнейшее развитие ядра Windows Server 2008, которое в свою очередь является развитием ядра Windows Vista. [13] Это было интерпретировано такими веб-сайтами, как Slashdot [14] как то, что Windows 7 не будет включать MinWin. Марк Руссинович предположил, что часть путаницы вокруг MinWin может быть связана с неточным использованием слова «ядро»; [15] MinWin сам по себе не является ядром, а скорее набором компонентов, который включает как Windows NT Executive , так и несколько других компонентов, которые Руссинович описал как « NT Катлера ». [16]
В Windows Server 2016 Nano Server — это вариант без 32-разрядного уровня совместимости или графики.