пятница, 4 декабря 2009 г.

Что такое MinWin и зачем он нужен

MinWin — это понятие, используемое Microsoft для описания ядра и операционной системы, основные компоненты которых начали разрабатываться одновременно с Windows Vista. Данное понятие впервые использовалось в 2003 для описания примерно 95 % компонентов операционной системы (правда, со временем этот процент снизился). Это самый популярный вариант минималистичной модульной сборки компонентов Windows, который изначально планировалось сделать ядром Windows 7.



Неплохую вводную статью можно посмотреть здесь.

Я смотрю, что каждое упоминание слова «MinWin» (последним отличился Марк Руссинович на PDC 2009) вызывает много вопросов, главный из которых – «что это такое и зачем оно вообще надо?» Попытаюсь ответить с меру своего понимания. Замечу, что свечку над MinWin я не держал, так что считать мои слова истиной в последней инстанции не стоит.

Итак, на данный момент (Windows 7), MinWin – это NT ядро (совершенно обычное, точно такое же, как и на полновесной Windows 7) плюс обвязка из ключевых компонент пользовательского режима и основных драйверов. И все. Полноценные редакции Windows 7, в том числе Server Core, включают всё это плюс множество остальных компонент. С определенной натяжкой можно сказать, что каждая из выпущенных редакций Windows 7 базируется на MinWin. С определенной натяжкой – потому что нельзя превратить тот же Server Core в MinWin просто выкинув все «лишние» библиотеки. MinWin включает в себя дополнительные файлы и настройки.

Основываясь на этой информации уже можно ответить на некоторые из вопросов. Нет, MinWin это не «новое» ядро. Хотя определите что значит «новое» сначала. Ядро Windows 7 – это просто следующая версия ядра Vista. А ядро Vista – это следующая версия ядра W2K3, которое, в свою очередь, – развитие ядра XP.

Также можно понять, почему «маленький» MinWin занимает целых 28MB, хотя тот же Linux можно упаковать на дискету. Задача создателей MinWin заключалась отнюдь не в создании минимальной операционной системы. Их задача состояла в том, чтобы очертить минимальный самодостаточный кусочек Windows, который будет служить базовым строительным блоком для всех редакций системы, включая Datacenter Edition. Именно по этому, кстати, в Windows 7 (а на самом деле в MinWin) появились API sets – виртуальные DLL, позволяющие группировать логически связанные API вне зависимости от того, какая библиотека их на самом деле содержит.

Надо сказать, что 99% работы, проделанной создателями MinWin, осталось за кадром. Плоды их труда станут заметны с выходом следующих версий Windows, если, конечно, все пойдет как планировалось. Основная их заслуга состоит в приведении в порядок зависимостей между базовыми системными компонентами. С этой точки зрения MinWin – это просто демонстрация появившихся возможностей.

Дополнительная ссылка.

Комментариев нет: