Ядро windows те писали

История Windows от NT 3.1 до Vista

В предыдущей статье мы рассмотрели все пользовательские версии Windows вплоть до Millennium — последней версии, построенной на монолитном ядре. В Microsoft отлично понимали, что тянуть дальше ядро десятилетней давности не имеет смысла, писать новое ядро с нуля — долго, и это может повлечь за собой потерю рынка (напомню, что в начале нулевых у Apple был бум как новых Mac, так и новых MacBook), поэтому было принято решение сделать пользовательскую версию Windows на ядре NT, которое уже не один год разрабатывалось для серверных систем.

Windows NT 3 — OS/2 от Microsoft

К моменту выхода Windows 3.0 отношения между IBM и Microsoft были напряженные — первые не могли написать операционную систему под свои ПК без помощи Microsoft, а те, после успеха Windows 3.0, не видели особого смысла помогать IBM писать OS/2. В итоге к 1993 году Microsoft окончательно разорвала отношения с IBM, и вместо общего API «впихнула» в OS/2 собственный, Win32, и назвала получившуюся систему Windows NT 3.

Эта система внешне очень напоминала Windows 3, но вот внутри была абсолютно другой — новое ядро NT 3, поддержка новой на то момент файловой системы NTFS, поддержка графического API OpenGL — в общем, это была кардинально новая система. Для обычных пользователей она подходила слабо, ибо с DOS не дружила, а нужных программ под DOS тогда было много (почти все, вообще говоря). А вот на мощных машинах эта система пришлась очень кстати — ядро NT и файловая система NTFS творили чудеса, и позволяли заниматься обсчетом или же поднимать сетку.

Windows NT 4 — Windows 95 для мощных ПК

Очередная серверная ОС, имевшая интерфейс от Windows 95. Отличалась своей крайней нетребовательностью к ресурсам, но имела огромные проблемы с настройкой и удалением устройств, а так же из-за ошибок в кэше частенько удаляла все NTFS-разделы на IDE-дисках, и восстановить их было невозможно, ибо это была единственная система, которая могла работать с NTFS.

Windows 2000 — Windows NT для обычных пользователей

Предыдущие версии Windows NT были нацелены на серверный и высокопроизводительный сегменты, и в Windows 2000 Microsoft решила поэкспериментировать и выпустить пользовательскую систему на ядре NT 5, почти одновременно с этим для подстраховки выпустив ME на старом монолитном ядре.

Внешне система напоминала Millennium, но внутри, разумеется, все было иначе — была поддержка NTFS 3.0, EFS (файловой системы, позволяющей шифровать данные), наконец-то появился рабочий DirectX, служба каталогов Active Directory и веб-сервер IIS 5.0. И, разумеется, все это требовало серьезных ресурсов, которых не имел рядовой ПК — к примеру, минимальная частота процессора должна быть 233 МГц, требовалось 64 МБ ОЗУ и 2 ГБ на жестком диске. А рекомендуемые системные требования ничуть не отличались от минимальных у Windows 10 сейчас — это 1 ГГц процессор, 1 ГБ ОЗУ и 20 ГБ на диске! Все это привело к тому, что в среде продвинутых пользователей Windows 2000 популярностью пользовалась (по сути ядро от Windows XP, но без всяких «свистелок», и есть поддержка двухядерных процессоров и до 3 ГБ ОЗУ), но достаточно много обычных пользователей вообще не знали о существовании такой системы и думали, что после 98 идет сразу XP.

Windows XP — система, которая будет жить вечно

Пожалуй это первая система, которая не нуждается в представлении и ее как минимум видели все пользователи интернета. Именно в ней Microsoft поняла, что большинству пользователей не особо важны возможности системы — им важно, чтобы она была user friendly. И XP это пользователям дала — помощник-скрепка (или собачка, или маг), красивый цветной GUI (вместо серых окошек), анимации, уведомления, постоянные подсказки — в общем, с системой мог разобраться даже достаточно далекий от ПК человек.

А внутри это была та же Windows 2000 (даже минимальные системные требования особо не поменялись — теперь нужно даже меньше дискового пространства, всего 1.5 ГБ), хотя некоторые изменения были — теперь нормально работает восстановление системы (впервые появившееся в ME), появилось нормальное сглаживание шрифтов (ClearType), возможность быстрой смены пользователя, и, пожалуй, одна из самых важных функций, из-за которой некоторые пользователи продолжают пользоваться XP — это нормальная поддержка почти всех программ, написанных начиная с Windows 95. Так что если вы, сидя на 10ке, хотите без танцев с бубном поиграть в Fallout 2 или Civilization 2 — проще всего поставить через виртуальную машину Windows XP и наслаждаться классикой.

Так же стоит отдельно упомянуть систему Windows XP x64 Professional — система отлично поддерживает многоядерность, ограничения в 4 ГБ ОЗУ нет, практически полностью неуязвима для вирусов (защитные механизмы от Vista, но вот вирусы обманываются на XP и не запускаются, а отдельно вирусы под нее не писали из-за малой распространенности). Игры шли так же, как и на Windows 7 x64, но система при чистом запуске «ела» всего 160 МБ ОЗУ! В общем, это была отличная система для тех, кому нужно было выжать максимальную производительность от ПК, не теряя при этом никаких возможностей. Увы — Microsoft окончили ее поддержку одновременно с х86 версией, так что DirectX 11 и других нужных API под нее нет, так что на данный момент ее ставить смысла нет.

Windows Vista — самая неудачная система от Microsoft

После оглушительного успеха Windows XP и достаточно резкого развития как процессоров, так и видеокарт, Microsoft решила сделать новое ядро NT 6 с огромным заделом на будущее — оно, к слову, эксплуатируется даже сейчас, в Windows 10: Microsoft назвали его NT 10, но по факту оно NT 6.4.

Читайте также:  Как установить flac для windows media player

Разумеется, в Vista появилась пользовательская х64 версия системы, система понимала и 6ядерные Phenom, могла работать и с сотней гигабайт ОЗУ — в общем, эту систему уже можно назвать относительно современной (если не брать игровое применение). Но вот на момент выхода в 2006 году у многих пользователей было, мягко сказать, недоумение: на их ПК с Celeron на 800 МГц и 512 МБ ОЗУ Windows XP, конечно, не летала, но работала достаточно шустро. А вот Vista на таком железе с трудом запускалась и ощутимо тормозила. Более того — если интерфейс XP вполне себе нормально работал на простеньких видеокартах типа Riva TNT, то в Vista добавили новый полупрозрачный интерфейс Aero, который мало того, что требовал поддержки DirectX 9, да и еще нормально работал лишь на игровых видеокартах. Все это привело к тому, что система съедала львиную долю ресурсов среднестатистического ПК тех лет, и многие, попробовав Vista, возвращались обратно на XP.

Так же системой были недовольны и профессиональные пользователи — да, на их Core 2 Duo с 2-3 ГБ ОЗУ и мощной видеокарточкой типа GT 6600 Vista работала быстро, но были проблемы с софтом: на Windows XP без проблем запускался весь зоопарк программ, написанных даже под Windows 95. На Windows Vista толком могли не работать программы и драйвера даже от Windows XP, ибо ядро NT 6 было действительно новым. В итоге на момент выхода системы не было такой прослойки пользователей, которым Vista действительно была нужна, поэтому систему можно считать неудачной.

Но не будем только о плохом — в Vista впервые появилось многое, что мы используем постоянно. К примеру, это режим гибернации, мгновенный поиск по системе, UAC (система контроля учетных записей), поддержка файловой системы exFAT. Так же добавился Защитник Windows, шифрование диска Bitlocker, технология ReadyBoost (использование внешних USB-носителей для свапа), ну и разумеется Windows Shell — новый интерфейс Windows, который без особых серьезных изменений перекочевал и в Windows 7.

В итоге к 2009 году, на момент выхода Windows 7, большинство пользователей продолжали сидеть на Windows XP. Да, за 3 года Vista более-менее привели в порядок, и под нее стали писать драйвера и софт, но все же проблемы с совместимостью были, и многих это отталкивало от установки Vista как основной системы. Ну а про современные ОС (Windows 7, 8, 8.1 и 10) мы поговорим в заключительной части цикла статей об истории Windows.

