Список ядер, предлагаемый установщиком Windows:
Традиционно Windows считается закрытой системой в архитектуре которой в отличие от Linux изменить ничего не возможно. На самом деле это не так. Ей можно сменить ядро, а главное – повысить этим самым производительность системы.
Существует несколько способов смены ядра, самый лёгкий и удобный – переустановка системы. Когда Windows будет предлагать нажать F6, чтобы установить «особый драйвер SCSI или RAID», надо нажать F5 (идиотизм и маразм полнейший) и выбрать одно из ядер, поставляющихся вместе с WinXP.
Второй способ не очень надёжный. Надо зайти в «диспетчер устройств» и изменить драйвер для системного устройства «компьютер с ACPI» на что-либо иное. Так как ACPI-совместимые и несовместимые ядра используют разные деревья ресурсов, смена может завершится неудачей и Windows откажется загружаться. В этом случае надо загрузиться в LastKnownGood и выбрать стандартный профиль оборудования, после чего произвести восстановление системы.
Наиболее удобный способ – редактирование файла boot.ini. Скопируйте строчку типа multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP Professional" /fastdetect, измените название операционной на что-то типа XP Hacked. После чего добавьте параметры /KERNEL= и /HAL=, указав там пути к нужным файлам. После сохранения и перезагрузки, выберите нужную вам систему-ядро.
Какие же файлы нужны? Если на компьютере не установлено никаких сервиспаков, откройте файл Windows\System32\i386\driver.cab любым архиватором и, руководствуясь таблицами, вытащите файлы, которые начинаются с hal, а так же содержащие kr и nt, поместите их в Windows\system32. Если есть какие-либо сервиспаки, файл driver.cab лучше брать из папки, подобной Windows\!SERVICEPACK1FILES! или какой он там.
Теперь о том какое ядро выбрать. Если вы купили Pentium 4 HT, а до этого стоял Pentium IV, для работы с HT систему надо переустановить… или установить ядро NTKRNLMP.EXE/HALMPS.DLL. Гораздо проще.
Однако, сменой ядра можно добиться и увеличения производительности! Если установить i486-ядро на компьютеры типа Celeron 1000 MHz , то можно заметить, что Windows XP станет работать быстрее. На более мощных компьютерах (от 1700) заметного прироста не будет – там лучше ничего не делать. Тем более, что о функциях ACPI (ждущий режим с отключением кулеров, автоотключение компьютера, 256 прерываний и многое другое) в таком случае можно забыть. «Знатоки» говорят, что выбирая такое ядро можно попрощаться с SIMD, SSE 2, а потеря этих технологий замедляет систему. Это бред полнейший. Ядро же их не исполняет. Другой же вопрос, что должны быть сохранены SIMD/SSE2-регистры при переключении одного мультимедиа-приложения к другому. Дизассемблирование показывает, что и старое ядро использует команду FXSAVE, автоматически сохраняющую все нужные регистры и поэтому волноваться об этом не надо.
Смена ядра не заставит процессор считать быстрее и даже не увеличит пропускную способность шин. Тестовые программы для измерения быстродействия (типа SiSoft Sandra) так же не покажут увеличения производительности.
Почему же выключение ACPI повышает производительность? Отметаем высказывания о том, что это сделано намеренно – в Microsoft работают не такие люди, какими их считают. Дело в другом. В том, что древние ядра обслуживали шины, DMA, прочие системные устройства самостоятельно, современные делают это через ACPI и виртуальные шины. Всё усложнилось (вместо того, чтобы обратиться к конкретному прерыванию, ядро обращается к базе данных, ведь на каждое прерывание в следующую секунду может быть повешено другое устройство), а, следовательно, затормозилось.
Со сменой ядра могут появиться глюки с новейшим оборудованием, требующим то, что описано выше. В то же время могут решиться проблемы с ACPI-ядром, работающем на материнской плате, не полностью поддерживающей ACPI. Например, уберётся треск в колонках, возникающий при прослушивании звука.
А вот теперь обещанные таблицы ядер:
Английское название ядра | Краткое описание | Русское название ядра |
ACPI Multiprocessor PC | ACPI -системы с двухпроцессорной материнской платой и двумя процессорами. | Многопроцессорный компьютер с ACPI |
ACPI Uniprocessor PC | ACPI -системы с двухпроцессорной материнской платой и одним процессором. | Однопроцессорный компьютер с ACPI |
ACPI PC | ACPI -системы с однопроцессорной материнской платой. | Компьютер с ACPI |
MPS Uniprocessor PC | Не ACPI -система с двухпроцессорной материнской платой и одним процессором. | Однопроцессорный компьютер с MPS |
MPS Multiprocessor PC | Не- ACPI -системы с двухпроцессорной материнской платой и двумя процессорами. | Многопроцессорный компьютер с MPS |
Standard PC | Стандартный компьютер без ACPI с однопроцессорной материнской платой. | Стандартный компьютер |
Standard PC with C-Step i486 | Однопроцессорный компьютер с процессором 486, разумеется, без ACPI | Стандартный компьютер i486 степпинг-C |
Компонент ядра | Назначение |
NTOSKRNL.EXE | Исполнительная система для однопроцессорных ПК с памятью <4 ГБ |
NTKRNLMP.EXE | Исполнительная система для многопроцессорных ПК с памятью <4 ГБ |
NTKRNLPA.EXE | Исполнительная система для однопроцессорных ПК с памятью >4 ГБ |
NTKRPAMP.EXE | Исполнительная система для многопроцессорных ПК с памятью >4 ГБ |
HAL.DLL | Стандартный HAL , не ACPI , не APIC |
HAL486C.DLL | HAL для i486 C-Step |
HALAPIC.DLL | Однопроцессорная версия HALMPS . DLL (не ACPI , не APIC ) |
HALAST.DLL | Для симметричных многопроцессорных систем от компании AST |
HALMPS.DLL | Для большинства многопроцессорных систем на базе Intel (не ACPI , не APIC ) |
HALACPI.DLL | Однопроцессорный HAL с поддержкой ACPI , не APIC |
HALAACPI.DLL | Однопроцессорный HAL с поддержкой ACPI и APIC |
HALMACPI.DLL | Многопроцессорный HAL с поддержкой ACPI и APIC |
| NTOSKRNL.EXE | NTKRNLMP.EXE | NTKRNLPA.EXE | NTKRPAMP.EXE |
HAL.DLL | + | - | + | - |
HAL486C.DLL | + | - | - | - |
HALAPIC.DLL | + | - | + | - |
HALAST.DLL | + | + | - | + |
HALMPS.DLL | - | + | - | + |
HALACPI.DLL | + | - | + | - |
HALAACPI.DLL | + | - | + | - |
HALMACPI.DLL | - | + | - | + |