ядерно-нуклонная смесь или чем отличается XP от 9х

крис каперски ака мыщъх, no - email

Windows 98 – самая удачная операционная система, из всех, когда-либо созданных Microsoft . настолько удачная, что даже затруднившая продвижение Windows 2000 и Windows XP . увы, ее поддержка прекращена и переход на Windows XP /2003 неизбежен, даже если мы этого не хотим. говорят, в последние мгновения перед смертью человек вспоминает всю свое прошлое – свои добрые и плохие дела. но операционная система не наделена созданием и она может жить только в наших сердцах. вот и давайте сравним ее ядро с ядром Windows NT , чтобы знать что мы теряем, а что получаем взамен.

Пока поклонники Windows 98 размышляют – стоит ли им переходить на XP или продолжать игнорировать ее существование и впредь, девелоперы во всю штампуют оболочки, разукрашивающие интерфейс Window 98 на любой манер (и, кстати говоря, зачастую намного более симпатичный, чем XP ). Рассуждая о достоинствах и недостатках различных операционных систем, большинство публикаций напирает на пользовательский интерфейс, комплектность штатной поставки и другие непринципиальные характеристики, легко устранимые установкой дополнительного программного обеспечения. Вот только один пример: Windows XP штатно поддерживает NTFS , Windows 98 – нет. Однако, это еще не обозначает, что работа с NTFS под Windows 98 невозможна в принципе. Отнюдь! Существуют реализации NTFS и под Windows 98, взять хотя бы известный драйвер Марка Руссиновича.

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

Во избежание неурядицы, договоримся поднимать под Windows NT всю линейку NT -подобных систем, а именинно – саму Windows NT , Windows 2000, Windows XP и Windows 2003. Соответственно, под Windows 9 x понимается Windows 95, Windows 98, Windows Me .

Операционная система Windows NT проектировалась с размахом и оптимистичной верой в светлое будущее. Тогда – в конце восьмидесятых – будущие виделось за жесткой конкуренцией. Считалось, что процессоров с каждым кодом будет становиться все больше и больше, поэтому, главным критерием выбора операционной системы станет ее переносимость. Феноменальная популярность UNIX объяснялась отнюдь не программистскими качествами (с технической точки зрения архитектура системы была весьма убога и новизной идей совсем не блистала, да не запинают меня ее поклонники – но это истерический факт!), а количеством поддерживаемых платформ. UNIX работала практически везде – от контроллеров лифта до космических кораблей. Программа, написанная для одной платформы, простой перекомпиляцией переносилось на десяток-другой остальных (на самом деле, конечно, требовалось нечто большее, чем простая перекомпиляция, но это уже не суть важно).

Расплатой за переносимость становится падение производительности (под час очень существенное). Windows NT практически целиком написана на языке Си. Ассемблерные строки обнаруживаются лишь в тонком слое абстрагирования от оборудования, содержащего первичные драйвера и аппаратно-зависимые функции. Благодаря этому обстоятельству, Windows NT была портирована на DEC Alpha и несколько других платформ, но долгое время оставалась игнорировалась программисткой общественностью, поскольку адекватных вычислительных мощностей в то время просто не существовало и Windows NT ассоциировалась по меньшей мере с Кадиллаком или Шевролле. В настоящий момент, Windows NT реально работает только на одной платформе – IBM PC , а остальные вымерли за ненадобностью.

Windows 9 x , ориентированная на хлипкие домашние компьютеры, никогда не стремилась к переносимости и оптимизировалась под одну конкретную платформу – IBM PC . Большое количество ассемблерного кода обеспечивает ей нависшую скорость выполнения. Без всякой иронии – Windows 9 x выполняется так быстро, как это только возможно, что особенно хорошо заметно на медленных машинах. С другой стороны, Windows NT содержит ряд прогрессивных алгоритмов по управлению системными ресурсами и на быстрых машинах с достаточным количеством оперативной памяти (от 128 Мбайт и выше) она существенно обгоняет Windows 9x .

