Отличие ядра XP от 9х

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

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

Минусы широкой разрядности
Microsoft, проводя агрессивную рекламную компанию, выдает разрядность кода за главное достоинство своих операционных систем. Сначала нам долго и упорно втирали, что Windows 9x - полностью 32-разрядная операционная система. Затем выяснилось, что "в военное время 2+2=5" и Windows NT еще намного более 32-разрядна, чем Windows 9x :)
Действительно, Windows 9x содержит большое количество 16-разрядного кода, оставленного в системе по чисто техническим соображениям. Единственным x86 процессором, тормозящим при выполнении 16-разрядного кода, был и остается Pentium Pro, пользовавшийся большой популярностью у изготовителей серверов и высокопроизводительных (по тем временам) рабочих станций. Современные процессоры (Pentium 4 в частности) выполняют 16- и 32-разрядный код практически с одинаковой скоростью. Причем, 16-разрядный код в силу своей компактности зачастую выполняется даже быстрее! К тому же, он занимает меньше места на диске и в памяти. Другое дело, что 32-разрядный код существенно упрощает программирование. Но поскольку 16-разряные фрагменты кода глубоко зарыты в Windows 9x, никакой разницы между Windows NT и Windows 9x с потребительской точки зрения нет.
Разрядность кода непрерывно растет. Сейчас разрабатываются x86-совместимые процессоры, поддерживающие 64- и 128-разрядные режимы. 16- и 32-разрядный режимы сохранятся только в виде эмуляции и будут жутко тормозить. Естественно, сам по себе 64-разрядный режим не увеличивает скорости обработки данных, и, по большому счету, это просто хитрый маркетинговый трюк. Но нам, конечным пользователям, от этого не легче! Windows 9x будет крайне неэффективна на таких машинах, а ее перенос потребует чудовищных и бессмысленных трудозатрат. Перенести Windows NT гораздо проще, и Microsoft действительно ее переносит (или во всяком случае пытается это сделать).

Полнота поддержки Win32 API
Программный интерфейс Windows 3.1 был невероятно убог и противоречив. Поэтому группе разработчиков Windows 9x было поручено создать принципиально новый API, учитывающий горький опыт предыдущего API и призванный ликвидировать его слабые места. От разработчиков Windows NT требовалось обеспечить обратную совместимость с win32 API (именно такое название получил новый интерфейс), на уровне одной из подсистем времени выполнения.
Поначалу это никого особенно не взволновало, поскольку Windows NT ориентировалась преимущественно на OS/2-приложения, win32 долгое время оставался побочным проектом. Однако со смертью OS/2 и феерическим взлетом Windows 3.1 все изменилось и задача совместимости с Windows 9x.
Команда разработчиков Windows NT существенно переработала программный интерфейс, добавив к нему множество функций, которых не было и не могло быть в рамках Windows 9x. Какое-то время разработчики пытались найти компромисс, но потом поняли, что это бесполезно. И, махнув рукой, установили на место тех функций, которые они не смогли реализовать, своеобразные "заглушки", всегда возвращающие ошибку выполнения :). То есть формально функция есть, но толку от нее меньше, чем от нарисованного очага (вспомните Буратино). Но это еще что! Некоторые функции в Windows 9x ведут себя иначе, чем в Windows NT. Например, в Windows NT функция CreateFile может открывать не только файл, но и устройство (скажем, физический диск), что делает ее
сильно похожей на UNIX. К сожалению, Windows 9x таких шуток не понимает, и подобные программы на ней неработоспособны. Но программисты не могут позволить себе роскошь создавать программы, работающие только на Windows NT, потому все преимущества последней до сих пор остаются невостребованными!
Массовый переход на Windows XP должен разрешить эту ситуацию и, когда, наконец, Windows 9x умрет, программисты всего мира вздохнут с облегчением. Так как подгонять свои продукты под две линейки принципиально различных операционных систем никому не в кайф.
Но API - всего лишь обертка вокруг функций ядра. Именно ядро заправляет памятью, процессами, файлами и потоками. Именно ядро ограничивает возможности прикладного интерфейса. И эти ограничения без переделки ядра никак не исправить.

Многопроцессорность
Во времена создания Windows 9x никто и подумать не мог, что многопроцессорные компьютеры придут на рабочий стол. Поэтому, сколько процессоров ни было бы установлено, Windows 9x всегда задействует лишь один. Ну, не поддерживает она многопроцессорность, хоть ты тресни!
А вот в Windows NT поддержка многопроцессорности была заложена изначально. Разделение процессорных ресурсов происходит на уровне потоков. Серверные приложения, обрабатывающие каждое сетевое подключение в отдельном потоке, линейно увеличивают производительность системы в зависимости от количества процессоров (почти линейно - необходимо учесть накладные расходы на межпроцессорное взаимодействие). Офисные и игровые же компьютеры практически не имеют приложений, реально нуждающихся в многопроцессорности. К тому же, Pentium-4 полноценным "многопроцессором" очевидно не является с Hyper-Threading и обеспечивает мизерный прирост производительности.

Поддержка оборудования
Ядро Windows 9x непосредственно не решает вопросов, связанных с поддержкой оборудования, и перекладывает эту задачу на устанавливаемые драйвера. Напротив, в Windows XP первичные драйвера встроены в само ядро, автоматически или вручную выбираемое на стадии инсталляции операционной системы. Причем каждое ядро использует свой формат дерева устройств, поэтому о полной совместимости можно только мечтать.
Аппаратная конфигурация Windows 9x может быть изменена в любой момент. В худшем случае это потребует перезагрузки (иногда нескольких перезагрузок), но не более того. Windows XP в подобных случаях зачастую приходится переустанавливать целиком. И дело вовсе не в кривых руках. Это дефект в мозгах проектировщиков системы!
Частая смена оборудования на тех, у кого стоит Windows NT, действует угнетающе (никому не понравится переустанавливать операционную систему по несколько раз в день), и потому многие из них предпочитают Windows 9x. К сожалению, ее поддержка уже давно прекращена, и далеко не все современное оборудование имеет драйвера, предназначенные для Windows 9x. С течением времени ситуация будет только ухудшаться. В Windows NT 4.0 Plug & Play менеджер представляет собой обыкновенный драйвер, но, начиная с Windows 2000, он встроен в ядро, и ты вынужден его использовать независимо от того, хочешь ты этого или нет. Система деградирует прямо на глазах, разваливаясь под собственной тяжестью...

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

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

<<< Назад, к списку

Сайт управляется системой uCoz