ru:docs:boot:freeldr

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
ru:docs:boot:freeldr [2013/03/11 14:54] valeriusru:docs:boot:freeldr [2013/03/11 15:07] valerius
Line 184: Line 184:
 ^Register ^Contains   ^Description     ^ ^Register ^Contains   ^Description     ^
 |DH         |Boot mode flags  |bit 0 (NOVOLIO) on indicates that the mini-    FSD does not use MFSH_DOVOLIO. | |DH         |Boot mode flags  |bit 0 (NOVOLIO) on indicates that the mini-    FSD does not use MFSH_DOVOLIO. |
-| | |bit 1 (RIPL) on indicates that boot volume is not local (RIPL boot) | +|::: |::: |bit 1 (RIPL) on indicates that boot volume is not local (RIPL boot) | 
-| | |bit 2 (MINIFSD) on indicates that a mini-FSD ispresent. | +|::: |::: |bit 2 (MINIFSD) on indicates that a mini-FSD ispresent. | 
-| | |bit 3 (RESERVED) | +|::: |::: |bit 3 (RESERVED) | 
-| | |bit 4 (MICROFSD) on indicates that a micro-FSD is present. | +|::: |::: |bit 4 (MICROFSD) on indicates that a micro-FSD is present. | 
-| | |bits 5-7 are reserved and MUST be zero. |+|::: |::: |bits 5-7 are reserved and MUST be zero. |
 |DL         |Boot disk drive number |This parameter is ignored if either   the NOVOLIO or MINIFSD bits are zero. | |DL         |Boot disk drive number |This parameter is ignored if either   the NOVOLIO or MINIFSD bits are zero. |
 |DS:SI         |pointer to the BOOT Media's BPB |This parameter is ignored if   either the NOVOLIO or MINIFSD bits are zero. | |DS:SI         |pointer to the BOOT Media's BPB |This parameter is ignored if   either the NOVOLIO or MINIFSD bits are zero. |
Line 336: Line 336:
  
 Первый longword указывает присутствие и законность других полей в структуре информации мультизагрузки. Все неопределенные биты должны быть обнулены загрузчиком ядра. Любой набор битов, которые операционная система не понимает, должен игнорироваться. Таким образом, поле флагов также функционирует как индикатор версии, позволяя структуре информации мультизагрузки быть расширенной в будущем без ломки или нарушения чего-либо. Первый longword указывает присутствие и законность других полей в структуре информации мультизагрузки. Все неопределенные биты должны быть обнулены загрузчиком ядра. Любой набор битов, которые операционная система не понимает, должен игнорироваться. Таким образом, поле флагов также функционирует как индикатор версии, позволяя структуре информации мультизагрузки быть расширенной в будущем без ломки или нарушения чего-либо.
-</p> 
  
-<p> 
 Если бит 0 установлен в параметре flags, то mem_* поля правильны. Mem_lower и mem_upper указывают количество более низких и область старших адресов, соответственно, в килобайтах. Более низкая память начинается в адресе 0, и запусках области старших адресов в адресе 1 мегабайт. Максимальное возможное значение для более низкой памяти - 640 килобайт. Значение, возвращенное для области старших адресов - максимальное, адрес первого отверстия области старших адресов минус 1 мегабайт. Это не значит, что оно будет этим значением. Если бит 0 установлен в параметре flags, то mem_* поля правильны. Mem_lower и mem_upper указывают количество более низких и область старших адресов, соответственно, в килобайтах. Более низкая память начинается в адресе 0, и запусках области старших адресов в адресе 1 мегабайт. Максимальное возможное значение для более низкой памяти - 640 килобайт. Значение, возвращенное для области старших адресов - максимальное, адрес первого отверстия области старших адресов минус 1 мегабайт. Это не значит, что оно будет этим значением.
-</p> 
- 
-<p> 
  
 Если бит 1 в параметре flags установлен, то поле boot_device правильно, и указывает, от которого дискового устройства BIOS загрузчик ядра загрузил образ ядра. Если образ ядра) не был загружено с дискового устройства BIOS, то это поле не должно присутствовать (бит 3 должен быть чист). Операционная система может использовать это поле как подсказку для определения ее собственного корневого раздела, но оно необязательно. поле Boot_device размещено в четырех подполях одним байтом следующим образом: Если бит 1 в параметре flags установлен, то поле boot_device правильно, и указывает, от которого дискового устройства BIOS загрузчик ядра загрузил образ ядра. Если образ ядра) не был загружено с дискового устройства BIOS, то это поле не должно присутствовать (бит 3 должен быть чист). Операционная система может использовать это поле как подсказку для определения ее собственного корневого раздела, но оно необязательно. поле Boot_device размещено в четырех подполях одним байтом следующим образом:
-</p> 
- 
-<p> 
-Диск Раздел1 Раздел2 Раздел3 
-</p> 
-<pre class="code">  Первый байт содержит номер диска BIOS как понято BIOS INT 0x13 низкоуровневого дискового интерфейса: например 0x00 для первого гибкого диска или 0x80 для первого жесткого диска.</pre> 
  
-<p>+|Диск |Раздел1 |Раздел2 |Раздел3 |
  
-Три остающихся байта определяют раздел начальной загрузки. Part1 определяет  номер раздела верхнего уровня, part2 определяет подраздел в разделе верхнего уровня, и т.д. Нумерация разделов всегда начинаются с нуля. Неиспользованные байты раздела должны быть установлены в 0xFF. Например, если диск разбит на разделы, используя простой одноуровневый DOS, выделяющий разделы схемы, то part1 содержит номер раздела DOS, а part2, и part3 - 0xFF. Другой пример, если диск разбит на разделы сначала в DOS PARTITION, и затем, один из тех DOS PARTITION подразделен в несколько BSD разделы, использующие disklabel стратегию BSD&#039;S, то part1 содержит номер DOS PARTITION, part2 содержит подраздел BSD в пределах того DOS PARTITION, а part3 - 0xFF +<code>  Первый байт содержит номер диска BIOS как понято BIOS INT 0x13 низкоуровневого дискового интерфейсанапример 0x00 для первого гибкого диска или 0x80 для первого жесткого диска.</code>
-</p>+
  
-<p>+Три остающихся байта определяют раздел начальной загрузки. Part1 определяет  номер раздела верхнего уровня, part2 определяет подраздел в разделе верхнего уровня, и т.д. Нумерация разделов всегда начинаются с нуля. Неиспользованные байты раздела должны быть установлены в 0xFF. Например, если диск разбит на разделы, используя простой одноуровневый DOS, выделяющий разделы схемы, то part1 содержит номер раздела DOS, а part2, и part3 - 0xFF. Другой пример, если диск разбит на разделы сначала в DOS PARTITION, и затем, один из тех DOS PARTITION подразделен в несколько BSD разделы, использующие disklabel стратегию BSD, то part1 содержит номер DOS PARTITION, part2 содержит подраздел BSD в пределах того DOS PARTITION, а part3 - 0xFF. 
  
 В DOS разделы обозначены как числа раздела, начинающиеся от 4 и выше, скорее как вложенные подразделы, даже при том, что основная схема диска расширенных разделов по характеру иерархическая. Например, если загрузчик ядра загружается из второго раздела на диске, разбитом на разделы в обычном стиле DOS, то part1 будет 5, и part2, и part3 будут 0xFF.  В DOS разделы обозначены как числа раздела, начинающиеся от 4 и выше, скорее как вложенные подразделы, даже при том, что основная схема диска расширенных разделов по характеру иерархическая. Например, если загрузчик ядра загружается из второго раздела на диске, разбитом на разделы в обычном стиле DOS, то part1 будет 5, и part2, и part3 будут 0xFF. 
-</p> 
  
-<p> 
 Если бит 2 флагов longword установлен, поле cmdline допустимо и содержит физический адрес командной строки, которую нужно пропустить к ядру. Командная строка - законченная нулем строка в С-стиле.  Если бит 2 флагов longword установлен, поле cmdline допустимо и содержит физический адрес командной строки, которую нужно пропустить к ядру. Командная строка - законченная нулем строка в С-стиле. 
-</p> 
  
-<p> 
 Если бит 3 флагов установлен, то поля mods указывают ядру какие загрузочные модули  были загружены наряду с образом ядра), и где они могут быть найдены. Mods_count содержит число загруженных модулей; mods_addr содержит физический адрес первой модульной структуры. Mods_count может быть нулевой, не указывая какие загрузочные модули были загружены, даже если бит 1 флагов установлен. Каждая модульная структура форматируется следующим образом:  Если бит 3 флагов установлен, то поля mods указывают ядру какие загрузочные модули  были загружены наряду с образом ядра), и где они могут быть найдены. Mods_count содержит число загруженных модулей; mods_addr содержит физический адрес первой модульной структуры. Mods_count может быть нулевой, не указывая какие загрузочные модули были загружены, даже если бит 1 флагов установлен. Каждая модульная структура форматируется следующим образом: 
