|
Обновите ArcaOS до уровня NeoWPS
- Установите набор PNG иконок, нарисованных дизайнером, специализирующемся на оформлении OS/2
- Установите eSchemes 2018, чтобы менять цвета и кнопки на рабочем столе
|
TITLE: Порядок загрузки OS/2
DATE: 2004-01-18 03:21:36
AUTHOR: Pavel Shtemenko
Несмотря на то, что OS/2 существует десятилетия,
споры на тему "В каком порядке происходит загрузка?" по прежнему продолжаются.
Статья частично отвечает на этот вопрос.
Этапы большого пути
При разработке
загрузчика с JFS, я, естественно, пользовался выводом протокола загрузки.
Имена файлов, которые требовало ядро, также попадали в этот лог - благодаря
ему можно судить о порядке загрузки.
В основу положена аксиома - "для того чтобы драйвер
загрузился, его файл сначала нужно вычитать с диска". Отдельно подчеркиваю,
речь идет о загрузке с JFS.
Первый этап
OS/2 загружается в три этапа. Все три этапа могут быть совершенно разными
в зависимости от того, с какого устройства происходит загрузка.
Итак первый этап - так называемый bootstrap (и то что его
производит, называют blackbox).
Для диска - это то, что записано в бутблоке, для
сети - то что записано в ПЗУ удаленной загрузки.
От этого этапа требуется
весьма немного: загрузить OS2LDR и передать ему управление, сообщив при этом
адрес, с которого загружен модуль, который должен будет обеспечить выполнение
второго этапа (кто интересуется конкретикой рекомендую читать ifs.inf).
Дальше OS2LDR "растыкивает" по всем углам "разные поддержки всего чего
не попадя" и загружает OS2KRNL в память. Окончание этого этапа знаменует
передача управления ядру OS2KRNL. Итак, тут мне разногласий в загрузке
определить не удалось и выглядит она так:
OS2LDR.MSG
SWAPPER2.DAT
OS2LDR.MSG
OS2KRNL
OS2DUMP
OS2DBCS.FNT
Второй этап
На этом и всех последующих этапах, загрузкой управляет исключительно OS2KRNL.
Вот с этого этапа уже и можно рассматривать порядок загрузки с CONFIG.SYS.
Итак, по материалам
следствия происходит поиск следующих файлов (перечисление идет в порядке запросов):
ALTF2ON.$$$
ARCHBASE.$$$
OS2VER
CONFIG.SYS
KDB.INI
OS2LOGO
OS2NOREV.$$$
RESOURCE.SYS
PREVIOUS.DAT
CLOCK01.SYS
SCREEN01.SYS
KBDBASE.SYS
ISAPNP.SNP
PNP.SYS
вычитка снуперов
Дальше уже идет вся загрузка в соотвествии с CONFIG.SYS,
кроме некоторых интуитивно понятных случаев:
IBMKBD.SYS
CHKDSK.SYS
IBM1FLPY.ADD
IBM1S506.ADD
XDFLOPPY.FLT
IBMATAPI.FLT
IBMIDECD.FLT
OS2DASD.DMD (здесь начинаются интуитивно понятные случаи)
OS2LVM.DMD
На этом радостном файле и заканчивается второй этап загрузки. Обращаю внимание,
два последних файла всегда грузятся последними, независимо от того,
в какой строчке CONFIG.SYS они прописаны (что интуитивно понятно).
Третий этап
Он знаменутся проверкой, на месте ли OS2LDR (хотя куда ему с подводной
лодки деться на локальном компьютере...) и загрузкой файла COUNTRY.SYS.
Далее, процесс загрузки
уже перестает быть однозначным на некоторое время, т.к. уже могут работать
разнообразные DLL, итак в моем случае последовательность оказалась такой:
COUNTRY.SYS
VIOTBL.DCP
KEYBOARD.DCP
DOSCALL1.DLL
SESMGR.DLL
DOSCALL2.DLL
BMSCALLS.DLL ( три раза )
DEV\MOUSE$
JFS.IFS
Далее идет все в соответствии с CONFIG.SYS, то есть все device= и ifs=
в том порядке, в каком они следуют в CONFIG.SYS.
Всем желающим детально ознакомится как проходила загрузка,
предлагаю скачать лог загрузки.
Замечания:
- В данном случае JFS.IFS идет первой, потому дальше я уже ничего не
вижу в своем логе, но зато по AltF2 уже все замечательно видно кроме DLL
- Если грузимся с устройства "1:", то драйверы IFS грузятся в порядке
следования их в config.sys, если не с "1:", то лично у меня первым грузился
именно JFS.IFS.
- Окончательным является только прилагаемый лог
(в тексте статьи что-нибудь может быть пропущено).
- Если кому-то действительно хочется узнать порядок загрузки до самого
старта startup.cmd, могу предоставить загрузчик для FAT32 с
отладкой (в отсуствии ifs=fat32.ifs он выполняет его функции до
самого окончания загрузки - устав однако).
Комментарии: Василий А. Сидоров 2004-01-19 10:55:55 | А если сопоставить порядок загрузги dll с импортами из других модулей? | Pavel Shtemenko 2004-01-19 10:59:43 | п.4 ? | Василий А. Сидоров 2004-01-19 16:08:46 | Хочешь взвалить тяжёлый девелоперский труд на хрупкие пользвательские плечи? | Pavel Shtemenko 2004-01-19 16:11:35 | Нуууу, по особым просьбам трудящихся могу снять и с загрузки FAT32 без ifs=fat32.ifs в конфиге ;-) | Василий А. Сидоров 2004-01-19 16:17:42 | :) | Алексей Тимошенко 2004-08-02 13:08:49 | У меня вопрос.
Что происходит после загрузки последнего DEVICE и перед выводом накопленных сообщений? В этот момент очень активно работают винты (несколько десятков секунд).
| Eugene Gorbunoff 2005-06-18 12:39:57 | Еще одна статья: [url] ->
"III. Последовательность загрузки OS/2" |
Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).
|