WNT: правдивая история Windows NT

Поделитесь в соцсетях:

Началось все в 1975 г., когда корпорация Digital Equipment инициировала разработку своей 32-битной платформы VAX.

Руководство этим проектом поручили Катлеру, который уже заработал себе репутацию крепкого системщика, создавая RSX-11M для знаменитых мини-компьютеров PDP-11. В 1977 г. были анонсированы машина VAX-11/780 и операционная система для нее — VMS 1.0. Спустя четыре года Катлеру безумно надоело заниматься «приписыванием» цифр после неизменного префикса из трех букв, и он решил покинуть Digital. Однако функционеры корпорации оказались хитрее: раз уж талантливого разработчика не удается удержать в лоне организации, они решили сымитировать атмосферу стартапа и свободного творчества. Было создано автономное подразделение в Сиэтле, и Катлеру позволили набрать необходимое количество персонала (около 200 человек) непосредственно из сотрудников Digital. Новая структура занялась проектированием процессорной архитектуры и операционной системы под кодовым названием Prism.

Диаграмма развития операционных систем семейства Windows NT

Недолго длился «счастья миг», большие боссы не сумели довести начатое дело до логического завершения, и в 1988 г. Катлер вместе со своими 200 инженерами и программистами оказался на вольных хлебах. Но известный разработчик не остался не у дел: в то время в голове Билла Гейтса созрело решение о необходимости создания серверной ОС, конкурирующей с клонами Unix. Только чтобы заполучить Дэвида Катлера, будущий генеральный архитектор Microsoft согласился нанять 20 бывших инженеров Digital по его выбору. В ноябре 1988 г. команда, включавшая пять выходцев из Digital и одного программиста Microsoft, принялась за дело.

Задача состояла в написании ОС для нового RISC-процессора Intel i860 под кодовым названием N-Ten. Отсюда, кстати, и возникла аббревиатура NT, позднее трактованная маркетологами Microsoft как New Technology. Уже в декабре 1988 г. были готовы первые фрагменты системы. Загвоздка заключалась в том, что i860 существовал лишь на бумаге, поэтому код приходилось тестировать на программном эмуляторе. Разработка велась на «игрушечных», по нынешним меркам, машинах Intel 386 25 MHz с ОЗУ 13 MB и жесткими дисками 110 MB.

Архитектура микроядра, изначально положенная в основу NT, приобрела решающее значение, когда в 1989 г. обнаружилось — «железный» i860 не способен достаточно эффективно исполнять написанный код. Пришлось переориентироваться на MIPS R3000, а затем и на стандартный процессор Intel 386, что было сделано менее чем за год командой, увеличившейся до 28 инженеров.

В 1990 г. произошло важнейшее событие, ставшее ключевым в судьбе NT, — выход и головокружительный успех Windows 3.0. Фактически она стала первой многозадачной ОС Microsoft с приличным графическим интерфейсом, в которой можно было выполнять реальную работу. Именно заимствование данного интерфейса и API предопределили будущее NT. Вначале серверная ОС должна была стать римейком совместного с IBM проекта OS/2 и, соответственно, функционировать с существующими приложениями OS/2. Однако третья версия Windows появилась исключительно вовремя: Редмонд отказался от своих союзников и переориентировал команду разработчиков NT на проектирование Win32 API, сделанного по «образу и подобию» интерфейса Win16. Это обеспечивало столь необходимую преемственность, облегчившую портирование приложений из настольной на серверную платформу.

Группа разработки NT, превратившейся к тому моменту в Windows NT, стала стремительно разрастаться, и вскоре в ней работало около 300 человек. Отказ от ориентации на OS/2 привел к серьезным проблемам во взаимоотношениях между Microsoft и IBM. Официальных заявлений не поступало, просто на одной из межкорпоративных презентаций сотрудники IBM в замешательстве обнаружили, что созданная ОС не имеет никакого отношения к детищу их компании. Тем не менее в состав Windows NT 3.1 (нумерация была «подогнана» к текущей версии 16-разрядной Windows, существовавшей на тот момент) вошла поддержка DOS, Win16, POSIX и OS/2 API в том числе. В июле 1993 г. новая серверная система от Microsoft вышла в свет и начала свой путь.

