Архитектура • CPU • OS • Low-Level
Учебный путь по Intel Architecture

От «что такое CPU?» до Intel SDM

Учебный материал, который постепенно погружает тебя в устройство процессоров Intel, память, сегментацию, привилегии, прерывания и системное программирование.

LEVEL 1
🟢 Совсем новичок
LEVEL 2
🔵 Начальный
LEVEL 3
🟡 Средний
LEVEL 4
🔴 Продвинутый
LEVEL 5
⚫ Intel SDM
CHAPTER 2 • SYSTEM ARCHITECTURE OVERVIEW

Обзор системной архитектуры

Intel SDM Vol. 3A
🟢 Совсем новичок

Что такое процессор?

Процессор (CPU) — это устройство, которое выполняет инструкции программы.

Например, когда программа говорит: «сложи два числа», процессор получает соответствующую инструкцию и выполняет её.

🟢 Совсем новичок

Что такое архитектура процессора?

Архитектура — это правила, по которым программное обеспечение взаимодействует с процессором.

Она определяет, какие инструкции существуют, какие есть регистры, как работает память, какие режимы работы поддерживаются и многое другое.

💡 Что описывает Intel SDM?

Intel Software Developer's Manual описывает архитектуру процессоров Intel и правила взаимодействия программного обеспечения с процессором.

🔵 Начальный уровень

Какие режимы работы существуют?

Архитектура IA-32 поддерживает несколько режимов работы процессора:

  • Реальный режим
  • Защищённый режим
  • Виртуальный режим 8086
  • Режим управления системой
🔵 Начальный уровень

Архитектура Intel 64 расширяет возможности IA-32 и добавляет режим IA-32e.

IA-32e имеет два основных подрежима:

  • 64-bit mode — работа с 64-битными ОС и приложениями.
  • Compatibility mode — возможность запускать многие старые 32-битные приложения.
Режим Назначение
Real Mode Исторический режим, в который CPU попадает после сброса.
Protected Mode Защищённый режим IA-32.
Virtual 8086 Запуск старого 8086-кода внутри защищённого режима.
IA-32e Режим Intel 64.

Основные возможности системной архитектуры

Системная архитектура IA-32 содержит механизмы, необходимые операционной системе для управления процессором и программами.

  • Управление памятью
  • Защита программных модулей
  • Многозадачность
  • Обработка исключений
  • Обработка прерываний
  • Многопроцессорность
  • Управление аппаратными ресурсами
  • Управление питанием
  • Отладка
  • Мониторинг производительности
🟡 Средний уровень

Что происходит после включения компьютера?

После включения питания или перезагрузки процессоры Intel 64 и IA-32 начинают работу в режиме реальной адресации.

Затем программное обеспечение может инициализировать переход в защищённый режим.

Если необходим 64-битный режим, выполняется дальнейшее переключение в IA-32e.

⚙️ Упрощённая цепочка
Power On
   ↓
Real Mode
   ↓
Protected Mode
   ↓
IA-32e
   ↓
64-bit Mode

2.1.1 Global and Local Descriptor Tables

Теперь начинается настоящая низкоуровневая часть.

В защищённом режиме обращения к памяти могут проходить через специальные таблицы: GDT и LDT.

🟢 Совсем новичок

Представь, что память компьютера — это огромный город.

Процессору нужно понимать:

  • куда можно заходить;
  • что находится по адресу;
  • какие права доступа есть;
  • какие области принадлежат коду или данным.
🔵 Начальный уровень

GDT — Global Descriptor Table.

Это таблица дескрипторов, содержащая информацию о сегментах.

LDT — Local Descriptor Table.

Это локальная таблица дескрипторов.

🟡 Средний уровень

Что такое сегментный дескриптор?

Сегментный дескриптор содержит информацию о сегменте.

В частности, он может содержать:

  • базовый адрес;
  • предел сегмента;
  • права доступа;
  • тип сегмента;
  • другие атрибуты.

Селектор сегмента

У каждого дескриптора существует связанный с ним селектор сегмента.

Селектор позволяет процессору определить, какой дескриптор нужно использовать.

