информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsЗа кого нас держат?Портрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Замечательный ответ. :-)) Жаль "антиштраффов" (плюсов) ставить нельзя. :) 12.04.02 17:17  Число просмотров: 888
Автор: KMiNT21 <http://blog.kmint21.com> Статус: Member
<"чистая" ссылка>
<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-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach