• Запущена и находится на начальной. Этапы загрузки операционных систем

    3.3. Процесс загрузки компьютера

    Многие, прочитав заглавие, улыбнутся: ну что же здесь сложного? Однако вдумайтесь: что же происходит с ПК после нажатия кнопки Power (включение питания) ? Этот вопрос редко задают себе как начинающие, так и опытные пользователи. Автору приходилось задавать его и специалистам в области компьютерной техники, но исчерпывающих ответов было мало. Тем не менее, при сбоях или отказе компьютера знание основ процесса начальной загрузки во многих случаях помогает обнаружить или быстро локализовать неисправность.

    Для конкретизации изложения рассмотрим процесс загрузки компьютера, оснащённого материнской платой, на которой установлен BIOS AWARD и Intel-совместимый микропроцессор, а в качестве ОС – Windows 98.

    После нажатия кнопки Power источник питания выполняет самотестирование. Если все напряжения соответствуют номинальным, источник питания спустя 0,1...0,5 с выдаёт на материнскую плату сигнал PowerGood, а специальный триггер, вырабатывающий сигнал RESET, получив его, снимает сигнал сброса с соответствующего входа микропроцессора. Следует помнить, что сигнал RESET устанавливает сегментные регистры и указатель команд в следующие состояния (не используемые в реальном режиме биты не указываются) : CS = FFFFh; IP = 0; DS = SS = ES = 0 и сбрасывает все биты управляющих регистров, а также обнуляет регистры арифметическо-логического устройства. Во время действия сигнала RESET все три стабильные буферные схемы переходят в высоко импендансное состояние. С момента снятия этого сигнала микропроцессор начинает работу в реальном режиме и в течение примерно 7 циклов синхронизации приступает к выполнению инструкции, считываемой из ROM BIOS по адресу FFFF:0000. Размер области ROM BIOS от этого адреса до конца равен 16 байт, и в ней по указанному адресу записана команда перехода на реально исполняемый код BIOS. В этот момент процессор не может выполнять никакую другую последовательность команд, поскольку нигде в любой из областей памяти, кроме BIOS, её просто не существует. Последовательно выполняя команды этого кода, процессор реализует функцию начального самотестирования POST (Power-On Self Test) . На данном этапе тестируются процессор, память и системные средства ввода/вывода, а также производится конфигурирование программно-управляемых аппаратных средств материнской платы. Часть конфигурирования выполняется однозначно, другая часть может определяться положением джамперов (перемычек или переключателей) системной платы, но ряд параметров возможно (а иногда и необходимо) устанавливать пользователю. Для этих целей служит утилита Setup, встроенная в код BIOS. Параметры конфигурирования, установленные с помощью этой утилиты, запоминаются в энергонезависимой памяти, питаемой от миниатюрной батарейки, размещённой на материнской плате. Часть из них всегда хранится в традиционной CMOS Memory, объединённой с часами и календарём RTC (Real Time Clock) . Другая часть (в зависимости от фирмы-производителя) может помещаться и в энергонезависимую (например, флэш) память (NVRAM) . Кроме этой части статически определяемых параметров, имеется область энергонезависимой памяти ESCD для поддержки динамического конфигурирования системы Plug and Play, которая может автоматически обновляться при каждой перезагрузке компьютера.

    Утилита BIOS Setup имеет интерфейс в виде меню или отдельных окон, иногда даже с поддержкой мыши. Для входа в Setup во время выполнения POST появляется предложение нажать клавишу DEL. В других типах BIOS (в отличие от указанного выше) для этого может использоваться сочетание клавиш Ctrl+Alt+Esc, Ctrl+Esc, клавиша Esc, бывают и другие варианты (например, нажать клавишу F12 в те секунды, когда в правом верхнем углу экрана виден прямоугольник) . В последнее время появились версии BIOS, в которых вход в Setup осуществляется нажатием клавиши F2, однако чаще клавиши F1 или F2 используются для вызова меню Setup, если POST обнаружит ошибку оборудования, которая может быть устранена сменой начальных установок. Для некоторых BIOS удержание клавиши INS во время POST позволяет установить настройки по умолчанию, отменяя все ускорители . Это бывает удобно для восстановления работоспособности компьютера после попыток его неудачного «разгона». Выбранные установки сохраняются при выходе из Setup (по желанию пользователя) и начинают действовать с момента следующего выполнения POST.

    При выполнении каждой подпрограммы POST записывает её сигнатуру (код) в диагностический регистр. Этот регистр физически должен располагаться на специальной плате диагностики (сигнатурном анализаторе, или так называемой POST-карте) , устанавливаемой в слот системной шины при анализе неисправности. Такие POST-карты бывают в двух исполнениях: для шин ISA и PCI. На данной плате обязательно устанавливается двухразрядный семисегментный индикатор, высвечивающий содержимое регистра диагностики. Возможно также наличие двоичного индикатора адреса. В пространстве ввода/вывода регистр занимает один адрес, зависящий от архитектуры РС (версии BIOS) . Например, для ISA, EISA – 80h; ISA Compaq – 84h; ISA-PS/2 – 90h; для некоторых моделей EISA – 300h; MCA-PS/2 – 680h. Имея в наличии подобный сигнатурный анализатор по индицируемым кодам, можно определить, на каком этапе остановился POST. Зная специфическую таблицу сигнатур для каждой версии BIOS, легко определить неисправность системной платы.

    Перечислим в порядке выполнения основные тесты POST для BIOS AWARD V4.51 и их сигнатуры, высвечиваемые POST-картой на индикаторе регистра диагностики. Следует отметить, что далеко не все перечисленные ниже коды видны на индикаторе в процессе нормальной загрузки компьютера: некоторые высвечиваются лишь в том случае, если POST останавливается. Происходит это потому, что многие подпрограммы POST исполняются настолько быстро, что человеческий глаз не в состоянии уследить за индицируемым состоянием регистра диагностики, а некоторые коды появляются только при обнаружении неисправности. Для указанной версии BIOS первой исполняемой сигнатурой в последовательности POST является C0:

    1. C0 – осуществляется программирование регистров микросхемы Host Bridge для установки следующих режимов:
    • запрещается Internal и External Cache, а также операции с кэш-памятью;
    • перед запретом Internal Cache очищается;
    • Shadow RAM запрещается, вследствие чего происходит направление непосредственно к ROM циклов обращения к адресам расположения System BIOS. Эта процедура должна соответствовать конкретному чипсету;
    • далее программируются РIIХ ресурсы: контроллер DMA, контроллер прерываний, таймер, блок RTC. При этом контроллер DMA переводится в пассивный режим.
  • C1 – с помощью последовательных циклов запись/чтение определяется тип памяти, суммарный объём и размещение по строкам. И в соответствии с полученной информацией настраивается DRAM-контроллер. На этом же этапе процессор должен быть переключён в Protected Mode (защищённый режим) .
  • C3 – проверяются первые 256 кб памяти, которые в дальнейшем будут использованы как транзитный буфер, а также осуществляется распаковка и копирование System BIOS в DRAM.
  • C6 – по специальному алгоритму определяется наличие, тип и параметры External Cache.
  • CF – определяется тип процессора, а результат помещается в CMOS. Если по каким-либо причинам определение типа процессора закончилось неудачно, такая ошибка становится фатальной и система, а соответственно и выполнение POST, останавливается.
  • 05 – осуществляется проверка и инициализация контроллера клавиатуры, однако на данный момент приём кодов нажатых клавиш ещё не возможен.
  • 07 – проверяется функционирование CMOS и напряжение питания её батареи. Если фиксируется ошибка питания, выполнение POST не останавливается, однако BIOS запоминает этот факт. Ошибка при контрольной записи/чтении CMOS считается фатальной и POST останавливается на коде О7.
  • BE – программируются конфигурационные регистры Host Bridge и PIIX значениями, взятыми из BIOS.
  • 0A – генерируется таблица векторов прерываний, а также производится первичная настройка подсистемы управления питанием.
  • 0B – проверяется контрольная сумма блока ячеек CMOS, а также, если BIOS поддерживает PnP, выполняется сканирование устройств ISA PnP и инициализация их параметров. Для PCI-устройств устанавливаются основные (стандартные) поля в блоке конфигурационных регистров.
  • 0C – инициализируется блок переменных BIOS.
  • 0D/0E – определяется наличие видеоадаптера путём проверки наличия сигнатуры 55АА по адресу начала Video BIOS (C0000:0000h) . Если Video BIOS обнаружен и его контрольная сумма правильная, включается процедура инициализации видеоадаптера. С этого момента появляется изображение на экране монитора, высвечивается заставка видеоадаптера, инициализируется клавиатура. Далее по ходу POST тестируется контроллер DMA и контроллер прерываний.
  • 30/31 – определяется объём Base Memory и External Memory, и с этого момента начинается отображаемый на экране тест оперативной памяти.
  • 3D – инициализируется PS/2 mouse.
  • 41 – производится инициализация подсистемы гибких дисков.
  • 42 – выполняется программный сброс контроллера жёстких дисков. Если в Setup указан режим AUTO, производится детектирование устройств IDE, в противном случае параметры устройств берутся из CMOS. В соответствии с конфигурацией системы размаскируются прерывания IRQ14 и IRQ15.
  • 45 – инициализируется сопроцессор FPU.
  • 4E – настраивается клавиатура USB. На данном этапе становится возможен вход в CMOS Setup по нажатию клавиши DEL.
  • 4F – осуществляется запрос на ввод пароля, если это предусмотрено установками CMOS Setup.
  • 52 – производится поиск и инициализация ПЗУ дополнительных BIOS, а также картируется каждая из линий запросов прерывания PCI.
  • 60 – если в Setup включён данный режим, устанавливается антивирусная защита BOOT Sector.
  • 62 – осуществляется автоматический переход на зимнее или летнее время, для клавиатуры настраиваются состояние NumLock и режим автоповтора.
  • 63 – корректируются блоки ESCD (только для PNP BIOS) и производится очистка ОЗУ.
  • B0 – это состояние записывается в регистр сигнатурного анализатора только в случае наличия ошибок, например, при тесте Extended Memory. Если при работе в Protected Mode сбои отсутствуют, то POST не включает эту ветвь. При наличии страничных нарушений и других исключительных ситуаций управление будет передано на эту процедуру, она выведет код B0 в порт 80(84)h и остановится.
  • FF – последний этап, на котором подводится итог тестирования – успешная инициализация аппаратных средств компьютера сопровождается одиночным звуковым сигналом, после чего осуществляется передача управления загрузчику BOOT-сектора.
  • Порядок поиска загрузочного диска на компьютерах x86 (FDD, жёсткие диски IDE и SCSI, устройства CD-ROM) задаёт BIOS. Современные BIOS позволяют переконфигурировать этот порядок, называемый последовательностью загрузки (boot sequence) . Если при этом дисковод A: включён в последовательность загрузки первым и в нём находится дискета, BIOS попытается использовать эту дискету в качестве загрузочной. Если дискеты в дисководе нет, BIOS проверяет первый жёсткий диск, который к этому времени уже инициализировался, и выполняет команду INT19h. Процедура обработки прерывания INT19h для загрузки BOOT-сектора должна прочитать сектор с координатами Cylinder:0 Head:0 Sector:1 и поместить его по адресу 0000:7С00h, после чего осуществляется проверка, является ли диск загрузочным. Сектор MBR (Master Boot Record – главная загрузочная запись) на жёстком диске находится по тому же физическому адресу, что и BOOT-сектор на дискете (цилиндр 0, сторона 0, сектор 1) .

    Если при проверке загрузочный сектор не обнаружен, т.е. два последних байта этого сектора (его сигнатура) не равны 55ААh, вызывается прерывание INT18h. При этом на экране появляется предупреждающее сообщение, зависящее от производителя BIOS компьютера.

    Сектор MBR записывается на жёсткий диск программой FDISK, поэтому если HDD был отформатирован на низком уровне, во всех его секторах находятся нули и, естественно, первый сектор не может содержать необходимой сигнатуры. Отсюда следует, что сообщения об ошибке будут выдаваться, если диск не разбивался на разделы (логические диски) . Главная загрузочная запись обычно не зависит от операционной системы (на платформах Intel она используется для запуска любой из операционных систем) . Код, содержащийся в главной загрузочной записи, сканирует таблицу разделов (partition table) в поисках активного системного раздела. Если в таблице разделов активный раздел не обнаружен или хотя бы один раздел содержит неправильную метку, а также, если несколько разделов помечены как активные, выдаётся соответствующее сообщение об ошибке.

    Код главной загрузочной записи определяет расположение загрузочного (активного) раздела, считывая таблицу разделов, расположенную в конце MBR. Если активный раздел найден, производится чтение его загрузочного сектора и определяется, является ли он действительно загрузочным. Попытка чтения может осуществляться до пяти раз, в противном случае выдаётся сообщение об ошибке, и система останавливается. Если загрузочный сектор найден, Master Boot Record передаёт управление коду загрузочного сектора в активном (загрузочном) разделе, который содержит загрузочную программу и таблицу параметров диска. Загрузочный сектор раздела просматривает блок параметров BIOS в поисках расположения корневого каталога, а затем копирует из него в память системный файл IO.SYS (который, по сути, является частью DOS и включает в себя функции файла MSDOS.SYS из предыдущей версии DOS) и передаёт ему управление. IO.SYS загружает драйверы некоторых устройств и выполняет ряд операций, связанных с загрузкой. Сначала IO.SYS считывает файл MSDOS.SYS. Нужно помнить, что этот файл не похож на одноимённые файлы из предыдущих версий DOS. В Windows 98 MSDOS.SYS является текстовым файлом, содержащим опции процедуры запуска. Затем загружается и отображается файл LOGO.SYS (стартовая заставка) .

    На следующем этапе IO.SYS считывает информацию из системного реестра, а также исполняет файлы CONFIG.SYS и AUTOEXEC.BAT (при их наличии в корневом каталоге) . При этом загружаются драйверы устройств, работающих в реальном режиме работы процессора, выполняются некоторые системные установки. Ниже приводится неполный список возможных драйверов и программ, загружаемых на данном этапе.

    DBLSPACE.BIN или DRVSPACE.BIN. Драйвер сжатия дисков.

    HIMEM.SYS. Администратор верхней памяти в реальном режиме работы процессора.

    IFSHLP.SYS. Оказывает содействие при загрузке VFAT и прочих файловых систем, поддерживающих Windows 98.

    SETVER.EXE. Утилита, подменяющая номер версии операционной системы. Существуют программы, ориентированные на более ранние версии операционных систем и отказывающиеся функционировать под Windows 98. Благодаря SETVER.EXE подобной программе возвращается именно тот номер версии DOS, который её устраивает.

    DOS=HIGH. Загружает DOS в область памяти HMA. Если в файле конфигурации CONFIG.SYS содержится инструкция для загрузки администратора отображаемой памяти EMM386.EXE, в эту строку добавляется параметр UMB, позволяющий EMM386.EXE использовать верхнюю память. Нужно помнить, что IO.SYS не загружает администратор EMM386.EXE автоматически. Поэтому, если планируется его использование, в файл CONFIG.SYS необходимо вставлять строку DEVICE=EMM386.EXE.

    FILES=30. В этой строке определяется число создаваемых дескрипторов файла. Windows 98 не использует это параметр; он включён для совместимости с предыдущими версиями программ.

    LASTDRIVE=Z. Здесь определяется последняя буква для логических дисков. Эта опция также введена для обратной совместимости и не используется Windows 98.

    BUFFER=30. Определяет число создаваемых файловых буферов. Буферы файлов используются приложениями при вызовах подпрограмм ввода/вывода из файла IO.SYS.

    STACKS=9,256. Этой записью определяется число кадров стека и размер каждого кадра.

    FCBS=4. Данная команда задает число блоков управления файлом. Оба последних параметра применяются только для обратной совместимости.

    На последнем этапе загружается и запускается файл WIN.COM. Он обращается к файлу VMM32.VXD. Если в компьютере установлен достаточный объём ОЗУ, то этот файл загружается в память, в противном случае организуется доступ к этому файлу на жёстком диске, что, естественно, увеличивает время загрузки. Загрузчик драйверов реального режима сравнивает копии виртуальных драйверов устройств (VxD) в папке Windows/System/VMM32 и файле VMM32.VXD. Если виртуальный драйвер устройства существует и в папке и в файле, копия виртуального драйвера ”помечается” в файле VMM32.VXD как незагружаемая. Виртуальные драйверы устройств, не загруженные с помощью файла VMM32.VXD, загружаются из раздела файла SYSTEM.INI папки Windows. Во время описанного процесса загрузчик драйверов виртуальных устройств реального режима постоянно проверяет правильность загрузки всех необходимых виртуальных драйверов устройств, а при появлении ошибки при загрузке нужного драйвера он пытается выполнить эту операцию ещё раз. После загрузки виртуальные драйверы устройств реального режима инициализируются, затем файл VMM32.VXD переключает процессор в защищённый режим, и начинается процесс инициализации виртуальных драйверов устройств согласно их параметру Init Device. Процедура загрузки ОС заканчивается загрузкой файлов KRNL32.DLL, GDI.EXE, USER.EXE и EXPLORER.EXE. Если компьютер подключён к сети, то загружается сетевое окружение. Пользователю предлагается ввести имя и пароль для входа в сеть. Затем из системного реестра загружается конфигурация с параметрами, установленными по умолчанию. На последней фазе загрузке операционной системы производится обработка содержимого папки Startup и запускаются указанные в ней программы. После этого ОС готова к работе.

    Существует несколько стандартных способов, позволяющих видоизменить описанную выше процедуру запуска:

    • при исполнении POST на этапе проверки памяти и инициализации загрузочных устройств нажать кнопку клавиатуры DEL для входа в программу Setup;
    • вставить перед окончанием теста оборудования загрузочный диск (например, аварийный диск Windows 98) ;
    • внести исправления в файл CONFIG.SYS;
    • отредактировать файл AUTOEXEC.BAT.

    Помимо них, Windows 98 предоставляет ряд менее очевидных методов для выполнения этой же задачи:

    • после завершения теста оборудования клавишей F8 вызвать меню Startup;
    • отредактировать инструкции запуска системы в файле MSDOS.SYS;
    • использовать один из перечисленных методов для ”остановки” в режиме DOS, после чего запустить Windows из командной строки с набором необходимых ключей;
    • изменить содержимое папки Startup.

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

    ПРИМЕЧАНИЕ.

    BIOS – это базовая система ввода-вывода, программа которой записана в память на специальной микросхеме материнской платы. BIOS отвечает за первоначальную загрузку компьютера после его включения.

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

    При нахождении видеоадаптера происходит его инициализация, после чего на экране на несколько секунд возникает изображение, содержащее сведения об установленном в системе видеоадаптере, объеме его памяти и т. д.

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

    Следующий шаг – определение типа процессора. На этом этапе также устанавливается его тактовая частота в соответствии с настройками BIOS. На экран при этом выводится информация о типе процессора и его тактовой частоте.

    Затем загрузочная программа определяет объем и тип установленной в системе оперативной памяти, а также тестирует ее. Результаты всех процессов выводятся на экран.

    После этого начинается инициализация и проверка устройств, подключенных к контроллерам IDE. Это могут быть жесткие диски, приводы компакт-дисков или DVD и другие накопители. Сведения о них обычно поступают из значений параметров BIOS. Если в настройках прописано автоопределение накопителей (значение Auto), система автоматически постарается определить их – правда, на это требуется дополнительное время.

    Затем программа первоначальной загрузки компьютера производит проверку привода гибких дисков (если он установлен в системе). Для этого контроллер посылает ему несколько команд, и система фиксирует его отклик.

    Далее начинается поиск и проверка установленных в системе плат расширения, таких, как внутренний модем, звуковая карта, карта видеозахвата, TВ-тюнер или FM-тюнер и т. д. Некоторые из этих плат (например, SCSI-контроллер) могут также иметь свою собственную BIOS. В этом случае управление может на время быть передано ей.

    После всех описанных действий на экран монитора выводится сводная таблица сведений о конфигурации компьютера, в которой указывается:

    Тип процессора;

    Идентификационный номер процессора (если он есть);

    Тактовая частота процессора;

    Объем установленной оперативной памяти;

    Объем кэш-памяти;

    Сведения о форм-факторе привода гибких дисков;

    Сведения об установленных IDE-устройствах;

    Тип видеосистемы;

    Обнаруженные последовательные и параллельные порты и адреса их ввода-вывода;

    Сведения об установленных модулях памяти;

    Сведения о платах расширения, включая устройства, поддерживающие и не поддерживающие стандарт Plug and Play.

    Однако вернемся к самому началу загрузки компьютера и рассмотрим процесс, называемый самотестированием системы (POST). В случае его успешного завершения обычно подается короткий звуковой сигнал. Иногда, правда, может и не подаваться никаких сигналов.

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

    Если такое произошло, то для определения причины ошибки можно руководствоваться звуковыми сигналами. С их помощью система сообщает пользователю о результатах процесса самотестирования.

    Однозначный ответ на вопрос, что означает та или иная комбинация звуковых сигналов, как правило, дать нельзя, поскольку каждая подсистема BIOS имеет свой набор звуковых сигналов, приведенный в ее описании. Однако часто такой информации может не оказаться вообще. В таком случае попробуйте обратиться на сайт производителя или запросить соответствующую информацию в службе технической поддержки производителя BIOS или материнской платы.

    Однако существуют некоторые комбинации звуковых сигналов, которые достаточно часто используются для обозначения одних и тех же ошибок. Если ваша система после самотестирования издает одну из нижеприведенных комбинаций звуковых сигналов, то вполне вероятно, что она сигнализирует о следующем:

    Один короткий сигнал – тестирование завершилось успешно, загрузка продолжается (некоторые системы при этом не подают никаких звуковых сигналов);

    Звука нет – неисправен процессор или блок питания (при этом на экране нет никакого изображения);

    Один длинный непрерывный сигнал – неисправен блок питания;

    Два коротких сигнала – обнаружены незначительные ошибки, необходимо внести изменения в настройки параметров BIOS (Award); это также может быть ошибкой четности памяти (AMI);

    Три длинных сигнала – ошибка контроллера клавиатуры;

    Три коротких сигнала – ошибка работы нижней памяти;

    Один длинный и один короткий сигнал – неверно работает оперативная память;

    Один длинный и два коротких сигнала – неверно работает видеоадаптер;

    Один длинный и три коротких сигнала – ошибка видеосистемы: не подключен монитор, не работает видеоадаптер и пр. (AMI); или проблемы с контроллером клавиатуры (Award);

    ВНИМАНИЕ!

    Опыт показывает, что в BIOS от Award данный сигнал также может использоваться в первом значении. Это одна из самых распространенных ошибок.

    Один длинный и восемь коротких сигналов – ошибка видеосистемы: не подключен монитор, не работает видеоадаптер и пр.;

    Один длинный и девять коротких сигналов – ошибка считывания данных BIOS;

    Четыре коротких сигнала – не работает системный таймер;

    Пять коротких сигналов – неверно работает процессор;

    Шесть коротких сигналов – неисправен контроллер клавиатуры;

    Семь коротких сигналов – проблемы с материнской платой;

    Восемь коротких сигналов – неверно работает видеопамять;

    Повторяющиеся длинные гудки – неисправен или неверно подключен модуль оперативной памяти;

    Повторяющиеся короткие гудки – неверно работает блок питания;

    Девять коротких сигналов – ошибка контрольной суммы при проверке содержимого BIOS; обычно происходит сброс параметров BIOS, после чего можно войти в программу их настройки и продолжить работу;

    Десять коротких сигналов – ошибка записи данных в микросхему CMOS;

    Одиннадцать коротких сигналов – неверно работает внешняя кэш-память.

    Имейте в виду, что все приведенные значения являются ориентировочными, то есть в каждом конкретном случае значение того или иного звукового сигнала может отличаться в зависимости от производителя BIOS или материнской платы.

    ВНИМАНИЕ!

    Не обращайте внимания на тихие короткие сигналы, которые издают многие материнские платы компании ASUS при включении или перезагрузке компьютера. С помощью этих сигналов система просто сигнализирует о количестве подключенных USB-устройств. Например, если при загрузке слышны два коротких тихих звуковых сигнала, это означает, что обнаружено два подключенных USB-устройства. При отсутствии устройств, подключенных к порту USB, система в случае успешного завершения самотестирования не подаст никаких звуковых сигналов.

    Как показывает практика, иногда в процессе самотестирования компьютерной системы может возникнуть ошибка, которую не удается локализовать с помощью звуковых сигналов. Для анализа такой ситуации используется POST-плата.

    POST-плата – специальная плата расширения для шины PCI (или реже для шины ISA), имеющая специальный цифровой индикатор (например, жидкокристаллический или, чаще, люминесцентно-вакуумный).

    Специально для целей индикации результатов самотестирования в пространстве портов выделен специальный порт. Шестнадцатеричный адрес этого порта – 80. Перед тем как проинициализировать то или иное устройство, присутствующее в системе, в этот порт обязательно помещается некоторый код, с помощью которого можно точно определить, что именно инициализируется в данный момент.

    Если инициализация одного устройства завершилась успешно, то система перейдет к определению следующего. При этом в 80-й порт будет записан следующий код.

    POST-плата считывает коды, которые записывались при инициализации устройств в 80-й порт, и отображает их на своем индикаторе. Соответственно, если работа системы была прервана, можно увидеть код, записанный в 80-й порт последним. По нему можно определить, на какой операции произошел сбой, а также какое устройство не удалось проинициализировать. Например, если на индикаторе последним высветилось значение 04, то это (при использовании системы с Award BIOS) означает, что в системе неправильно формируются сигналы регенерации оперативной памяти.

    Значения кодов POST могут различаться для различных производителей BIOS и материнских плат, однако большинство из них одинаковы. В табл. 3.1 приведены коды процедуры POST, которые обычно встречаются в системах на основе Award BIOS.

    Таблица 3.1. Значения кодов POST

    Применение POST-плат в некоторых случаях может оказать неоценимую помощь в процессе диагностики неработающей или неверно работающей системы.

    Однако для применения подобной диагностики необходимо как минимум установить POST-плату в соответствующий слот (PCI или ISA), если, конечно, это не было сделано при сборке системного блока, что встречается достаточно редко.

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

    Такие решения существенно облегчают поиск неисправностей. Однако, к сожалению, они пока еще встречаются достаточно редко и до сих пор не вошли в повсеместное употребление.

    Что же происходит после завершения самотестирования компьютерной системы и определения параметров всех установленных устройств?

    До этого момента поведением системы управляет встроенная программа BIOS. На данном этапе управление передается в главную загрузочную запись жесткого диска.

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

    Загрузчик операционной системы – это программа, которая считывает в оперативную память ядро операционной системы и запускает программы, инициализирующие ее и передающие ей управление. После этого контроль над компьютерной системой получает операционная система (ОС), под управлением которой совершается вся дальнейшая работа на компьютере.

    Однако в главной загрузочной записи жесткого диска можно расположить и более гибкую программу, например, позволяющую вывести на экран меню выбора загрузки нужной операционной системы, если на компьютере установлено несколько ОС.

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

    Если на жестком диске или сменном носителе не удастся обнаружить загрузочный сектор, то на экране появится предупреждающее сообщение, вид которого зависит от производителя и версии BIOS. После этого работа системы остановится.

    Поиск загрузчиков на жестком диске и сменных носителях всегда ведется в соответствии с инструкциями о порядке загрузки, которые поступают из параметров BIOS.

    Правда, на самом деле все несколько сложнее. Управление коду, считанному из загрузочного сектора, будет передано только в том случае, если BIOS определит его как действительно исполняемый.

    Если BIOS в загрузочном секторе устройства, определенного как загрузочное, обнаружит бессмысленную последовательность вместо кода загрузчика, дальнейшее поведение программы может быть различным. В большинстве случаев, если в качестве загрузочного указан сменный носитель, и код загрузчика не обнаружен в его загрузочном секторе, BIOS может решить, что в привод просто вставлен не тот диск. В итоге работа компьютера будет приостановлена, а на экране появится сообщение о том, что необходимо вставить загрузочный диск. После нажатия клавиши Enter BIOS вновь пытается считать код загрузочного сектора. Если носитель в приводе не будет обнаружен, BIOS пытается обследовать следующее устройство, указанное в настройках как загрузочное.

    Однако в большинстве случаев загрузка операционной системы производится с жесткого диска. В отличие от других носителей, винчестер содержит несколько разделов, каждый из которых имеет свой загрузочный сектор. Кроме того, жесткий диск содержит в начале главную загрузочную запись. Именно она считывается в память, а уже ее код должен передать управление загрузчику нужного раздела жесткого диска.

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

    Теперь вы знаете, что загрузка операционной системы – процесс многоступенчатый. Это важно понимать, чтобы правильно оценить причины сбоев, возникших при загрузке системы. Также эти сведения необходимы тому, кто использует на своем компьютере более одной ОС.

    Говоря о загрузке операционных систем, нельзя не упомянуть о том, каким образом они могут быть расположены на винчестере компьютера. Особенно это актуально, если на жестких дисках должны одновременно сосуществовать две или более операционные системы.

    Прежде всего, необходимо помнить, что физические жесткие диски часто не соответствуют логическим наименованиям разделов, которые используются в системе. Например, если в системе MS-DOS или Windows видны жесткие диски, обозначенные как C:, D: и E:, то это вовсе не означает, что в компьютере установлены три винчестера. Это вполне может быть и один жесткий диск, поделенный на логические разделы.

    Более того, жесткий диск может использоваться практически в любой операционной системе, только если он поделен на разделы. Даже если хочется, не разбивая, использовать в Windows диск объемом, например, 80 Гбайт, то на нем необходимо создать один большой логический раздел, занимающий практически все пространство.

    В начале жесткого диска обязательно располагается таблица его разделов, и если она пуста (разделы отсутствуют), то доступ к данным невозможен (если, конечно, говорить о стандартных методах доступа, а не о таких программах, как Disk Editor, напрямую работающих с физическими секторами на диске). Доступ к данным осуществляется внутри каждого из существующих разделов, а его способ зависит от организации данных внутри раздела.

    Разбитие диска на разделы обычно осуществляют при помощи программы fdisk или другой подобной. Под таким названием в разных операционных системах могут фигурировать совершенно различные программы. Существуют также специальные средства, такие как программы PartitionMagic (рис. 3.1) или Acronis OS Selector.

    Рис. 3.1. Окно программы PartitionMagic.

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

    Разделы, сведения о которых находятся в основной таблице разделов в начале диска, называют первичными. Таким образом, правильнее будет сказать, что на одном физическом жестком диске не может существовать более четырех первичных разделов.

    Кстати, некоторые операционные системы могут быть загружены только с первичного раздела. Для ОС MS-DOS или Windows, кроме того, необходимо, чтобы этот раздел находился на первом физическом диске (если их несколько) и был помечен как активный. В некоторых случаях также играет роль его физическая удаленность от начала диска.

    Более того, при применении операционных систем MS-DOS или Windows 95/98/Me следует учитывать, что они могут использовать только один первичный раздел на каждом из жестких дисков.

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

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

    Эта картина может быть представлена в разных видах. Например, при использовании программы fdisk в отношении операционных систем MS-DOS или Windows пользователю представляется, что все логические разделы находятся внутри расширенного, хотя удобнее и логичнее было бы представить ее по-другому – так, как показано на рис. 3.2.

    Рис. 3.2. Схема расположения логических разделов на жестком диске.

    Для операционных систем MS-DOS или Windows использование расширенного раздела – единственный способ разделить один физический жесткий диск на несколько логических. Если на диске имеется один первичный раздел для этих систем, то остальные должны располагаться в расширенном разделе.

    Теоретически логические разделы, расположенные внутри расширенного раздела, в смысле доступа к данным ничем не отличаются от первичных. Однако многие операционные системы нельзя располагать в этих разделах, так как они в большинстве случаев не смогут загрузиться с них.

    Есть и некоторые другие особенности их применения. В частности, операционные системы MS-DOS или Windows обозначают диски следующим образом. Сначала идут все первичные разделы (первичный раздел первого диска, первичный раздел второго диска и т. п.), а затем уже логические (сначала на первом диске, потом на втором и т. д.). Таким образом, если ранее использовался один физический диск с разделами C: и D:, а затем в компьютер установили второй физический диск с единственным первичным разделом, то новый раздел станет называться D:, а бывший раздел D: – E:. Это приводит в недоумение некоторых начинающих пользователей.

    В последних версиях операционных систем такое положение можно исправить. Например, в Windows 2000/XP можно присвоить каждому разделу любые буквы, а в Linux, BeOS и других системах таких проблем вообще не возникает, так как диски в них не обозначаются буквами и в каталоги монтируются сами разделы.

    Напомню еще раз, что доступ к данным на диске также зависит от организации данных внутри каждого из разделов. Такая организация называется файловой системой, так как данные в ней располагаются на диске в виде именованных последовательностей – файлов, а доступ к ним осуществляется с помощью обращения по соответствующим именам.

    В различных операционных системах подход к организации данных внутри раздела отличается. Общим же является то, что для использования той или иной файловой системы необходимо предварительно создать ее внутри дискового раздела. Создание файловой системы в разделе называют его форматированием.

    Рассмотрим наиболее распространенные файловые системы.

    FAT16 – файловая система, основанная на 16-разрядной таблице размещения файлов. Является «родной» в операционных системах MS-DOS и Windows 95, однако может использоваться с теми или иными оговорками практически во всех ОС. Тем не менее, она не популярна, так как характеризуется низкой устойчивостью и существенными потерями дискового пространства при наличии большого количества файлов (особенно мелких). Кроме того, объем раздела FAT16 не может превышать 2 Гбайт.

    FAT32 – усовершенствованная модификация FAT16, использующая 32-разрядную таблицу размещения файлов. Не может использоваться только в операционных системах MS-DOS и Windows 95, характеризуется довольно низким быстродействием.

    FAT12 – еще один вариант файловой системы на основе таблицы размещения файлов (12-разрядной). Этот вариант применяется только для носителей небольшого объема, таких как гибкие диски. На жестких дисках практически не применяется.

    HPFS – высокопроизводительная файловая система, разработанная для операционной системы OS/2. Может также использоваться в ранних версиях Windows NT (до 3.5 включительно).

    NTFS – тоже достаточно высокопроизводительная файловая система, задуманная как конкурент HPFS. Предназначена для операционных систем Windows NT/ 2000/XP, однако может применяться в Linux, FreeBSD, BeOS и других системах, как правило, в режиме только чтение.

    EXT2FS – очень компактная и производительная файловая система, разработанная для операционной системы Linux. Может применяться также в системах FreeBSD, QNX и некоторых других. Кроме того, существуют программы для доступа (обычно только на чтение) к системе EXT2FS из различных версий Windows.

    EXT3FS – журналируемый вариант файловой системы EXT2FS.

    UFS – файловая система, используемая практически только в операционной системе FreeBSD. Характеризуется тем, что внутри дискового раздела (среза – slice) в этой системе организуется еще одна система разделов, и только в каждом из этих разделов – непосредственно файловая система.

    ReiserFS – еще одна очень быстрая журналируемая файловая система, используемая обычно в Linux.

    Существуют и другие файловые системы, каждая из которых, как правило, создавалась для использования в своей операционной системе. Так, собственные файловые системы имеют BeOS, QNX и т. д. Наиболее универсальной для различных ОС является система FAT32 (или FAT16).

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

    Обычным способом с дисковыми разделами можно совершить лишь следующие манипуляции:

    Создание раздела (при наличии на диске пространства, не занятого другими разделами);

    Удаление раздела (приводящее к удалению всех данных внутри раздела);

    Смена типа раздела (если программа поддерживает разные файловые системы, данные обычно теряются);

    Вывод сведений об имеющихся разделах.

    Данные действия в разных программах могут называться по-разному. Например, программа fdisk из комплекта DOS/Windows 95/98/Me понимает только разделы типа FAT, а все остальные для нее – просто не DOS-разделы. Кроме того, создание расширенного раздела и логического раздела внутри него для данной программы две самостоятельные операции и т. д.

    При использовании простых средств, таких как вышеназванная программа, невозможно, например, изменить размер раздела. Однако часто это необходимо. Например, вы сделали один раздел FAT32 на все пространство диска, а через некоторое время захотели установить Linux или Windows NT с использованием их собственного формата файловой системы ext3fs или NTFS, а на разделе уже записаны данные. В таком случае вам придется:

    Удалить дисковый раздел (при этом все данные на нем будут потеряны);

    Создать на его месте два новых (и при необходимости восстановить на них данные с внешних носителей, предварительно установив операционную систему).

    Чтобы избежать такого долгого процесса, были разработаны программы, позволяющие изменять размер раздела без потери данных. Одной из первых стала программа FIPS. Правда, она не изменяет размер раздела в полном смысле этого слова, а только умеет разделять имеющийся на два, но без потери данных.

    ПРИМЕЧАНИЕ.

    В инструкции к данной программе десять раз говорится, что важные данные надо сохранять и автор не несет никакой ответственности, однако практика показывает, что FIPS работает очень хорошо – данные ни разу не были потеряны.

    Наиболее функциональной в данном контексте является программа Acronis OS Selector. Она позволяет легко не только изменять размеры разделов в графическом режиме, но и перемещать разделы по диску, а также копировать или переносить их на другой физический диск. Кроме того, можно произвольно изменять тип файловой системы раздела, скрывать разделы от той или иной операционной системы и многое другое.

    Теперь, когда вы уже достаточно знаете о загрузке компьютера после его включения, необходимо разобраться, какую роль играет BIOS и чего можно достичь с помощью правильной настройки его параметров.

    Из книги C++ автора Хилл Мюррей

    11.2 Включение Файлов Командная строка компилятора вида#include «имя_файла»вызывает замену этой строки полным содержимым файла имя_ файла. Сначала именованный файл ищется в директории первончального исходного файла, а затем в стандартных или заданных местах. Альтернативный

    Из книги Сущность технологии СОМ. Библиотека программиста автора Бокс Дональд

    Включение Не все классы способны к агрегированию. Для того чтобы выставить неагрегируемые классы как часть индивидуальности другого объекта, необходимо, чтобы внешние объекты явно передавали вызовы методов внутренним объектам. Эта технология СОМ часто называется

    Из книги Fedora 8 Руководство пользователя автора

    7.2.1. Загрузка компьютера Рассмотрим первоначальную загрузку компьютера с момента включения питания. Вы нажимаете кнопку Power на корпусе компьютера и в его оперативную память загружается программа POST (Power On Self Test) - программа самотестирования компьютера при включении

    Из книги Справочное руководство по C++ автора Страустрап Бьярн

    Из книги Язык программирования С# 2005 и платформа.NET 2.0. автора Троелсен Эндрю

    Включение отображения В этот момент обработчик событий Tick должен отобразить в панели toolStripStatusLabelClock текущее время, если значением по умолчанию члена-переменной DateTimeFormat является DateTimeFormat.ShowClock. Чтобы позволить пользователю переключаться между отображением даты и времени,

    Из книги Delphi. Учимся на примерах автора Парижский Сергей Михайлович

    Включение динамика ПК Ключ:}