10.1 Linux на системах без MMU

Предыдущая  Содержание  Следующая V*D*V

Стандартный Linux в основном работает на процессорах общего назначения, которые имеют встроенную аппаратную поддержку для управления памятью в виде MMU (Memory Management Unit, блок управления памятью). MMU, по существу, обеспечивает следующие основные функции:

 

Трансляцию адреса с помощью TLB (* TLB означает Translation LookUp Buffer, буфер быстрого преобразования адреса, аппаратную таблицу, используемую для перевода физического адреса в виртуальный и наоборот.)

Вызов страниц по требованию с использованием ошибок из-за отсутствия страниц в основной памяти

Защиту адресов с помощью режимов защиты (* Процессоры обеспечивают различные виды защиты, например у процессоров Intel это Real mode, реальный режим, Protected mode, защищённый режим, и так далее. Для обращения к разным диапазонам адресов памяти могут быть запрограммированы разные режимы.)

 

Linux тесно интегрирован с реализацией виртуальной памяти с использованием MMU и, следовательно, никогда не был предназначен для процессоров без MMU. Поскольку Linux имел такую зависимость от MMU, необходимо было перестроить некоторые части кода управления виртуальной памятью в ядре. Идея запуска Linux на процессорах без MMU и влияние этих изменений на в то время стабильное ядро Linux 2.0 не были ясными для всех. Поэтому для поддержки Linux на процессорах без MMU был начат новый проект, проект uClinux (http://www.uclinux.org).

Проект uClinux предоставлял Linux, который был способен работать на процессорах без MMU. Хотя uClinux был всегда сосредоточен на Linux для систем без MMU, поддержка имеющих MMU процессоров всегда остаётся. uClinux добавляет в ядро поддержку процессоров без MMU, но ничего не удаляет в этом процессе, небольшой, но важный момент, который часто упускается из виду при обсуждении uClinux. Следует отметить, что uClinux способен также работать на системах с MMU, но эта глава посвящена только uClinux, работающему на системах без MMU.

 

Предыдущая  Содержание  Следующая