информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsАтака на InternetSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[Win32] Почему NT медленнее 98? ИМХО: 11.04.02 15:00  Число просмотров: 1048
Автор: Idkfa Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> В NT каждый процесс имеет свою копию системных длл.

Почему ты так думаешь?

> Попутный вопрос: по 95 есть по крайней мере 2 хорошие
> книги: "Неофициальная Win95" и "Win95 изнутри", есть ли что
> нить подобное по NT?

Коберниченко. Недокументированные возможности WindowsNT
<programming>
[Win32] Почему NT медленнее 98? ИМХО: 11.04.02 13:31  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
в 98 все длл общие. В NT каждый процесс имеет свою копию системных длл. Получается: маленькая прога и к ней вагон длл - время тратится на свопинг. В 98 на свопинг длл время не тратится. Это хорошо согласуется с практикой: ничто так не повышает быстродействие, как увеличение памяти.

Это так, или есть еще причины?

Попутный вопрос: по 95 есть по крайней мере 2 хорошие книги: "Неофициальная Win95" и "Win95 изнутри", есть ли что нить подобное по NT?
[Win32] Почему NT медленнее 98? ИМХО: 12.04.02 12:14  
Автор: NudleS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> в 98 все длл общие. В NT каждый процесс имеет свою копию
> системных длл. Получается: маленькая прога и к ней вагон
> длл - время тратится на свопинг. В 98 на свопинг длл время
> не тратится. Это хорошо согласуется с практикой: ничто так
> не повышает быстродействие, как увеличение памяти.
>
> Это так, или есть еще причины?
> win 98 vsegda budet bistree, tak kak NT dobavljaet eshe nemerenno setevix bibliotek v reestr.
> Попутный вопрос: по 95 есть по крайней мере 2 хорошие
> книги: "Неофициальная Win95" и "Win95 изнутри", есть ли что
> нить подобное по NT?
Est'. Moja lubimaja - "Windows NT ne dlja vsex". O4en' daje ni4ego kniga. V etom je izdanii i win 95 est' ("Windows 95 ne dlja vsex")
В плане книг: меня интересует 12.04.02 04:19  
Автор: Zef <Alloo Zef> Статус: Elderman
Отредактировано 12.04.02 04:21  Количество правок: 1
<"чистая" ссылка>
процесс загрузки системы и функционирование ядра (типа, как это описано в"Неофициальной 95")
В плане книг: меня интересует 12.04.02 16:48  
Автор: SerpentFly <Vadim Smirnov> Статус: Member
<"чистая" ссылка>
> процесс загрузки системы и функционирование ядра (типа, как
> это описано в"Неофициальной 95")

Ужели с первого раза не понял? Я же привел список книжек, из них наиболее информативен в этом плане Russinovich&Solomon "Inside Windows 2000", но и остальные стоят своих денег...
[Win32] Почему NT медленнее 98? ИМХО: 11.04.02 15:32  
Автор: SerpentFly <Vadim Smirnov> Статус: Member
<"чистая" ссылка>
> в 98 все длл общие. В NT каждый процесс имеет свою копию
> системных длл. Получается: маленькая прога и к ней вагон
> длл - время тратится на свопинг. В 98 на свопинг длл время
> не тратится. Это хорошо согласуется с практикой: ничто так
> не повышает быстродействие, как увеличение памяти.
>
> Это так, или есть еще причины?

Нет, не так. Например страницы кода DLL (и shared data sections) физически разделяются между процессами, хотя и могут быть отмапены на различные виртуальные адреса в базовом пространстве процесса (например в случае необходимости relocations). Исключение составляют попытки записи в страницы кода DLL (VirtualProtect and ect..), тогда для процесса создаются локальные копии модифицированных страниц.

NT действительно более ресурсоемкая система чем 9х/ME, ядро 9х/ME написано преимущественно на ассемблере, занимает мало места и быстро работает. Ядро NT значительно сложнее, написано преимущественно на С (что облегчает перенос системы на другие платформы) и соответственно более медленное и тяжелое. Тут уже приходиться выбирать между функциональностью, стабильностью, безопасностью (не стоит правда забывать про такие дырки как недавно появившийся DebPloit) и ресурсоемкостью. Есть множество и намного менее легких и быстрых систем чем 9x/ME, смотря для чего тебе нужна система.

>
> Попутный вопрос: по 95 есть по крайней мере 2 хорошие
> книги: "Неофициальная Win95" и "Win95 изнутри", есть ли что
> нить подобное по NT?

На русском кроме Коберниченко и Хастлер (старые книжки вряд ли найдешь):
Руссинович&Соломон "Inside Windows 2000" (перевод издан издательством Питер)
Шрайбер "Недокументированные возможности Windows 2000" (перевод издан издательством Питер)
Неббет "Справочник по базовым функциям API Windows NT/2000" (перевод издан издательством Вильямс)

На английском:

Prasad Dabak & Co "Undocumented Windows NT"
+
много книг по написанию драйверов, которые в той или иной степени касаются ядра NT, смотри www.amazon.com
Замечательный ответ. :-)) Жаль "антиштраффов" (плюсов) ставить нельзя. :) 12.04.02 17:17  
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
<"чистая" ссылка>
Не согласен! 13.04.02 07:51  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
Сказать, что 95 быстрее потому, что она писана на АСМе - ни чего не сказать.
Во первых: сам Микрософт признает, что для 95/98 использует специальный компилер С.
Во вторых: Если на АСМе, то должна быть надежней, чем NT
В третьих: NT "стройней" и "аккуратней", а в 95/8 все работает через "прослойку" 16бит кода.
В четвертых: утверждение о том, что NT создает для каждого процесса отдельную копию ядра я взял не с потолка. Я его читал, и не раз в различной литературе. Правда, не вспомню, где, иначе бы показал.
И в пятых: это подтверждается тем, что NT при переключении задач бешено долбит диск, даже при 128метрах мозгов.
У меня двойная инсталляция NT/98 на двух совершенно одинаковых дисках.
NT, правда на NTFS (она, проверенно существенно медленней FAT32), но 98 при переключении задач диск не трахает!
Не согласен! 14.04.02 09:01  
Автор: SerpentFly <Vadim Smirnov> Статус: Member
<"чистая" ссылка>
> Сказать, что 95 быстрее потому, что она писана на АСМе - ни
> чего не сказать.
> Во первых: сам Микрософт признает, что для 95/98 использует
> специальный компилер С.

Можно взглянуть на это признание?

> Во вторых: Если на АСМе, то должна быть надежней, чем NT

Ну это вы батенька загоняетесь, с каких это пор большие проекты на асме стали надежней? В море кода куда проще утонуть... Да я и не утверждаю что вся 95 написана на асме, но ее существенная часть без сомнения... Например, при написани VxD без асма не обойтись, если только не использовать библиотеки типа VToolsD.

> В третьих: NT "стройней" и "аккуратней", а в 95/8 все
> работает через "прослойку" 16бит кода.

Прослойка существует на уровне user-mode DLL-лей (ля поддержки Win3.11 бинарников), ядро уже давным давно 32-битное (оговорюсь, VxD могут содержать куски 16 битного кода, но это скорее исключение чем правило), а начиная с Win98 еще и поддерживает WDM драйвера, фактически пронаследованные от NT... Хотя лично мне никогда не нравилась эта гибридная ось, слава богу MS вроде как поставил крест на этой ветке...

> В четвертых: утверждение о том, что NT создает для каждого
> процесса отдельную копию ядра я взял не с потолка. Я его
> читал, и не раз в различной литературе. Правда, не вспомню,
> где, иначе бы показал.

Молодец, возьми с полки пирожок... Что ты имеешь ввиду под ядром в данном случае? ntoskrnl.exe? Если его то извини, он один для системы... Если kernel32.dll, тогда ты погорячился назвав его ядром, эта DLL в основном обертка вокруг сервисов ntdll.dll, которая в свою очередь в соновнм просто gate к сервисам ntoskrnl.exe. Но даже для DLL система использует одни и те же страницы физической памяти для всех процессов, если только один из этих процессов не попытается записать что-то в эти страницы (тогда работает механизм COPY-ON-WRITE описанный в предыдущем постинге). Так что внимательнее нужно читать книжки дорогой товарищ...

> И в пятых: это подтверждается тем, что NT при переключении
> задач бешено долбит диск, даже при 128метрах мозгов.

А кто сказал что это много? Для NT 4.0 положим достаточно, а опыт использования 2000/XP показывает что желательно иметь не менее 256 метров. Ядро, как я уже упоминал у NT значительно более громоздкое чем у 9x/ME и ему нужно место чтобы разместиться... А если ты еще и сайс поставил, который выключает спопирование для неиспользуемых секций kernel-mode компонент (в том числе и ядра), то обьем необходимой физической памяти еще возрастает...

> У меня двойная инсталляция NT/98 на двух совершенно
> одинаковых дисках.
> NT, правда на NTFS (она, проверенно существенно медленней
> FAT32), но 98 при переключении задач диск не трахает!

Опять же, небольшой факт, сетевые приложения на NT при условии предоставления ей достаточных ресурсов работатю быстрее чем 9x/ME на том же железе, в свое время я тестировал производительность стека... Так что кто реально быстрее вопрос сложный...Плюс 9х/МЕ не использует дополнительных процессоров на SMP системах, только один...
Хотел поспорить, но 14.04.02 10:37  
Автор: Zef <Alloo Zef> Статус: Elderman
<"чистая" ссылка>
но уж очень у тя классно про структуру ядра, и опять же сайс у меня естессно воткнут, а без него я ее и не запускал...
Интересно, откуда ты это все почерпнул? Тех книжек, которые ты мне рекомендовал я пока не нашел, кроме того, меня интересует именно NT4, а не 2к, в которой слишьком много прибамбасов.

