Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Модератор


Moderator


Сообщения: 8215
Благодарности: 2838

Профиль | Отправить PM | Цитировать


Цитата SOLON7:
а вы можете сделать рабочий аддон »
перед тем, как выкладывать аддон, расскажу немного о том, что я узнал об этих ядрах.

вот классическая информация о том, какие ядра есть в XP http://ru.wikipedia.org/wiki/Ntoskrnl
Цитата:
Различают 4 версии ядра:
ntoskrnl.exe — однопроцессорное ядро Windows;
ntkrnlmp.exe — многопроцессорное ядро Windows;
ntkrnlpa.exe — однопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти (RAM);
ntkrpamp.exe — многопроцессорное ядро Windows с более чем 3 ГБ оперативной памяти (RAM).
вроде всё просто и понятно, 4 файла, 4 варианта в зависимости от количества ядер процессора и памяти.

но в дистрибутиве 6 ядер:

\I386\NTKRNLMP.EX_
\I386\NTOSKRNL.EX_
\I386\SP3.CAB\ntkrnlmp.exe
\I386\SP3.CAB\ntkrnlpa.exe
\I386\SP3.CAB\ntkrpamp.exe
\I386\SP3.CAB\ntoskrnl.exe

4 полных набора ядер есть в SP3.cab, а в папке i386 в виде упакованных файлов 2 ядра для систем RAM<3 Gb

в установленной системе тоже 6 ядер

c:\WINDOWS\system32\ntkrnlpa.exe
c:\WINDOWS\system32\ntoskrnl.exe
c:\WINDOWS\Driver Cache\i386\sp3.cab\ntkrnlmp.exe
c:\WINDOWS\Driver Cache\i386\sp3.cab\ntkrnlpa.exe
c:\WINDOWS\Driver Cache\i386\sp3.cab\ntkrpamp.exe
c:\WINDOWS\Driver Cache\i386\sp3.cab\ntoskrnl.exe

если с ядрами в sp3.cab всё понятно, тот же самый полный набор, который вмессте со всем sp3.cab скопировался из дистрибутива, то почему в system32 только 2 однопроцессорных ядра?
Каким образом происходит загрузка многопроцессорных ядер?

Начать придётся с установки.
После первой перезагрузки начинается графический этап установки. При его загрузке использутся распакованные ядра
\I386\NTKRNLMP.EX_
\I386\NTOSKRNL.EX_
из дистрибутива. На этапе установки оборудования определяется количество процессоров и в зависимости от этого в каталог system32 попадают

на однопроцесорных системах
c:\WINDOWS\system32\ntoskrnl.exe из \I386\NTOSKRNL.EX_
c:\WINDOWS\system32\ntkrnlpa.exe из \I386\SP3.CAB\ntkrnlpa.exe

вот так, весьма затейливо один файл из ex_ , другой из CAB.
т.е. если пропатчит только NTKRNLMP.EX_ NTOSKRNL.EX_ в дистрибутиве, не трогая SP3.CAB то одно ядро будет с изменённой картинкой, а другое — с дефолтной.

на многопроцесорных системах ещё веселее.
во первых файлы в c:\WINDOWS\system32\ на первый взгляд не отличаются от таковых в однопроцесорных, те же ntkrnlpa.exe и ntoskrnl.exe , что и в первом случае.
Но если мы посмотрим вооруженным взглядом в содержимое файлов, то видно, что они не являются копией однопроцессорных, это переименованные многопроцессорные ядра.

Т.е. на этапе установки оборудования \I386\SP3.CAB\ntkrpamp.exe копируется в c:\WINDOWS\system32\ntkrnlpa.exe
а \I386\NTKRNLMP.EX_ (или \I386\SP3.CAB\ntkrnlmp.exe проверить было не начем ) в c:\WINDOWS\system32\ntoskrnl.exe.

ну и собствено резюме:

на живой системе нужно патчить 2 файла
c:\WINDOWS\system32\ntkrnlpa.exe
c:\WINDOWS\system32\ntoskrnl.exe

файлы в c:\WINDOWS\Driver Cache\i386\sp3.cab в загрузке не участвуют, и трогать их не нужно.

в дистрибутиве, если не принимать специальных мер (вроде патчинга на на T13), необходимо патчить все 6 ядер, включая лежащие в SP3.cab, иначе на отдельном сочетании процесоров и количества RAM вполне возможно задействование непропатченых ядер с дефолтными картинками.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:07, 20-04-2009 | #180