      Предварительная загрузка файлов

      1. Для чего это надо

  Это делалось, чтобы минимизировать вызовы int 13h посредством 
скачка в RealMode и обратно. Так же ускоряет повторное чтение
драйверов, таких как print01.sys, clock01.sys и usb. Основная
цель, это запуск ACPI на AMD чипсетах (они не могут использовать 
int 13h после включения acpi).

     2. Как устроено

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

    3. Как использовать

  Если влючён прелоад, то ядро пытается вычитать все файлы из BASEDEV и
PSD строк config.sys, все файлы из os4krnl.ini и snoop.lst и файлы по
этому списку:

   PREVIOUS.DAT, ISAPNP.SYS, ISAPNP.SNP, RESOURCE.SYS, CLOCK01.SYS,
   SCREEN01.SYS, KBDBASE.SYS, SNOOP.LST, PNP.SYS, ACPI.CFG, IBMKBD.SNP,
   PCIBUS.SNP, PREVIOUS.ACP, PCIDEV.TBL, CHKFORCD.CMD

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

  Для того чтобы узнать, какие файлы захочет кернель на вашей системе:
* включить лог в OS2LDR.INI (LOGSIZE=XXX)
* загрузиться с preload (Alt-F8 в меню)
* получение лога загрузки, если у вас есть acpi, то 
    copy ___hlp$ kernel.log, 
  если нету то 
    copy oemhlp$ kernel.log. 
  В нем вы ищете строки такого вида "==Need 'xxxxx'==", где xxxxx имя 
  какого-то файла. Вот эти файлы и надо заносить в os4krnl.ini. Если все
  нужные для загрузки файлы занесены в os4krnl.ini, то сообщений 
  "==Need 'xxxxx'==" не будет.