Агрессивная рекламная компания, проводимая фирмой Microsoft выдает разрядность кода если не за великое программистское достижение, то за главное достоинство своих операционных систем. Судите сами. Сначала нам долго и упорно втирали, что Windows 9 x самая, что ни на есть полностью 32-разрядная операционная система. Затем выяснилось, что «в военное время значение синуса угла может достигать четырех» и Windows NT еще намного более 32-разрядна, чем Windows 9 x .

Действительно, Windows 9 x содержит большое количество 16-разрядного кода, оставленного в системе по чисто техническим соображением и пошедшего только на благо. Единственным x 86 процессором, тормозящем на выполнении 16-разрядного кода, был и остается Pentium PRO , некогда пользующийся большой популярностью у производителей серверов и высокопроизводительных (по тем временам!) рабочих станций. Современные процессоры (и Pentium -4 в частности) выполняют 16- и 32-разрядный код практически с одинаковой скоростью, причем, 16-разрядный код в силу своей компактности зачастую выполняется даже быстрее! К тому же, он занимает меньше места на диске и в памяти. Другое дело, что 32-разрядный код существенно упрощает программирование, но поскольку 16-разряные фрагменты кода глубоко зарыты в Windows 9 x , никакой разницы между Windows NT и Windows 9 x с потребительской точки зрения нет (причем, к потребителям мы относим не только пользователей, но и прикладных/системных программистов).

Но прогресс не стоит на месте и разрядность кода непрерывно увеличивается. Сейчас активно разрабатываются x 86-совместимые процессоры, поддерживающие 64- и 128-разрядные режимы. 16- и 32-разрядный режимы сохранятся только в виде эмуляции и будут жутко тормозить. Естественно, сам по себе 64-разрядный режим не увеличивает скорости обработки данных и по большому счету это просто хитрый маркетинговый трюк. Но нам-то, конечным пользователям, от этого не легче! Windows 9 x будет крайне неэффективна на таких машинах, а ее перенос потребует чудовищных трудозатрат, в которых никакого смысла нет. Перенести Windows NT гораздо проще и ведь Microsoft действительно ее переносит (ну или во всяком случае пытается это сделать). Сразу же возникает вопрос – какой процент 32-разрядного кода сохранится в 64/128-разрядных версиях Windows NT ?

Программный интерфейс Windows 3.1 был невероятно убог и взаимно противоречив, поэтому группе разработчиков Windows 9 x было поручено разработать принципиально новый API , учитывающий горький опыт предыдущего и призванный ликвидировать его слабые места. От разработчиков Windows NT требовалось обеспечить обратную совместимость с win 32 API (именно такое название получил новый интерфейс), на уровне одной из подсистем времени выполнения. Поначалу это никого особенно не взволновало, поскольку Windows NT ориентировалась преимущественно на OS /2 приложения и win 32 долгое время оставался побочным проектом. Однако, со смертью OS /2 и феерическим взлетом Windows 3.1 все изменилось и задача совместимости с Windows 9 x (а в ее успехе уже никто не сомневался) вышла на передний план.

Дико матерясь и вспоминая всех святых, проклиная Била Гейтса и апеллируя к своему собственному авторитету (который был побольше, чем у проектировщиков win 32 API ), команда разработчиков Windows NT существенно переработала программный интерфейс, добавив к нему множество функций которых не было и не могло быть в рамках Windows 9 x . Какое-то время разработчики последней пытались найти компромисс, но потом поняли, что это бесполезно и, махнув рукой, установили на место тех функций, которые они не смогли реализовать своеобразные «заглушки», всегда возвращающие ошибку выполнения. То есть, формально функция есть, но толку от нее даже меньше, чем от нарисованного очага (помините Буратино?). Но это еще что! Некоторые функции в Windows 9 x ведут себя иначе, чем в Windows NT . Например, в Windows NT функция CreateFile может открывать не только файл, но и устройство (скажем, физический диск), что делает ее сильно похожей на UNIX . К сожалению, Windows 9 x таких шуток не понимает и подобные программы на ней неработоспособны. Но программисты не могут позволить себе роскошь создавать программы, работающие только на Windows NT , и потому все преимущества последней до сих пор остаются невостребованными!