Читайте также:  Pythonioencoding utf 8 linux

Дальше дело пошло споро: в сентябре 1994 г. выпущена Windows NT 3.5. Предыдущая версия готовилась в лихорадочной спешке, все приходилось кодировать с нуля, и множество функций остались нереализованными. Теперь пришло время подумать об эффективности, быстродействии и… организации какого-то взаимодействия с сетями, построенными на NetWare — абсолютным лидером того времени, доминировавшим на рынке локальных сетей. Если бы в те годы так внимательно относились к вопросам регулирования монополий, как это делается сегодня, возможно, достаточно было бы написать соответствующую кляузу в соответствующую инстанцию. Увы, Microsoft пришлось самостоятельно разбираться в сложившейся ситуации. Novell колебалась: обеспечивать или нет клиентскую поддержку Windows NT. В Редмонде не могли больше ждать — они написали свой клиент NetWare, и он оказался настолько хорош, что его продолжали использовать и после выхода оригинального программного обеспечения от Novell. В мае 1995 г. благодаря архитектуре, основанной на микроядре, появилась специальная «PowerPC-редакция» ОС — Windows NT 3.51. По некоторым данным, ее выпуск был в свое время задержан вследствие неспособности IBM придерживаться плана по выводу этого процессора на рынок. Поэтому эволюция PowerPC-версии зашла несколько дальше, чем Windows NT 3.5, что позволило ей стать основой для следующей версии ОС.

Если до сего момента еще можно было говорить о каком-то сходстве архитектур Windows NT и даже Unix (в чем-то бесконечно далекой, а в чем-то весьма схожей с VMS ОС), то с релизом NT 4.0, который ввел графическую подсистему в ядро, исчез последний повод для подобных рассуждений. По идее, такое решение было абсолютно логичным выводом из печального опыта попытки интеграции в NT популярной оконной среды Windows 95. Вероятно, идея повторения архитектурной модели X Window — Unix — возникла именно из-за первоначальной «серверной ориентации» NT. Однако если собственно с «пересадкой» графической оболочки проблем не возникло, то ее быстродействие в пользовательском режиме (т. е. в виде обычного приложения) оставляло желать лучшего, что абсолютно закономерно — поддерживающая абстрагированное устройство вывода (будь то растровый дисплей, принтер или вообще что угодно) графическая подсистема Windows несоизмеримо сложнее и, соответственно, требовательнее к ресурсам, чем X Window, «понимающая» исключительно растровые дисплеи. Так, в составе ядра Windows NT 4.0, выпущенной в июле 1996 г., появился еще один модуль. Ревизия получила название Shell Update Release (SUR).

Следующим этапом стала Windows NT 5.0, выпущенная на рынке в 2000 г. под названием Windows 2000. Смена «титулов» произошла под влиянием маркетологов и оказалась, в целом, правильным решением, позволившим репозиционировать эту операционную систему. Работа продолжается и по сей день, чему свидетельство выход Windows Server 2003.

Битва за Windows

Проектирование и реализация Windows Server подчинены Марку Луковски (Mark Lucovsky), одному из сторонников подразделения серверных ОС корпорации. Он руководит армией из 5 тыс. разработчиков, причисленных к семи лабораториям. Еще 5 тыс. программистов трудятся на своих рабочих местах в компаниях-партнерах, привнося ежедневно свою лепту в 50 млн. строк итогового кода ОС Windows Server 2003.

Каждый день выполняются полная компиляция и сборка системы для проверки на работоспособность и выявления ошибок. Списки обнаруженных ошибок рассылаются командам разработчиков. Сделанные исправления должны быть заявлены на электронной доске объявлений, что ставит их в очередь на внесение в основную сборку. Серверная ферма, занимающаяся компиляцией системы, постоянно модернизируется, тем не менее, как и много лет назад, полная сборка отнимает 12 ч машинного времени. И это несмотря на разделение колоссального массива кодов на отдельные независимые группы исходных текстов, организованные в древовидные иерархии.

