en:docs:boot:bootsector

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

en:docs:boot:bootsector [2014/05/10 17:31] – external edit 127.0.0.1en:docs:boot:bootsector [2014/06/28 07:15] (current) valerius2k
Line 1: Line 1:
-==== Описание бутсектора для FreeLdr ====+===== FreeLDR bootsector description =====
  
   * Данный  бутсектор  предназначен  для  использования  в загрузчике FreeLdr системы  osFree  (OS/3)  для  загрузки Micro File System Driver (MicroFSD, aka blackbox).  BlackBox -- это обычный DOS executable в COM-формате, то есть, его размер  теоретически  ограничен  64  Кбайтами.  Поэтому данный загрузчик также рассчитан на загрузку файлов размером до 64 Кбайт.   * Данный  бутсектор  предназначен  для  использования  в загрузчике FreeLdr системы  osFree  (OS/3)  для  загрузки Micro File System Driver (MicroFSD, aka blackbox).  BlackBox -- это обычный DOS executable в COM-формате, то есть, его размер  теоретически  ограничен  64  Кбайтами.  Поэтому данный загрузчик также рассчитан на загрузку файлов размером до 64 Кбайт.
Line 26: Line 26:
       * Она  более  подходит  в  том случае, когда специальной  области  под бутблок не предусмотрено, например, FAT12, FAT16 или "чужие"  файловые  системы,  такие  как ext2fs (в ext2fs перед суперблоком для загрузчика предусмотрено лишь два сектора, что очень мало для MicroFSD).       * Она  более  подходит  в  том случае, когда специальной  области  под бутблок не предусмотрено, например, FAT12, FAT16 или "чужие"  файловые  системы,  такие  как ext2fs (в ext2fs перед суперблоком для загрузчика предусмотрено лишь два сектора, что очень мало для MicroFSD).
  
-=== Поля бутсектора (от конца к началу) ===+==== Поля бутсектора (от конца к началу) ====
  
     - Сигнатура  бутсектора:  word,  находится  по смещению 0x1FE от начала бутсектора и равна 0x55AA.     - Сигнатура  бутсектора:  word,  находится  по смещению 0x1FE от начала бутсектора и равна 0x55AA.
     - ForceLBA: byte, смещение 0x1FD, если данный байт равен 1, то поддержка доступа через LBA не проверяется, а включается принудительно.     - ForceLBA: byte, смещение 0x1FD, если данный байт равен 1, то поддержка доступа через LBA не проверяется, а включается принудительно.
  
-=== Параметры первой версии (-dOLDCODE) ===+==== Параметры первой версии (-dOLDCODE) ====
  
     - muFSDLen,  byte  (смещение  0x1FC). Задает длину загружаемого файла в секторах.     - muFSDLen,  byte  (смещение  0x1FC). Задает длину загружаемого файла в секторах.
Line 38: Line 38:
     - muFSDLoadSeg,  word  (смещение  0x1F4).  Задает  сегментный адрес, по которому производится загрузка.     - muFSDLoadSeg,  word  (смещение  0x1F4).  Задает  сегментный адрес, по которому производится загрузка.
  
-=== Параметры второй версии ===+==== Параметры второй версии ====
  
   * В  отличие  от  первой  версии,  вторая  версия не содержит адрес и длину загружаемого  файла  непосредственно  в  бутсекторе.  Взамен  этого, бутсектор содержит только адрес дополнительного сектора с картой размещения загружаемого файла (allocation map sector).   * В  отличие  от  первой  версии,  вторая  версия не содержит адрес и длину загружаемого  файла  непосредственно  в  бутсекторе.  Взамен  этого, бутсектор содержит только адрес дополнительного сектора с картой размещения загружаемого файла (allocation map sector).
Line 49: Line 49:
   * Загружаемый  файл загружается по кускам в один сектор согласно allocation map  и  грузится непосредственно после allocation map. То есть, если мы хотим, например,  загрузить  файл  по  сегментному  адресу  0x5660,  то  нужно задать mapLoadSeg == muFSDLoadSeg - 0x20 == 0x5640.   * Загружаемый  файл загружается по кускам в один сектор согласно allocation map  и  грузится непосредственно после allocation map. То есть, если мы хотим, например,  загрузить  файл  по  сегментному  адресу  0x5660,  то  нужно задать mapLoadSeg == muFSDLoadSeg - 0x20 == 0x5640.
  
-=== Замечания ===+==== Замечания ====
  
    - Данный  бутсектор  использует LBA для загрузки секторов с диска, если расширения  int  13h  поддерживаются BIOS'ом. В противном случае он использует функцию для чтения секторов через CHS.    - Данный  бутсектор  использует LBA для загрузки секторов с диска, если расширения  int  13h  поддерживаются BIOS'ом. В противном случае он использует функцию для чтения секторов через CHS.