Существует множество
приятных особенностей BOOT.INI исключительно полезных для разработчиков
драйверов и программ под NT,т.е. существует возможность протестировать
"сырые" продукты в разных конфигурациях системы на одной машине.
Например,ограничение памяти
в NT может оказаться чрезвычайно полезным для выяснения минимальных требований
к системе для устойчивой работы программы или драйвера, а лимитирование числа
процессоров вполне может служить для оценки маштабируемости системы. Здесь
собран список текущих возможностей BOOT.INI-самых полезных:). Новые опции
появившиеся в Win2K (NT 5) сответствующе описанны -"(только для NT
5.0)",и присутствуют в некоторых Beta билдах,но могут и отсутствовать в
final release.
/NOGUIBOOT - (только для NT 5.0) Когда эта
опция описана VGA video драйвер,ответственный за представление графики в течении
процесса загрузки Win2K's не инициализируется. Вообще этот драйвер используется
для отображения на экране монитора процесса загрузки ,и как правило для
отображения Blue Screen-кошмара любого НТшника,таким образом включение этой
опции в BOOT.INI сделает все это невозможным.
/FASTDETECT - (только для NT 5.0) Если у вас
стоит две ОС- NT 4.0 и Win2K (NT 5.0) ,то при процессе загрузки используется
NTDETECT.COM от Win2000. В Win2K инициализация параллельных и serial устройств
осуществляется с помощью plug-and-play драйверов устройств,но NT 4.0 в этом
смысле полностью полагается на NTDETECT.COM.Таким образом, определяя параметр
FASTDETECT , как раз в том месте , где NTDETECT производит инициализацию
оборудования при загрузке NT 4.0,мы заставляем NTDETECT пропустить эти вещи при
загрузке Win2K. Установка Win2K автоматически распознает наличие второй
установленной системы и прописывает этот параметр в BOOT.INI.
/BOOTLOG
-(только для NT 5.0) определение этого ключа позволяет NT записать
последовательность загруки в лог файл в %SystemRoot%NTBTLOG.TXT. В лог файле
описывается детально какой драйвер загружен или не загружен при загрузке ОС.
Например,что-товродеэтого:
Microsoft (R) Windows NT (R) Version 5.0
Loaded driver WINNTSystem32 toskrnl.exe
Loaded driver WINNTSystem32hal.dll
Loaded driver WINNTSystem32BOOTVID.dll
Loaded driver pci.sys
Loaded driver isapnp.sys
Loaded driver intelide.sys
/SAFEBOOT :(только для NT 5.0) Вам вряд ли
когда-либо придеться описывать этот ключ вручную. Когда вы нажимаете F8 для загрузки
в защищенном режиме NTLDR делает это за вас. Но вы можете определить один из
трех дополнительных ключей: MINIMAL,NETWORK, или DSREPAIR.
MINIMAL и NETWORK отвечают за загрузку ОС в защищенном режиме без и с
поддержкой сети соответственно.При защищенном режиме NT загружает только
драйвера и сервисы, описанные по имени или группе в Minimal или Network ключах
реестра:
HKLMSystemCurrentControlSetControlSafeBoot.
Ключ DSREPAIR (Directory Services Repair) указывает NT ,что необходимо
грузиться в режиме,который восстанавливает Active Directory из backup'а.
Дополнительная опция,которую вы можете определить-
"(ALTERNATESHELL)". Она укказывает NT, какую программу ,описанную в
реестре
HKLMSystemCurrentControlSetSafeBootAlternateShell
использовать в качестве графической оболочки, взамен используемого по умолчанию
Explorer'а.
/NOSERIALMICE -
[COMx | COMx, y, z ...] -отключает обнаружение мыши ,подключенной к
последовательному COM порту (портам)
/PERFMEM - /PERFPAGES - (только для NT 5.0)
Эти ключи вроде не будут поддерживаться в final release Windows 2000, так как
они используются NT для резервирования физической памяти для Basic Block
Testing (BBT). Существует только одно упоминание о BBT ,которое мы смогли найти
на сайте Microsoft: судебное дело США против Microsoft от 2-ого февраля 1999
года. В нем рассказывается о том как Jim Allchin отвечал под присягой на
вопросы по поводу BBT.Он сказал,что BBT- вещь оптимизирующая производительность
системы.Microsoft использует ее в пререлизах,для того чтобы минимизировать
количество страниц памяти. PERFMEM определяет резервирование физической памяти
в MB, а PERFPAGES -количество страниц памяти - они не должны присутствовать
совместно.Место для BBT резервируется в Thread Environment Block (TEB) каждого
потока.На самом деле я так и не понял как конкретно влияет этот параметр на
работу системы:))).
/INTAFFINITY -(только для NT 5.0) Этот новый
ключ определяет использование многопроцессорного HAL (HALMPS.DLL) для
распределения прерываний, например назначение прерывания в многопроцессорной
системе только процессору ,имеющиму высший приоритет.Без этого ключа HAL
обычным образом разрешает всем процессорам получать IRQ.
/MAXPROCSPERCLUSTER - (только для NT 5.0) кажется, что
многопроцессорный HAL в Win2K (HALMPS.DLL) имеет способность к работе с
многопроцессорными системами, которые составлены из кластеров в свою очередь
состоящих из малых мультипроцессорных систем. Например, если Вы имеете
8-процессорную систему , которая составлена из 2 4-процессорных кластеров ,то
ID каждого процессора должен быть определен ориентируемым кластером через HAL.
Размер максимального кластера- 4, и значение по умолчанию - 0 (система не
основана на кластерах).
Пример: /MAXPROCSPERCLUSTER=3.
/TIMERES - (только для NT 5.0) На
многопроцессорном HAL (HALMPS.DLL) эта опция установит разрешающую способность
системного таймера. Параметр -число, в сотнях наносекунд, его значение будет
установлено ближайшим меньшим ,который поддерживает HAL.Заданная по умолчанию
разрешающая способность - 7.8ms.
Пример: /TIMERES=9000 установил бы таймер на разрешение в 98ms.
/YEAR - опция очевидно предназначена для
проверки на соответствие Y2K. Определение этого параметра говорит ядру NT ,что
необходимо игнорировать год , сообщаемый системным таймером компьютера, и
вместо этого использовать,определенный в BOOT.INI. Таким образом, год,
используемый в BOOT.INI воздействует на все программное обеспечения в системе,
включая ядро NT. Пример: /YEAR=2001. Примечание: эта опция доступна только на NT
4.0 с 4 Сервис паком и Windows 2000.
/USE8254 - Этот параметр предназначен для
систем со старым BIOSом .Он говорит NT HAL ,что необходимо использовать 8254
чип таймера в качестве основного.
/MAXMEM - эта опция ограничивает для NT
использование памяти. Число в МБАЙТ. Пример: /MAXMEM:16 ограничил бы NT 16МБ
системной памяти.
/BURNMEMORY - эта опция заставит NT
"забыть" все ограничения относительно указанного объема памяти, типа
/MAXMEM. Значение в МБАЙТ. Пример: /BURNMEMORY=128 сказал бы NT- Отбрось 128МБ
физической памяти на машине как непригодные.
/ONECPU - эта опция указывает NT,
использовать только один ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР мультипроцессорной системы.
/NUMPROC - допускается только число
указанных центральных процессоров . Пример: /NUMPROC=2 на системе с 4
процессорами заставит 2 из этих 4 процессоров простаивать под NT.
/SOS - Заставляет NT выдавать во время
загрузки всю информацию относительно того, какие драйверы загружены ,и
насколько успешно:)
/BASEVIDEO -Заставляет NT использовать
стандартный драйвер VGA в режиме GUI.
/NODEBUG -запрещает использование любой
отладочной информации.
/CRASHDEBUG -загружает отладчик в память,где он
остается до тех пор ,пока не возникнет ошибка ядра.
/DEBUGPORT=COMx -задает COM порт для отладки.
/3GB -этот параметр появился в 3 Сервис
паке для NT 4.0 и существует на всех более поздних update-ах под NT.Этот ключ
поменяет стандартное распределение между пользователем и системой карты
виртуальной адресации NT',то есть пользователь получит в свое распоряжениек 3GB
, а система 1GB. Предоставление большей виртуальной памяти прикладным
программам, интенсивно использующим память подобно серверам баз данных может
улучшать их производительность.Однако,чтобы приложение смогло использовать это
преимущество оно должно быть помечено как приложение 3GB-aware.
/PCILOCK -запрещает Windows NT динамически назначать IO/IRQ
ресурсы на PCI устройства и оставляет конфигурацию BIOS-а.