Квинтэссенция процесса разработки — часовые совещания в так называемой «боевой комнате» (War Room), проводимые два или три раза ежедневно (в 9.30, 14.00 и 17.00). Им предшествуют аналогичные мероприятия в локальных «боевых комнатах» рабочих групп в 8.00. На главном совещании обсуждаются исправления обнаруженных ранее ошибок и определяется общее состояние проекта. В последние дни здесь, в основном, искали пути решения важной проблемы — переименования Windows.NET Server 2003 на Windows Server 2003. Тысячи имен в различных модулях, и это — в последний момент перед выпуском системы, что вызвало серьезную головную боль у разработчиков.

На совещании каждая команда должна отчитаться о ходе своей работы, о процессе исправления обнаруженных ошибок и возможных последствиях внесения или невнесения этих поправок. Если проблему не удается решить или ее посчитают недостаточно важной, баг, согласно оригинальной терминологии, «отфутболивается» в финальный релиз. Пропуск утреннего сбора приравнивается к дезертирству.

Сборка начинается каждый день в 16.30 и может быть отложена до 18.00, чтобы после третьего совещания в «боевой комнате» удалось включить в систему последние исправления. Команда не может прийти на совещание без готового решения существующих проблем, иначе им лучше вообще не появляться там. Каждая из семи лабораторий имеет полную копию исходных текстов системы, в которые они вносят свои поправки, компилируют и проверяют на работоспособность. Если все прошло гладко — новый код объединяется с кодом, созданным другими группами в главную сборку. Проблема может заключаться во взаимодействии нового кода, написанного различными группами. Не всегда главная сборка проходит удачно, иногда система оказывается нежизнеспособной. В таком случае, как только обнаруживается модуль-виновник (обычно около трех-четырех утра), писавшие его срочно вызываются на рабочее место и не покидают его вплоть до исправления ошибки. Поэтому программисты должны быть 24 ч в сутки 6 дней в неделю готовы к труду (шестидневка вводится по мере приближения даты выпуска продукта).

Основной принцип, на котором построены финальные стадии тестирования, — использование собственных продуктов в проектном процессе. Как только система достигает «первого уровня» стабильности, она становится основной ОС в рабочих группах. «Второй уровень» считается достигнутым, когда ОС приобретает способность функционировать. Только после этого допускается ее использование в кампусе Microsoft. Так было с файловым сервером под NT, первым использованием его стало хранение исходных текстов Windows NT, так поступили и с первой, и со всеми последующими версиями Active Directory.

Затем продукт передается на тестирование избранным партнерам по программе JDP (Joint Development Partners). Если обнаруживаются ошибки, принимается «волевое решение»: оставить их в системе и сохранить дату старта продаж или перенести дату выпуска и заняться доработками. В последнем случае все результаты аннулируются, и тестирование начинается с нуля.

Гораздо сложнее осуществлять послепродажную поддержку. При выявлении недоработок, «дыр» в безопасности или необходимости добавления новых функций в продукт приходится формировать или локальный патч, или полноценный Service Pack. Поскольку до этого патча или Service Pack уже существовали другие, новый код тестируется на множестве вариантов системы, перебирая все возможные комбинации патчей и Service Pack’ов. Вдобавок, для осуществления полноценной проверки работоспособности корпорация поддерживает отдельные фрагменты своей сети, функционирующие на старых версиях продуктов (например, Windows Server 2000), где можно «обкатать» систему в «полевых условиях».

Как VMS превратилась в WNT

Некоторые остряки в свое время шутили, что если выполнить операцию инкремента (увеличения на единицу) каждой буквы названия катлеровской операционной системы VMS, то получится WNT или Windows NT. Как утверждают профессионалы, это чистая правда. Не предвзятое мнение, базирующееся на факте, что основные архитекторы NT являлись в свое время разработчиками VMS, а объективная реальность.