Насчет 98 и 32 бит ядра, эт ты загнул... Я сейчас как-раз долбаю дисковую подсистему, так вот все дисковые сервисы (для совместимости) в ней работают через int21 и 16код. Сам трейсил!

Молодец, возьми с полки пирожок... Что ты имеешь ввиду под
> ядром в данном случае? ntoskrnl.exe? Если его то извини, он
> один для системы... Если kernel32.dll, тогда ты погорячился
> назвав его ядром, эта DLL в основном обертка вокруг
> сервисов ntdll.dll, которая в свою очередь в соновнм просто
> gate к сервисам ntoskrnl.exe. Но даже для DLL система
> использует одни и те же страницы физической памяти для всех
> процессов, если только один из этих процессов не попытается
> записать что-то в эти страницы (тогда работает механизм
> COPY-ON-WRITE описанный в предыдущем постинге). Так что
> внимательнее нужно читать книжки дорогой товарищ...
>
А если ты еще и сайс поставил,
> который выключает спопирование для неиспользуемых секций
> kernel-mode компонент (в том числе и ядра), то обьем
> необходимой физической памяти еще возрастает...
>
Хотел поспорить, но 15.04.02 08:30  
Автор: SerpentFly <Vadim Smirnov> Статус: Member
<"чистая" ссылка>
> Интересно, откуда ты это все почерпнул? Тех книжек, которые
> ты мне рекомендовал я пока не нашел, кроме того, меня
> интересует именно NT4, а не 2к, в которой слишьком много
> прибамбасов.

Те книги что я перечислил (на русском языке) можешь заказать с сайта издательтва Питер (www.piter-press.ru). Что до Win2k и NT4, то принципы все те же, не все конечно что есть в 2000 есть в НТ, но в целом архитектура сохранена, только расширена...


> Насчет 98 и 32 бит ядра, эт ты загнул... Я сейчас как-раз
> долбаю дисковую подсистему, так вот все дисковые сервисы
> (для совместимости) в ней работают через int21 и 16код. Сам
> трейсил!

Опять что ты понимаешь под ядром? Я под ядром имею ввиду VxD модули и драйвера устройств, последние в 98 в основном WDM драйвера и естественно 32 разрядные, первые содержат 16-битный код (причем далеко не все), но основная масса кода все-таки 32-битная. Поэтому мне кажется, что называть ядро 16 разрядным ты поспешил. Ну а что касается kernel32.dll, то то что большинство ее вызовов переадресуются к 16-битной kernel.dll известный факт, обратная совместимость и все такое... Кстати тоже далеко не положительным образом сказывается на производительности...

Резюмируя, каждая система предназначена для своих нужд, на хорошем железе лучше будет работать NT/2000/XP, на плохом 9х/ME...
Читай книгу 14.04.02 19:45  
Автор: Бяша <Biasha> Статус: Member
<"чистая" ссылка>
> но уж очень у тя классно про структуру ядра, и опять же
> сайс у меня естессно воткнут, а без него я ее и не
> запускал...
> Интересно, откуда ты это все почерпнул? Тех книжек, которые
> ты мне рекомендовал я пока не нашел, кроме того, меня
> интересует именно NT4, а не 2к, в которой слишьком много
> прибамбасов.
Вот это всё описано в Руссиновиче&Соломоне "Внутреннее устройство Microsoft Windows 2000" ("Inside for MS Win2K") третье издание, о котором здесь уже говорили, и не раз :)
Для нт 4 - эта же книжка только первое издание и by Хелен Кастер.
Хотя советую читать для 2000 - принципы не так уж и изменились, а описано всё лучше в третьем издании.
К тому же ты не найдёшь для нт 4 - на русском она в 95/96 издавалась последний раз, кажется. А для 2000 - несколько месяцев назад она ещё везде была, сейчас не знаю.

P.S.
А кто-то может рассказать что с Хелен случилось - чего так вышло?
[Win32] Почему NT медленнее 98? ИМХО: 11.04.02 15:00  
Автор: Idkfa Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> В NT каждый процесс имеет свою копию системных длл.

Почему ты так думаешь?

> Попутный вопрос: по 95 есть по крайней мере 2 хорошие
> книги: "Неофициальная Win95" и "Win95 изнутри", есть ли что
> нить подобное по NT?

Коберниченко. Недокументированные возможности WindowsNT
Странно 11.04.02 13:50  
Автор: PS <PS> Статус: Elderman
<"чистая" ссылка>
На сколько мне извесно код dll никогда не дублируется. В том их и прелесть, и отличие от статических библиотек - не надо держать в памяти один и тот же код.

> в 98 все длл общие. В NT каждый процесс имеет свою копию
> системных длл.
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach