В процессорах ARM Cortex-M отсутствует MMU, а в некоторых реализациях, таких как STMicroelectronics 'STM32F series, имеется дополнительный модуль защиты памяти (MPU).
В отличие от других ядер L4, F9 microkernel предназначен для сред только для MPU, оптимизированных для Cortex M3/M4, где поддерживается архитектура архитектуры архитектуры защищенной памяти (PMSAv7) ARMv7. Системное адресное пространство системы, совместимой с PMSAv7, защищено MPU. Кроме того, доступная оперативная память обычно мала (около 256 Кбайт), но с помощью bit-banding можно использовать большее физическое адресное пространство (до 32 бит).
Память, защищенная MPU, разделена на несколько регионов, с количеством поддерживаемых регионов. РЕАЛИЗАЦИЯ ОПРЕДЕЛЕНА. Например, STM32F429, содержит 8 отдельных областей памяти. В PMSAv7 минимальный размер области защиты составляет 32 байта, а максимальный - до 4 ГБ. MPU обеспечивает полный доступ по:
- защиты региона
- Перекрытия защиты область
- Право доступа
- Экспортной памяти атрибутов системы
MPU несоответствие и нарушение прав доступа ссылаться на программируемый приоритет MemManage обработчик ошибок.
управления памятью в микроядре F9, можно разделить на три концепций:
- памяти пула, который представляет собой область PAS с определенными атрибутами (HARDCODED в МОС таблице карты).
- адресное пространство - отсортированный список fpages, привязанных к определенным темам (-ам).
- гибкая страница - в отличие от традиционных страниц в L4, fpage представляют собой область MPU.
Если адресное пространство разделено типом задачи, то это не микро-ядро. Например, можно сказать, что задача вызывает как драйверы, так и вызовы ядра (одно и то же адресное пространство), тогда вызов драйверов может по-прежнему повреждать память ядра, поскольку он имеет доступ. Как предотвратить повреждение ядра другими модулями только с защитой задач? – sniper
Изоляция программного обеспечения (SFI) и микроядро - это действительно разные понятия. С точки зрения проектирования системы мы должны запретить драйверу устройства получать доступ к области памяти, зависящей от конкретной задачи/потока, с помощью эффективного IPC или механизма совместного использования ресурсов на основе возможностей. – jserv