-</p> 
  
-<p> +|0  |mod_start | 
-0  Mod_start +|4  |mod_end | 
-4  Mod_end +|8  |string | 
-8  String +|12  |reserved(0) 
-12 reserved(0) + 
-Первые два поля содержат начало и конечные адреса непосредственно загрузочных модулей. Поле строки (String) обеспечивает произвольную нить(шпагат), которая будет связана с тем специфическим загрузочным модулем; это - законченная нулем сторока <acronym title="American Standard Code for Information Interchange">ASCII</acronym>, точно так же как командная строка ядра. Поле строки может быть 0, если не имеется никакой строки, связанной с модулем. Обычно строка может быть командной строкой (например, если операционная система обрабатывает загрузочные модули как исполняемые программы), или имя пути (например, если операционная система обрабатывает загрузочные модули как файлы в файловой системе), но его точное использование предназначено для операционной системы. Сохраненное поле должно быть установлено в 0 загрузчиком ядра и игнорироваться операционной системой.  +Первые два поля содержат начало и конечные адреса непосредственно загрузочных модулей. Поле строки (String) обеспечивает произвольную нить(шпагат), которая будет связана с тем специфическим загрузочным модулем; это - законченная нулем сторока ASCII, точно так же как командная строка ядра. Поле строки может быть 0, если не имеется никакой строки, связанной с модулем. Обычно строка может быть командной строкой (например, если операционная система обрабатывает загрузочные модули как исполняемые программы), или имя пути (например, если операционная система обрабатывает загрузочные модули как файлы в файловой системе), но его точное использование предназначено для операционной системы. Сохраненное поле должно быть установлено в 0 загрузчиком ядра и игнорироваться операционной системой. 
-</p>+
  
-<p> 
 Внимание: биты 4 и 5 взаимно исключаемы.  Внимание: биты 4 и 5 взаимно исключаемы. 
-</p> 
  
-<p> 
 Если бит 4 в слове флагов установлен, то допустимы следующие поля в структуре информации мультизагрузки, начинающейся в байте 28: Если бит 4 в слове флагов установлен, то допустимы следующие поля в структуре информации мультизагрузки, начинающейся в байте 28:
-</p> 
  
-<p> +|28  |tabsize | 
-28  Tabsize +|32  |strsize | 
-32  Strsize +|36  |addr | 
-36  Addr +|40  |reserved (0) 
-40 reserved (0)  + 
-Они указывают, где таблица идентификаторов от a.out образа ядра может быть найдена. Addr - физический адрес размера (4-байтовый без знака длинный) матрицы a.out, форматируют структуры nlist, сопровождаемые немедленно матрицой непосредственно, тогда размер (4-байтовый без знака длинный) набора законченных нулем строк <acronym title="American Standard Code for Information Interchange">ASCII</acronym> (плюс sizeof (без знака длинный) в этом случае), и наконец, самостоятельный набор строк. Tabsize равен его параметру размера (найденный в начале секции символа), а strsize равен его параметру размера (найденный в начале секции строки) следующей таблицы строки, к которой обращается таблица идентификаторов. Обратите внимание, что tabsize может быть 0, не указывая никакие символы, даже если бит 4 в слове флагов установлен.  +Они указывают, где таблица идентификаторов от a.out образа ядра может быть найдена. Addr - физический адрес размера (4-байтовый без знака длинный) матрицы a.out, форматируют структуры nlist, сопровождаемые немедленно матрицой непосредственно, тогда размер (4-байтовый без знака длинный) набора законченных нулем строк ASCII (плюс sizeof (без знака длинный) в этом случае), и наконец, самостоятельный набор строк. Tabsize равен его параметру размера (найденный в начале секции символа), а strsize равен его параметру размера (найденный в начале секции строки) следующей таблицы строки, к которой обращается таблица идентификаторов. Обратите внимание, что tabsize может быть 0, не указывая никакие символы, даже если бит 4 в слове флагов установлен. 
-</p>+
  
-<p> 
 Если бит 5 в слове флагов установлен, то допустимы следующие поля в структуре информации мультизагрузки, начинающейся в байте 28: Если бит 5 в слове флагов установлен, то допустимы следующие поля в структуре информации мультизагрузки, начинающейся в байте 28:
  
-</p>+|28 |num | 
 +|32 |size | 
 +|36 |addr | 
 +|40 |shndx |
  
-<p> 
-28 Num 
-32 Size 
-36 Addr 
-40 Shndx 
 Где указывается секция таблицы заголовочного файла из ELF ядра, размер каждого входа, число входов, и строка таблицы, используемой как индекс имен. Они передают shdr_* входам (shdr_num, и т.д.) в выполнимом и пригодном для редактирования формате спецификацию (ELF) в заголовочном файле программы. Все секции загружены, и физические поля адреса заголовочного файла секции ELF тогда обращаются секциям, относящихся к i386 документации ELF для деталей относительно того, как читать секции заголовочного файла. Обратите внимание, что shdr_num может быть 0, не указывая никакие символы, даже если бит 5 в слове флагов установлен. Если бит 6 в слове флагов установлен, то mmap_* поля допустимы, и указывают адрес и длину буфера, содержащего карту памяти машины, обеспеченной BIOS&#039;ом. Mmap_addr - адрес, а mmap_length - полный размер буфера. Буфер состоит из одного, или большего количества следующих size/структурных пар (размер действительно используется для пропуска к следующей паре):  Где указывается секция таблицы заголовочного файла из ELF ядра, размер каждого входа, число входов, и строка таблицы, используемой как индекс имен. Они передают shdr_* входам (shdr_num, и т.д.) в выполнимом и пригодном для редактирования формате спецификацию (ELF) в заголовочном файле программы. Все секции загружены, и физические поля адреса заголовочного файла секции ELF тогда обращаются секциям, относящихся к i386 документации ELF для деталей относительно того, как читать секции заголовочного файла. Обратите внимание, что shdr_num может быть 0, не указывая никакие символы, даже если бит 5 в слове флагов установлен. Если бит 6 в слове флагов установлен, то mmap_* поля допустимы, и указывают адрес и длину буфера, содержащего карту памяти машины, обеспеченной BIOS&#039;ом. Mmap_addr - адрес, а mmap_length - полный размер буфера. Буфер состоит из одного, или большего количества следующих size/структурных пар (размер действительно используется для пропуска к следующей паре): 
-</p> 
  
-<p> +||size | 
-Size +||base_addr_low |
-0 base_addr_low  +
-</p>+
  
-<p> +|4  |base_addr_high | 
-4  Base_addr_high +|8  |length_low | 
-8  Length_low +|12  |length_high | 
-12  Length_high +|16  |type | 
-16  Typewhere size - размер связанной структуры в байтах, которые могут быть больше чем минимум 20 байтов. Base_addr_low - низкие 32 бита начального адреса, а base_addr_high - верхние 32 бита для общего количества 64-разрядного начального адреса. Length_low низкие 32 бита из размера области памяти в байтах, а length_high - верхние 32 бита для общего количества 64 битов. Type - разнообразие представленного адресного интервала, где значение 1 указывает доступную оперативную память, а все другие значения в настоящее время обозначают резервную область.  + 
-</p>+где size - размер связанной структуры в байтах, которые могут быть больше чем минимум 20 байтов. Base_addr_low - низкие 32 бита начального адреса, а base_addr_high - верхние 32 бита для общего количества 64-разрядного начального адреса. Length_low низкие 32 бита из размера области памяти в байтах, а length_high - верхние 32 бита для общего количества 64 битов. Type - разнообразие представленного адресного интервала, где значение 1 указывает доступную оперативную память, а все другие значения в настоящее время обозначают резервную область. 
  
-<p> 
 Будет выведено значение оперативной памяти, необходимое для нормальной работы.  Будет выведено значение оперативной памяти, необходимое для нормальной работы. 
  
-</p> 
- 
-<p> 
 Если бит 7 во флагах установлен, то drives_* поля допустимы, и указывают адрес физического адреса первой структуры диска и размера структур диска. Drives_addr - адрес, и drives_length - полный размер структур диска. Обратите внимание, что drives_length может быть нулевой. Каждая структура диска отформатирована следующим образом:  Если бит 7 во флагах установлен, то drives_* поля допустимы, и указывают адрес физического адреса первой структуры диска и размера структур диска. Drives_addr - адрес, и drives_length - полный размер структур диска. Обратите внимание, что drives_length может быть нулевой. Каждая структура диска отформатирована следующим образом: 
-</p> 
  
-<p> +|0  |Size | 
-0 Size +|4  |Drive_number | 
-4 Drive_number +|5  |Drive_mode | 
-5 Drive_mode +|6  |Drive_cylinders | 
-6 Drive_cylinders +|8  |Drive_heads | 
-8 Drive_heads +|9  |Drive_sectors | 
-9 Drive_sectors +|10-xx  |Drive_ports 
-10-xx Drive_ports+
 Поле size определяет размер этой структуры. Размер меняется в зависимости от числа портов. Обратите внимание, что размер не может быть равен (10 + 2 * число портов), из-за линеаризации.  Поле size определяет размер этой структуры. Размер меняется в зависимости от числа портов. Обратите внимание, что размер не может быть равен (10 + 2 * число портов), из-за линеаризации. 
-</p> 
  
-<p> 
 Поле Drive_number содержит номер диска BIOS. Поле Drive_mode представляет способ доступа, используемый загрузчиком ядра. В настоящее время определены следующие способы:  Поле Drive_number содержит номер диска BIOS. Поле Drive_mode представляет способ доступа, используемый загрузчиком ядра. В настоящее время определены следующие способы: 
-</p> 
  
-<p>+|0 |CHS mode (традиционный cylinder/head/sector способ адресации) | 
 +|1 |LBA mode (логический способ адресации блока) |
  
-0 CHS mode (традиционный cylinder/head/sector способ адресации) +Эти три поля, drive_cylinders, drive_heads и drive_sectors указывают геометрию диска, обнаруженного BIOS-ом. Drive_cylinders содержит число цилиндров. Drive_heads содержит число глав. Drive_sectors содержит число секторов в дорожке. 
-1 LBA mode (логический способ адресации блока) Эти три поля, drive_cylinders, drive_heads и drive_sectors указывают геометрию диска, обнаруженного BIOS&#039;ом. Drive_cylinders содержит число цилиндров. Drive_heads содержит число глав. Drive_sectors содержит число секторов в дорожке. +
  
-</p> 
- 
-<p> 
 Поле Drive_ports содержит матрицу портов ввода - вывода, используемых для диска в коде BIOS. Массив состоит из нуля или больших нуля целых чисел с двумя байтами, и заканчиваевшихся нулем. Обратите внимание, что массив может содержать любое число портов ввода - вывода, которые не связаны с диском фактически (типа портов DMA контроллеров).  Поле Drive_ports содержит матрицу портов ввода - вывода, используемых для диска в коде BIOS. Массив состоит из нуля или больших нуля целых чисел с двумя байтами, и заканчиваевшихся нулем. Обратите внимание, что массив может содержать любое число портов ввода - вывода, которые не связаны с диском фактически (типа портов DMA контроллеров). 
-</p> 
  
-<p> 
 Если бит 8 во флагах установлен, то поле config_table допустимо и указывает адрес таблицы конфигурации ПЗУ, возвращенной на вызовы BIOS. Если вызовы BIOS остались без ответа, то размер таблицы должен быть нулевой.  Если бит 8 во флагах установлен, то поле config_table допустимо и указывает адрес таблицы конфигурации ПЗУ, возвращенной на вызовы BIOS. Если вызовы BIOS остались без ответа, то размер таблицы должен быть нулевой. 
-</p> 
  
-<p> 
 Если бит 9 во флагах установлен, то поле boot_loader_name допустимо, и содержит физический адрес имени загрузчика ядра, при загрузке ядра. Имя - законченная нулем строка в С-стиле. Если бит 9 во флагах установлен, то поле boot_loader_name допустимо, и содержит физический адрес имени загрузчика ядра, при загрузке ядра. Имя - законченная нулем строка в С-стиле.
-</p> 
  
-<p> 
 Если бит 10 во флагах установлен, то поле apm_table допустимо, и содержит физический адрес определенной таблицы APM как указано ниже :  Если бит 10 во флагах установлен, то поле apm_table допустимо, и содержит физический адрес определенной таблицы APM как указано ниже : 
-</p> 
  
-<p> +|0  |version | 
-0 version +|2  |cseg | 
-2  Cseg +|4  |offset | 
-4  Offset +|8  |cseg_16 | 
-8  Cseg_16 +|10  |dseg | 
-10  Dseg +|12  |flags | 
-12  Flags +|14  |cseg_len | 
-14  Cseg_len +|16  |cseg_16_len | 
-16  Cseg_16_len +|18  |dseg_len | 
-18  Dseg_len+
 Поля version, cseg, offset, cseg_16, dseg, флаги, cseg_len, cseg_16_len, dseg_len указывает номер версии, защищенный режим 32-разрядный сегмент кода, смещение точки входа, защищенный режим 16-разрядный сегмент кода, защищенный режим 16-разрядный сегмент данных, флаги, продолжительность защищенного режима 32-разрядного сегмента кода, продолжительность защищенного режима 16-разрядного сегмента кода, и продолжительность защищенного режима 16-разрядного сегмента данных, соответственно. Только поле offset - 4 байта, а остальные - 2 байта. См. расширенное управление электропитанием (APM) спецификации интерфейса BIOS для получения дополнительной информации.  Поля version, cseg, offset, cseg_16, dseg, флаги, cseg_len, cseg_16_len, dseg_len указывает номер версии, защищенный режим 32-разрядный сегмент кода, смещение точки входа, защищенный режим 16-разрядный сегмент кода, защищенный режим 16-разрядный сегмент данных, флаги, продолжительность защищенного режима 32-разрядного сегмента кода, продолжительность защищенного режима 16-разрядного сегмента кода, и продолжительность защищенного режима 16-разрядного сегмента данных, соответственно. Только поле offset - 4 байта, а остальные - 2 байта. См. расширенное управление электропитанием (APM) спецификации интерфейса BIOS для получения дополнительной информации. 
-</p> 
  
-<p> 
 Бит 11 во флагах должен быть нулевым. Бит 11 во флагах должен быть нулевым.
-</p> 
  
-</div> +==Для разработчиков драйвера устанавливаемой файловой системы ===
- +
-<h2><a name="для_разработчиков_драйвера_устанавливаемой_файловой_системы" id="для_разработчиков_драйвера_устанавливаемой_файловой_системы">Для разработчиков драйвера устанавливаемой файловой системы</a></h2> +
-<div class="level2"> +
- +
-<p>+
  
 Устанавливаемые драйверы файловой системы (IFS) описаны в документе по IFS (еще не издан). Устанавливаемые драйверы файловой системы (IFS) описаны в документе по IFS (еще не издан).
-</p> 
- 
-</div> 
- 
-<h2><a name="устройство_загрузчика_ядра" id="устройство_загрузчика_ядра">Устройство загрузчика ядра</a></h2> 
-<div class="level2"> 
- 
-<p> 
-Загрузчик ядра пока ещё сырой 16/32-разрядный двоичный код (подобно <acronym title="Microsoft">MS</acronym>/PC-ДОСУ COM файлам, но запускается не от 100h, а от 0h).  
- 
-</p> 
-<ul> 
-<li class="level1"><div class="li"> Прежде всего, загрузчик ядра хранит всю информацию от регистров центрального процессора во внутренних структуры</div> 
  
-</li> +=== Устройство загрузчика ядра ===
-<li class="level1"><div class="li"> Выдается информация относительно памяти</div> +
-</li> +
-<li class="level1"><div class="li"> После этого выводится информация на дисплей</div> +
-</li> +
-<li class="level1"><div class="li"> Загружается ядро</div> +
-</li> +
-<li class="level1"><div class="li"> Переключается в защищенный режиму</div> +
-</li>+
  
-<li class="level1"><div class="li"> И выполняется мультизагрузка ядра</div> +Загрузчик ядра пока ещё сырой 16/32-разрядный двоичный код (подобно MS/PC-DOS'у COM файлам, но запускается не от 100h, а от 0h). 
-</li> +
-</ul>+
  
-<p>+  * Прежде всего, загрузчик ядра хранит всю информацию от регистров центрального процессора во внутренних структуры 
 +  * Выдается информация относительно памяти 
 +  * После этого выводится информация на дисплей 
 +  * Загружается ядро 
 +  * Переключается в защищенный режиму 
 +  * И выполняется мультизагрузка ядра
  
-Пока всё! Не так-то это просто! <img src="/web/20100304104902im_/http://www.osfree.org/wiki/lib/images/smileys/icon_wink.gif" class="middle" alt=";-)" />+Пока всё! Не так-то это просто! ;-)