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

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

  Это делалось, чтобы минимизировать вызовы int 13h посредством 
скачка в RealMode и обратно. Так же ускоряет повторное чтение
драйверов, таких  usb.

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

  Вычитывается файл списка файлов, затем вычитывается каждый файл
из этого списка и заносится в структуру. Если файл на диске отсуствует,
то в структуру помещается только имя и пометка, что такой файл
уже отсуствует, чтобы его снова не искать по диску. После
загрузки 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'==" не будет.
