Reviews / articles about OS/2 |
Operating systems: ArcaOS, eComStation, IBM OS/2 Warp |
|
|
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. Всем желающим детально ознакомится как проходила загрузка, предлагаю скачать лог загрузки. Замечания:
Комментарии:
|
|
|||||||||||||||||||||||||
(C) OS2.GURU 2001-2021