1 месяц назад
Пишем операционную систему Триалогия - Прерывания: IDT, IOAPIC и LAPIC
В двух прошлых частях постоянно всплывал "тик таймера", запускающий переключение контекста. Но как этот тик вообще доходит до процессора? А нажатие клавиши, дочитанный сектор диска, пришедший сетевой пакет? Через прерывания! Это нервная система ядра, механизм, которым внешний мир получает право прервать процессор. Прерывание, это сигнал: "Стоп, займись мной немедленно". Процессор прерывает то, что делал, прыгает к обработчику, делает нужное и потом возвращается ровно туда, где был. Источников три:...
3 недели назад
Пишем операционную систему Триалогия - ACPI и MADT: LAPIC, IOAPIC и таблицы прошивки
Статья про PCI закончилась вопросом - устройства и нужные им прерывания найдены, но куда направлять эти IRQ? Для этого ядру нужно знать, какие контроллеры прерываний у машины вообще есть, сколько ядер CPU, какие таймеры. Эта информация приходит не от PCI а от ACPI и интересна тут не только MADT, а целое маленькое дерево таблиц, которое обходит мой парсер. ACPI это способ, которым прошивка описывает материнскую плату операционной системе. Сколько CPU, какие контроллеры прерываний, какие таймеры, как корректно выключиться...