On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

С чего начинается Windows

Ну вот мы и добрались до момента, когда на экране появилась надпись "Starting Windows 98:". Если в этот момент нажать клавишу "F8" или "Ctrl", то вы получите еще одну возможность управлять загрузкой ОС с помощью специального загрузочного меню, состоящего в Windows 9х из восьми пунктов, а в "Миллениуме" - из четырех.

Normal - продолжение загрузки в обычном режиме, если вы попали в загрузочное меню случайно или не хотите выбирать другие опции.
Logged (/BOOTLOG.TXT) - нормальная загрузка с созданием в корневой директории системного диска файла bootlog.txt с подробным протоколом хода загрузки компонентов ОС. Данный режим чрезвычайно полезен при поиске и анализе возможных причин неполадок, в частности, причин зависания ПК на этапах загрузки или выключения. Удобный интерфейс для анализа протокола загрузки дает утилита 
BootLog Analizer(http://www.vision4.dial.pipex.com/).

Safe mode - режим защиты от сбоев, при котором в память загружается минимальный набор сверхнадежных драйверов: драйвер сжатых дисков DoubleSpace или DriveSpace, расширенной памяти himem.sys, файловой системы ifshlp.sys, драйверы клавиатуры, мыши, VGA-адаптера. Директивы из конфигурационных файлов config.sys, autoexec.bat и system.ini игнорируются, а автоматически загружаемые программы не запускаются. Если в этом режиме глюк пропадает, то ищите его причину в тех драйверах и программах, которые работают в фоновом режиме при выборе нормальной загрузки ОС. При некоторых сбоях доступ к управлению ОС можно получить только из этого режима, называемого иногда "безопасным".

Safe mode with network support - тоже загрузка в режиме защиты от сбоев, но еще и с сетевой поддержкой (в Windows 98 / Me отсутствует).

Step-by-step confirmation - пошаговая загрузка системы: вы можете выбирать, какую директиву конфигурационных файлов следует выполнять, а какую надо игнорировать. Драйверы виртуальных устройств в этом режиме загружаются также только после вашего подтверждения. Используется, когда надо выяснить, какая конкретно строка в конфигурационных файлах (например, в autoexec.bat) вызывает сбой, или когда необходимо отменить загрузку проблемного драйвера.

Command prompt only - загрузка системы только до командной строки, без графической оболочки Windows. Фактически при этом вы получаете чистый MS-DOS седьмой версии, входящий в состав Windows 9х. Причем игнорируются не только файлы config.sys и autoexec.bat, но и скрытые в io.sys директивы, подменяющие эти файлы в случае их отсутствия. Загружается только драйвер сжатых дисков, если таковые имеются. Чтобы запустить затем GUI (графический интерфейс) надо набрать на клавиатуре команду win. В "Миллениуме" эта возможность была исключена, и теперь для полноценного выхода в MS-DOS надо создавать загрузочную дискету и грузить ПК уже с нее.

Safe mode command prompt only - режим защиты от сбоев без графической оболочки, в Windows Me опять-таки отсутствует.
Previous version of MS-DOS - загрузка предыдущей версии MS-DOS (плюс Windows 3.11, если она у вас стояла). Для того чтобы этот пункт работал, надо сохранить резервные копии системных файлов MS-DOS 6.22 с расширениями .dos в корневой директории системного диска. ОС при выборе данного пункта их переименует так, чтобы они получили нормальные названия, типа autoexec.bat.

А "виндовые" файлы будут временно переименованы в файлы с расширением .w40 (чтобы не запутаться, после выбора предыдущей ОС не удаляйте никакие файлы в корне системного диска, к тому же порой Windows не может вернуть все имена к исходному состоянию и приходится это делать вручную). Учтите, что если в файле msdos.sys прописалась строка BootMulti=0, то этот пункт отображаться в загрузочном меню не будет. В "Миллениуме" он также не предусмотрен.

После того, как вы выберете режим загрузки или проигнорируете вызов загрузочного меню, загрузится драйвер сжатых дисков dblspace.bin или drvspace.bin, (если вы, конечно, ранее не отключили его автоматическую загрузку в файле msdos.sys и он имеется на диске). Но поскольку сегодня мало уже кто использует сжатие дисков (разве что на старых ноутбуках), то весьма рекомендую сэкономить немного памяти и времени, отказавшись от загрузки этих драйверов, для чего следует задать соответствующий параметр в msdos.sys. 

Далее будут считаны некоторые параметры из системного реестра, проанализированы аппаратные средства компьютера. И если у вас имеется несколько конфигураций оборудования, заданных в свойствах системы на странице "Профили оборудования", вам будет предложено выбрать нужную конфигурацию.

Затем последует исполнение инструкций файла config.sys, второго конфигурационного файла Windows, опять-таки расположенного в корневой директории системного диска. Этот файл предназначен для задания некоторых ключевых системных параметров и загрузки драйверов реального режима. Он также является обычным текстовым файлом, поэтому для его редактирования достаточно обычного текстового редактора, хотя в Windows 98 появилась и гораздо более удобная и безопасная утилита для редактирования основных конфигурационных файлов - "Программа настройки системы" (System Configuration Utility, исполняемый файл - msconfig.exe).

Главное преимущество этой утилиты в том, что в ней предусмотрена возможность отмены ошибочно введенных изменений. Необрабатываемые комментарии в config.sys также начинаются с точки с запятой либо со слова "rem" (ремарка, комментарий). Но, по большому счету, файл этот операционной системе не очень-то и нужен, так как все необходимые Windows параметры задаются автоматически еще на этапе загрузки файла io.sys. В нем содержатся все нужные системе параметры, используемые в том случае, если в config.sys явно не прописаны альтернативные установки. Получается, что "винды" сами загружают по умолчанию как бы "невидимый" config.sys, содержащий набор параметров "по умолчанию" (см. таблицу 1).

Таблица 1

dos=high 

ядро MS-DOS помещается в высокую память,что немного высвобождает базовую память

device=c:\windows\himem.sys 

драйвер обеспечивает доступ к расширенной и верхней памяти

device=c:\windows\ifshlp.sys 

драйвер поддержки файловых систем, 
без него Windows обычно не может загрузиться

device=c:\windows\setver.exe 

драйвер нужен для того, чтобы устаревшие приложения не отказывались работать с современными 
реализациями MS-DOS - на запрос старой программы он отвечает, 
что установлена именно та версия MS-DOS, которая ей нужна

fileshigh=30

 максимальное количество одновременно открытых файлов, 
для многих DOS-программ требуется увеличить это значение до 100

lastdrivehigh=z 

последняя буква, которую можно использовать для обозначения дисков

buffershigh=30 

количество буферов дискового ввода-вывода

stackshigh=9,256 

количество и размер стеков, предназначенных для временного хранения различной системной информации

shell=command.com /p 

путь и параметры используемого командного интерпретатора

fcbshigh=4 

количество блоков управления файлами, необходимых старым DOS-программам

Все эти параметры и драйвера грузятся, даже если в вашем config.sys они не прописаны и даже если у вас вообще отсутствует такой файл. Значения, задаваемые командами files, lastdrive, buffers, stacks, fcbs, и драйвер setver.exe нужны только приложениям MS-DOS. И вообще, хотя и параметров, команд, драйверов, задаваемых через config.sys, очень много, чаще всего этот файл используется для загрузки каких-либо специфичных DOS-драйверов.

Windows же обычно все это хозяйство абсолютно не нужно, так как она имеет собственные 32-разрядные драйверы для любого устройства. Исключение составляет, пожалуй, лишь поддержка кириллицы. Чтобы эта самая поддержка кириллицы работала, необходимо, чтобы в config.sys присутствовали следующие строки: 
device=C:\Windows\Command\display.sys con=(ega,,1)
country=007,866, C:\Windows\Command\country.sys
- а в файле autoexec.bat, о котором речь пойдет ниже, строки:
mode con codepage prepare=((866)C:\Windows\
Command\ega3.cpi)
mode con codepage select=866
keyb ru,, C:\Windows\Command\keybrd3.sys.

В Windows Me, однако, ситуация несколько иная - файлы config.sys, command.com и autoexec.bat уже не обрабатываются системой при загрузке, а переменные среды окружения (Environment Variables) берутся из системного реестра. Так что вписать в него свой драйвер вам не удастся - ОС этого не позволит, перезаписав измененный файл старым вариантом (за это отвечает программа regenv32.exe), так что о его содержимом пользователям "Миллениума" задумываться не надо.

Если же возникла необходимость что-то подправить, то делать это следует с помощью программы msconfig.exe. Вы можете изменить значения некоторых переменных среды окружения либо региональные установки, так как поддержка кириллицы в Windows Me включается тоже только через эту утилиту, которая заносит соответствующие настройки в системный реестр.

В Windows 98 же файл config.sys позволяет создавать даже меню мультиконфигурации, при использовании которого вы получаете шанс при каждой загрузке выбирать нужные в данный конкретный момент параметры, а также соответствующую этим параметрам ветвь в файле autoexec.bat, что просто незаменимо для тех, кто часто использует MS-DOS - получается очень гибкая и удобная система. Подробную документацию о работе и редактировании файла config.sys, о его параметрах и драйверах вы найдете в этом архиве: stnvidnoye.chat.ru/Files/main_files/DOS622.zip.

После обработки config.sys в Windows 98 загружается командный интерпретатор command.com - программа, отвечающая, например, за такие задачи, как прием и выполнение команд; выполнение пакетных файлов (с расширением .bat); загрузка в память DOS-программ. По умолчанию используется command.com, находящийся в корневой директории системного диска, хотя с помощью команды shell в config.sys можно задать любой путь к этому файлу. Файл этот тоже легко восстанавливается командой "sys C:" после загрузки ПК с дискеты.

С помощью только что загруженного command.com обрабатывается файл autoexec.bat, предназначенный для запуска резидентных DOS-программ, для выполнения каких-либо команд или установки некоторых системных параметров. Как и config.sys, файл autoexec.bat не является жизненно необходимым для Windows, поскольку все, что нужно операционной системе, задается в "скрытом" autoexec.bat, также встроенном в файл io.sys (см. таблицу 2).

Таблица 2

@echo off 

отключение вывода информации на экран при выполнении команд из autoexec.bat 

net start 

загрузка сетевых компонентов реального режима, если они установлены

set tmp=C:\Windows\Temp 

установка значения переменной TMP - путь к папке временных файлов

set temp=C:\Windows\Temp 

установка значения переменной TEMP - 
опять путь к папке временных файлов

set comspec=C:\command.com 

задается значение переменной COMSPEC - путь к командному интерпретатору 

prompt $p$g 

настройка вида курсора командной строки MS-DOS

path C:\Windows; C:\Windows\Command 

пути поиска исполняемых файлов, если при вводе 
команды путь явно не задавался.дискового ввода-вывода

Если вас по какой-то причине не устраивают эти параметры, то отменить автоматическое выполнение всех директив из "невидимых" конфигурационных файлов можно, надо лишь в config.sys добавить строку "dos=noauto" или записать в один из конфигурационных файлов явную команду, изменяющую требуемый параметр.

На этом фаза загрузки компонентов реального режима завершается. Посмотреть, что в результате загрузилось, можно, введя в строке "Выполнить" меню "Пуск" команду "mem /p/c" или "mem /d/p" - перед вами предстанет картина занятости памяти с перечнем всех загруженных DOS-драйверов и резидентных программ. Присутствие каких-либо DOS-драйверов без четко осознанной необходимости, строго говоря, не рекомендуется. Windows не всегда способна их отключить, подменяя своими драйве рами, а это серьезно снижает и быстродействие системы, и ее устойчивость.

Поэтому убедитесь в том, что вы не используете такие драйвера, заглянув еще и на страничку "Быстродействие" свойств системы. Если используется какой-то нежелательный DOS-драйвер, то там будет присутствовать запись "Режим совместимости" вместо "32-битный". В этом случае придется просмотреть еще раз все конфигурационные файлы и удалить строку, вызывающую загрузку старого драйвера.

Загрузка Windows

Теперь начинается загрузка самой Windows. Автоматически запускается стартовый файл win.com, загружается диспетчер виртуальных машин из файла vmm32.vxd и создается системная виртуальная машина. После этого автоматически исполняется еще один недокументированный командный файл - winstart.bat, если он имеется в корневой директории системного диска или в одной из папок, указанных в переменной PATH. Из него можно загрузить в системную виртуальную машину некоторые резидентные DOS-программы так, чтобы они не занимали ценную базовую память, используемую при запуске программ MS-DOS из-под Windows (в "Миллениуме" этот файл не обрабатывается). 

Далее загружаются статические (то есть постоянно находящиеся в памяти) драйвера. При этом сначала загружаются статические драйвера виртуальных устройств, прописанные в разделе реестра HKEY_LOCAL_MACHINE\ System\CurrentControlSet\Services\VxD и имеющие параметр StaticVxD.

Далее загружаются драйвера, упакованные внутри главного файла Windows - vmm32.vxd, формируемого во время установки ОС на этапе определения имеющегося в наличии оборудования. Этот файл уникален для каждого компьютера, поскольку в нем как бы собраны воедино используемые на данной машине драйвера. Собственно именно поэтому при повреждениях этого файла вас спасет только его удаление и переустановка системы, во время которой он будет создан заново. Посмотреть, какие драйвера в vmm32.vxd заключены, вы можете в файле system.ini, в разделе [386Enh] - ищите там строки типа "device=" - это и будет список драйверов vmm32.vxd. 
И наконец, загружаются драйвера из папки C:\Windows\System\VMM32.

Если какое-то устройство или программа после удаления некорректно подчистила за собой реестр или файл system.ini, то при загрузке ОС иногда выдается сообщение об отсутствии требуемого системе файла. Если ОС говорит, что нет какого-то файла с расширением .386, то "закомментируйте" его вызов в файле system.ini, поставив перед строкой с ним точку с запятой, например: 
; device=Example.386. 

Если же расширение - .vxd, то придется поискать его вызов в реестре, в ключе HKEY_
LOCAL_MACHINE\System\CurrentControlSet\
Services\VxD - удалите здесь упоминание о нем, предварительно сохранив реестр на случай непредвиденных ошибок и сбоев. А если система запрашивает конкретно файл vnetsup.vxd, что бывает часто после удаления компонентов Microsoft Network в свойствах сети, то удалите параметр StaticVxD в ключе HKEY_LOCAL_
MACHINE\System\CurrentControlset\Services\
VxD\vnetsup.

Затем доходит очередь до обработки еще одного конфигурационного файла - уже упоминавшегося system.ini - выполняются те его команды, которые не присутствуют в реестре, причем записи в system.ini имеют приоритет перед аналогичными параметрами: если есть какая-то несогласованность system.ini с реестром, то система выбирает запись из system.ini - он для нее главнее. Файл этот, как и Win.ini, является рудиментом, оставшимся от windows 3.11 и нужен для сохранения совместимости со старыми приложениями. Однако удалять ни тот, ни другой ни в коем случае не стоит, несмотря на утверждения Microsoft о вторичной роли этих файлов - Windows хранит в них множество критичных параметров, без считывания которых во время загрузки ОС не сможет работать.

Расположены они в папке Windows и являются текстовыми файлами, составленными по весьма несложным правилам. Если в этих файлах какой-то обязательный параметр не прописан, то используется значение по умолчанию, ремарки, как обычно - точка с запятой, а максимальный размер этих файлов ограничен 64 кб. Редактировать их удобнее всего с помощью все той же "Программы настройки системы", а почитать о параметрах, используемых в этих файлах, лучше всего на сайте MAX Speed WinDOwS (members.aol.com/axcel216), одном из лучших и наиболее информативных сайтов, посвященных недокументированным настройкам Windows.

Далее процессор компьютера переключается в защищенный режим, и загружаются динамические драйвера виртуальных устройств - их список берется из раздела реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class - там загрузчики этих драйверов прописаны в параметрах DevLoader. И наконец, загружается ядро Windows (файлы krnl386.exe, kernel32.exe, gdi.exe, gdi32.exe, user.exe, user32.exe); шрифты; исполняются команды последнего конфигурационного файла (если не считать реестра) win.ini; загружается графическая оболочка; запрашивается пароль пользователя на вход в Windows; формируются параметры интерфейса в соответствии с установками текущего пользователя; запускаются программы, автозагрузка которых прописана в реестре или задана с использованием папки "Автозагрузка" меню "Пуск".

Кстати, запуск этих программ можно оперативно отменить, если при загрузке графической облочки Windows держать нажатой кнопку "Shift". Список загруженных динамических и статических драйверов можно проконтролировать, воспользовавшись утилитой "Сведения о системе", которая умеет выдавать целую кучу и других, не менее полезных данных ("Пуск" > "Программы" > "Стандартные" > "Служебные" > "Сведения о системе" > "Программная среда" > "Драйверы" > "Драйверы ядра", а для англоязычных версий - Start > Programs > Accessories > System tools > System Information > Software Environment > Drivers > Core drivers).

В заключение хочу упомянуть еще один недокументированный файл - dosstart.bat, расположенный в папке Windows. К загрузке операционной системы он, правда, отношения не имеет: команды из него выполняются, когда вы выбираете в меню "Завершение работы" опцию "Перезагрузить компьютер в режиме MS-DOS". С помощью dosstart.bat вы легко обеспечите в этом режиме и автоматический запуск Norton Commander, и поддержку мыши, и кэширование дисков, и работу с CD-ROM, получив тем самым все то, что вам нужно в работе с DOS-программами. В "Миллениуме" он, как и режим MS-DOS, естественно, отсутствует.

Таким образом, для загрузки Windows необходимы следующие файлы: io.sys; command.com (в "Миллениуме" не обязателен); system.ini; win.ini; файлы реестра system.dat;, user.dat (в "Миллениуме" еще и classes.dat). Файлы msdos.sys, config.sys и autoexec.bat требуются только для специфического конфигурирования ОС, и Windows может обходиться и без них. Все эти файлы грамотный пользователь должен регулярно сохранять в специально отведенной для резервного копирования папочке, только в этом случае вы практически без усилий, воспользовавшись системной дискетой, восстановите сбившиеся настройки и вернете систему к жизни.

И уж, по меньшей мере, рекомендуется хотя бы приблизительно представлять, для чего каждый файл необходим и какое влияние на систему в целом оказывают его параметры - это еще больше облегчит выявление причин внезапных сбоев, а в идеале позволит заставить любимые "форточки" работать максимально надежно и быстро.



Литература по Win9x