По сути, NT — воплощение радикально переработанных, реализованных на языке C для достижения лучшей мобильности, архитектурных идей ассемблерного ядра VMS, дополненных соответствующими интерфейсными API и новыми файловой и графической подсистемами. Общность архитектурных решений двух систем весьма велика. Так, у них одинаковые понятия процессов, приоритеты (32-х уровней), управление изменением приоритетов и контроль распределения процессорного времени между ними. Но несмотря на значительное сходство, несомненно, обусловленное предыдущим опытом команды главного архитектора — Катлера, NT изначально создавалась как ориентированная на многопоточную обработку ОС, — одно это «небольшое» отличие позволяет понять степень отдаления NT от «базовой» архитектуры VMS.

Драйверы в обеих ОС работают в рамках стековой модели, каждый слой которой изолирован от других, что позволяет организовывать многоступенчатую схему управления устройствами. Системы допускают своппирование как пользовательских процессов, так и системных, включая драйверы. Похожи и способы представления ресурсов, обе системы рассматривают их как объекты и распоряжаются ими с помощью Object Manager. Безопасность NT, как и положенные в ее основу Discretionary Access Control Lists или DACL, ведет свою родословную от VMS 4.0.

В 1993 г. инженеры Digital, просмотрев спецификации Windows NT, обнаружили ее разительное сходство с экспериментальной ОС Mica, создававшейся в рамках проекта Prism. Откуда такое внимание к продукции Редмонда? Не от хорошей жизни принялись изучать внутренности чужой системы сотрудники Digital. В 1992 г. корпорация попала в затяжное пике, деньги утекали сквозь пальцы, а продажи нового процессора Alpha буксовали. Теперь в поисках спасения боссы компании попытались обратиться за помощью к своему злейшему конкуренту Intel, на что ее президент, Эндрю Гроув (Andrew Grove), ответил отказом. В конце концов пришлось идти на поклон к «Гейтсу Третьему» и просить порт Windows NT под Alpha в обмен на обещание сделать NT, в ущерб VMS, своей основной операционной системой. Однако получив предварительную версию NT, инженеры Digital постепенно поняли, что эта ОС требует существенно больше ОЗУ, чем будет содержать их типичный «пятитысячедолларовый Alpha-ПК». Для массового рынка RISC-станций NT явно не годилась, попытка встать под флаги Microsoft для Digital (как, впрочем, и для большинства других компаний) обернулась потерей времени и денег.

Игра в «найди 10 отличий» между WNT и VMS принесла Digital немалые дивиденды. По одной из версий, опубликованной в те времена в Business Week, вместо того чтобы открыто подать в суд, президент Digital, имея на руках неопровержимые доказательства нарушения прав интеллектуальной собственности, решил получить больше, затратив меньше. Он обратился в Microsoft за разъяснениями, что вылилось в подписание масштабного контракта, по которому Digital становилась основным сетевым интегратором NT. Кроме того, в октябре того же года Редмонд отказался от поддержки в Windows NT обоих конкурирующих с Alpha процессоров: PowerPC и MIPS. К сожалению для руководства Digital, альянс вскоре был разрушен, и статус «NT network installation services for Microsoft» перешел к Hewlett-Packard, которой, впрочем, несколькими годами позже достался и другой тяжкий груз корпорации — ОС VMS.

Несмотря на то что пути NT и VMS разошлись, эти операционные системы продолжили серию своеобразных заимствований. В частности, Windows NT получила поддержку кластеров только в 1997 г., в то время как в VMS она была с 1984 г., еще позже появилась 64-разрядная версия Windows (VMS мигрировала на большую разрядность еще в 1996 г.). С другой стороны, в VMS 7.0 в 1995 г. анонсировали потоки на уровне ядра, а частью VMS 7.2 стали Registry-подобная база данных и глобальный журнал событий, аналогичный соответствующим средствам NT. В свет выходит Windows Server 2003, посмотрим, что будет дальше…

Читайте также:  Дать определение операционной системы windows
Оцените статью