You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+23-4Lines changed: 23 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -143,10 +143,29 @@ make debug_fda # образ диска fda
143
143
144
144
## Как работает загрузка
145
145
146
-
1.**BIOS** загружает первый сектор диска (512 байт) по адресу 0x7C00
147
-
2.**Загрузчик** инициализирует стек, загружает GDT и переключается в защищённый режим
148
-
3.**Ядро** загружается по адресу 0x1000 и получает управление
149
-
4.**Ядро** инициализирует драйверы, менеджер памяти и командную оболочку
146
+
Загрузчик KintsugiOS — это критически важный компонент, написанный на ассемблере, который выполняет следующие задачи:
147
+
148
+
+ Инициализация и переход в защищенный режим: Загрузчик начинает работу в реальном режиме (16-бит), инициализирует стек, загружает GDT (Глобальную таблицу дескрипторов) и переключает процессор в 32-битный защищенный режим.
149
+
+ Загрузка ядра: С помощью функций BIOS загрузчик считывает ядро с диска в память по адресу 0x1000.
150
+
+ Подготовка к выполнению ядра: После перехода в защищенный режим управление передается ядру.
151
+
152
+
Компоненты загрузчика:
153
+
154
+
+ bootsector.asm — основной загрузочный сектор, который загружается BIOS по адресу 0x7c00. Устанавливает стек, загружает ядро и переключается в защищенный режим.
155
+
+ diskload.asm — содержит функцию disk_load для чтения секторов с диска с помощью прерываний BIOS.
156
+
+ gdt.asm — определяет GDT (Глобальную таблицу дескрипторов) для защищенного режима, включая дескрипторы для сегментов кода и данных.
157
+
+ switch_to32.asm — код переключения в защищенный режим, включая отключение прерываний, загрузку GDT и установку бита в регистре cr0.
158
+
+ puts_chars.asm и puts_chars32.asm — функции для вывода строк в реальном и защищенном режимах соответственно. В защищенном режиме вывод осуществляется напрямую в видеопамять VGA.
159
+
+ puts_hex.asm — функция для вывода чисел в шестнадцатеричном формате (используется для отладки).
160
+
+ kernel_entry.asm — точка входа для ядра, которая вызывает функцию kmain из ядра.
161
+
162
+
Процесс загрузки:
163
+
164
+
1. BIOS загружает первый сектор диска (512 байт) по адресу 0x7c00 и передает управление на его начало.
165
+
2. Загрузчик инициализирует стек и выводит сообщение о запуске в реальном режиме.
166
+
3. Загрузчик загружает ядро с диска в память по адресу 0x1000, используя функции BIOS.
167
+
4. Загрузчик загружает GDT и переключает процессор в защищенный режим.
168
+
5. В защищенном режиме загрузчик выводит сообщение об успешном переходе и передает управление ядру по адресу 0x1000.
0 commit comments