🟡 Средний уровень

Упрощённо селектор можно представить как указатель на запись в GDT или LDT.

Segment Selector
       ↓
   GDT / LDT
       ↓
Segment Descriptor
       ↓
Base Address
       +
   Offset
       ↓
Linear Address
🔴 Продвинутый уровень

Для доступа к байту в сегменте необходимо указать селектор сегмента и смещение.

Процессор использует селектор для получения соответствующего дескриптора из GDT или LDT.

Из дескриптора получается базовый адрес сегмента в линейном адресном пространстве.

После этого к базовому адресу добавляется смещение.

Linear Address =
    Segment Base + Offset
🔴 Продвинутый уровень

Но процессор не просто вычисляет адрес.

Он также проверяет права доступа.

Один из важных механизмов — CPL (Current Privilege Level).

CPL определяет уровень привилегий текущего выполняемого кода.

🔴 Продвинутый уровень

Процессор должен знать, где находятся таблицы дескрипторов.

Для этого используются специальные регистры:

  • GDTR — Global Descriptor Table Register
  • LDTR — Local Descriptor Table Register
⚫ Intel SDM

В режиме IA-32e регистры GDTR и LDTR расширяются до 64 бит.

В 64-битном режиме некоторые системные дескрипторы также расширяются.

Например, дескриптор LDT может использовать 64-битный базовый адрес.

2.1.2 System Segments, Segment Descriptors, and Gates

Кроме обычных сегментов кода, данных и стека, архитектура Intel определяет специальные системные сегменты.

🔵 Начальный уровень

К двум важным системным сегментам относятся:

  • TSS — Task State Segment
  • LDT — Local Descriptor Table

Gates — шлюзы

Архитектура также определяет специальные дескрипторы, называемые шлюзами.

  • Call Gates
  • Interrupt Gates
  • Trap Gates
  • Task Gates
🟡 Средний уровень

Шлюзы позволяют организовать защищённый переход к специальным процедурам и обработчикам.

Например, приложение может попытаться обратиться к более привилегированной процедуре.

Процессор проверит права доступа перед тем, как разрешить такой переход.

🔴 Продвинутый уровень

При вызове через Call Gate вызывающая процедура предоставляет селектор шлюза.

Процессор проверяет:

  • CPL текущего кода;
  • уровень привилегий шлюза;
  • уровень привилегий целевого сегмента.

Если переход разрешён, процессор получает селектор целевого сегмента и смещение из Call Gate.

🔴 Продвинутый уровень

Если переход требует изменения уровня привилегий, процессор может переключить стек.

Информация о новом стеке может быть получена из TSS текущей задачи.

Application
     │
     │ Call Gate
     ↓
Privilege Check
     │
     ├── DENIED
     │
     └── ALLOWED
            │
            ↓
      Target Code
            │
            ↓
       New Stack
⚫ Intel SDM

В IA-32e некоторые дескрипторы становятся 16-байтовыми.

К ним относятся:

  • LDT descriptors
  • 64-bit TSS descriptors
  • Call gates
  • Interrupt gates
  • Trap gates

Task Gates в режиме IA-32e не поддерживаются.

🧠 Проверка знаний

Перед переходом дальше попробуй ответить на эти вопросы без подсказки:

  • Что такое CPU?
  • Что такое архитектура процессора?
  • Чем IA-32 отличается от Intel 64?
  • В каком режиме CPU начинает работу после сброса?
  • Что такое GDT?
  • Что такое LDT?
  • Что находится внутри сегментного дескриптора?
  • Зачем нужен сегментный селектор?
  • Что такое GDTR?
  • Что такое CPL?
  • Для чего нужны шлюзы?
  • Что происходит при изменении уровня привилегий?
⚫ Intel SDM — следующий шаг

Если ты понял предыдущие уровни, можно переходить к настоящему тексту Intel SDM.

Здесь уже не нужно упрощать каждое предложение. Теперь задача — научиться читать документацию процессора и самостоятельно разбирать определения, таблицы и алгоритмы.

Именно здесь начинается настоящий системный уровень программирования.