Массовый переход на Windows XP должен разрешить эту ситуацию и когда, наконец, Windows 9 x , умрет, программисты всего мира вздохнут с большим облегчением. Я не имею ничего против Windows 9 x , но подгонять свои продукты под две линейки принципиально различных операционных систем никому не в кайф.

Въедливые читатели могут спросить – а причет тут ядро? Ведь API это же прикладной интерфейс! Ага, щас разбежались! Это всего лишь обертка вокруг функций ядра. Именно ядро заправляет памятью, процессами, файлами и потоками. Именно ядро ограничивает возможности прикладного интерфейса. И эти ограничения без передели ядра никак не исправить.

Во времена создания Windows 9 x никто и подумать не мог, что многопроцессорные компьютеры придут на рабочий стол и потому сколько бы процессоров ни было бы установлено, Windows 9 x всегда задействует лишь один из них. Ну не поддерживает она многопроцессорности, хоть ты тресни!

А вот в Windows NT поддержка многопроцессорности была заложена изначально. Разделение процессорных ресурсов происходит на уровне потоков. Серверные приложения, обрабатывающие каждое сетевое подключение в отдельном потоке, линейно увеличивают производительность системы в зависимости от количества процессоров (ну почти линейно, – необходимо учесть накладные расходы на межпроцессорные взаимодействия). Офисные же и, тем более, игровые компьютеры практически не имеют приложений, реально нуждающихся в многопроцессорности. К тому же, Pentium -4 полноценным «многопроцессором» очевидно не является с Hyper - Threading и обеспечивает мизерный прирост производительности.

Поэтому, переходить на Windows NT только ради одной многопроцессорности, могут лишь оболваненные рекламой чудаки, забывшие о том, что бесплатный сыр бывает только в мышеловке!

Ядро Windows 9 x непосредственно не решает вопросов, связанных с поддержкой оборудования, и перекладывает эту задачу на устанавливаемые драйвера. Напротив, в Windows XP первичные драйвера встроены в само ядро, автоматически или вручную выбираемое на стадии инсталляции операционной системы. Причем, каждое ядро использует свой формат дерева устройств, поэтому о полной совместимости можно только мечтать.

Аппаратная конфигурация Windows 9 x может быть изменена в любой момент. В худшем случае это потребует перезагрузки (иногда нескольких перезагрузок), но не более того. Windows XP в подобных случаях зачастую приходится переустанавливать целиком. И этот вовсе не дефект кривых рук, как некоторые «специалисты» авторитетно говорят. Это дефект в мозгах проектировщиков системы!

Частная смена оборудования на владельцев Windows NT действует угнетающе (кому понравится переустанавливать операционную систему по несколько раз на день?) и потому многие из них предпочитают Windows 9 x . К сожалению, ее поддержка уже давно прекращена и далеко не все современное оборудование имеет драйвера, предназначенные для Windows 9 x . С течением времени ситуация будет только ухудшаться. Причем, никакой надежны, что в последующем Windows NT образумится, переняв лучшие черты своей родственницы, у нас нет. в Windows NT 4.0 Plug & Play менеджер представляет собой обыкновенный драйвер, но начиная с Windows 2000 он встроен в ядро и мы вынуждены его использовать независимо от того хотим это или нет. Можно привести и другие примеры, но и без этого ясно, что ядро Windows NT постепенно превращается в свалку, куда разработчики валят всякую хрень. Система деградирует прямо на глазах, разваливалась под собственной тяжестью…

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

Пока количество потоков невелико, планировщику достаточно согнать их в одну очередь, обрабатываемую в «капиталистическом» порядке (в первую очередь обрабатываются наиболее богатые, тьфу, приоритетные потоки 1)). Как следствие – если правительство не предпринимает никаких координирующих мер – с течением времени богатые все больше богатеют, отнимая ресурсы у остальных, а низко приоритетные потоки могут и вовсе не получить управление.

Планировщик Windows 9 x использует довольно простые алгоритмы распределения процессорного времени, оправдывающие себя только при небольшой численности потоков с идентичным приоритетом. Собственно говоря, редкий офисный пользователь работает более чем с двумя-тремя приложениям одновременно, поэтому на производительность системы качество планирования практически никак не влияет. В реальной жизни, разрыв между Windows 9 x и Windows NT удается заметить только на серверных приложениях.

Главное преимущество Windows NT над Windows 9 x это, бесспорно ее защищенность. Система полностью контролирует доступ ко всем системный ресурсам, что при правильной политике администрирования существенно уменьшает вероятность утечки конфиденциальных данных или их разрушения. Однако, большинству домашних и офисных пользователей просто нечего и не от кого защищать. Да и о какой защите может идти речь, если больше половины установивших Windows NT постоянно входят в систему под Администратором?!

С обывательской точки зрения, Windows 9 x намного более дружелюбна, и демократична, чем Windows NT , которая блокирует прямой доступ к оборудованию, нарушая работоспособность многих MS - DOS программ (да и не только их). К огромной радости геймеров в Windows XP появился эмулятор бластера, вернувший к жизни многие старые игрушки (и DOOM 2 в том числе). Тем не менее, до лучшей игровой платформой на сегодняшний день остается именно Windows 98, поскольку все игры в первую очередь тестируются именно под нее, и никакой гарантии, что игрушка нормально заработает на Windows XP у вас нет, даже если ее создатели претендуют на совместимость.

К тому же следует помнить, что все защиты создаются в первую очередь для честных людей. Увидит такой на двери амбарный замок, подергает-подергает и отойдет. Надолго задержать талантливого взломщика (или бездарного взломщика с огромным ломом) ни один замок не сможет! Право же, не стоит лишать себя всех радостей жизни, устанавливая унылые решетки на окнах и натягивая поверх забора колючую проволоку.




Windows 9x

Windows NT

переносимость

не переносима

переносима

разрядность

16 и 32 разрядный код

32 разрядный код, в перспективе 64- и 128-разрядный

полнота поддержки win 32

поддерживается частично

поддерживается полностью

поддержка многопроцессорности

не поддерживается

поддерживается

качество планирования

на уровне слабого подобия левой руки

между женщиной и правой рукой

поддержка оборудования

поддерживает любое оборудование, для которого только есть драйвера

часть драйверов встроена в ядро и требует переустановки системы для своей замены

защищенность

отсутствует

надежная защита от непредумышленного взлома

У каждого человека свои критерии и предпочтения. Кому-то нравится Windows 98, а кто-то тащиться от Windows XP . Но при всем уважении к обоим системам (особенно к XP , от одного упоминания которой меня сразу в сортир тянет), нельзя не признать, что явных лидеров в этом сравнении нет, и не может быть. Если Windows XP – это Мерседес (Кадиллак, Шеволле), то Windows 98 – Джип или Лендровер.

Microsoft пытается создать из Windows NT универсальную систему, которая бы удовлетворяла всех, что невозможно по определению! Неоднократно высказывалось мнение, что эта фатальная ошибка и она приведет компанию к гибели, особенно после серии дыр, обнаруженных в последних операционных системах. Но не будет злорадствовать, ведь падение Microsoft (если таковое и произойдет) ударит по всей компьютерной индустрии повергнув ее во мрак и хаос. Кстати, вы смотрители фильм Devil ' s Advocate ? Если нет, по посмотрите, рекомендую. Он как раз по теме.

1)
Это прямая противоположность «социалистической» очереди, где все очередники имеют равные права.