Ohlumon
- 1 year ago
- 0
- 0
Микромонитор (uMonitor, MicroMonitor) — загрузчик встраиваемых операционных систем, на данный момент предназначенный для загрузки с устройств ППЗУ типа .
В отличие от общеизвестного загрузчика u-boot , микромонитор является легковесным (минимум исходников, полная настройка функциональности) и не привязан к ОС Линукс и вообще к какой-либо ОС. Микромонитор позволяет загрузить из ППЗУ в ОЗУ произвольный объектный код и запустить его на исполнение.
Изначально разрабатывался Эдом Саттером (Ed Sutter) для компании Lucent Technologies. Был выложен в виде исходных кодов с открытой лицензией (MicroMonitor Lucent Open License). Автор на данный момент не требует следования правилам GNU-лицензий, то есть предоставления исходных кодов, если используется данный загрузчик.
Единственное требование автора — сохранять текст лицензии в заголовке и по возможности присылать ему исправления и важные дополнения.
Это большая редкость в современном движении Open Source, которое, например, вынуждает открывать проприетарный код, если линкуется библиотека, выпущенная по лицензии GPL, а остальной код при этом является собственной разработкой.
Загрузчик был портирован и использовался на следующих процессорах:
x86 , PowerPC , MIPS , ARM /Xscale, 68K /ColdFire, , SH2/4 , MicroBlaze , Nios
Загрузчик выполняет начальную инициализацию процессора, переносит образ основной операционной системы с флеш-памяти в ОЗУ и запускает его на исполнение.
Таким образом, реальных ограничений на используемую встраиваемую ОС нет. В список поддерживаемых ОС включены:
VxWorks , Linux , uC/OS-II , eCos , RTEMS , Nucleus , , pSOS , etc…
Сам по себе загрузчик не требует операционной системы и не обязывает использовать её в загружаемом ПО, то есть позволяет загружать из ППЗУ в ОЗУ и запускать на исполнение произвольные объектные файлы.
Поддерживаемые форматы объектных файлов: COFF , ELF , (old-style Unix), MSBIN (Windows CE).
При необходимости можно добавить поддержку загрузки объектного файла произвольного формата.
Микромонитор является настраиваемым загрузчиком: части кода загрузчика, не используемые в целевой системе, можно достаточно легко отключать при сборке. При необходимости, можно использовать расширенную функциональность только на этапе разработки и отладки, а потом отключать.
Гибкость не заканчивается сборкой кода: состав и порядок исполнения программного обеспечения настраивается редактированием простого текстового скрипта, можно реализовать запрос у пользователя разрешения на исполнение файла, возможно базовое ограничение полномочий пользователя за счет заложенных в файловую систему уровней пользовательского доступа.
Если при сборке загрузчика был включен терминальный доступ, загрузчик предоставляет интерфейс командной строки ( CLI ) с организацией терминального доступа по последовательному порту (например, RS-232 ) и/или Ethernet (протокол Telnet ).
Реализованный в микромониторе интерфейс командной строки предоставляет достаточную функциональность для обновления файловой системы и управления загрузкой.
Помимо управляющих функций, микромонитор предоставляет возможность наблюдать за процессом загрузки. При необходимости экономии ресурсов логирование отключается.
Основное достоинство MicroMonitor — файловая система tiny file system , оптимизированная для использования с -памятью.
TFS организована в виде односвязного списка, в котором каждый файл представлен коротким (<100 байт) заголовком и непрерывным массивом данных файла. При удалении в заголовке файла выставляется признак удаления. Если необходимо переписать файл, то он «удаляется» (обновлением заголовка) и заменяется на новый файл, добавленный в свободное пространство. Когда свободное пространство заканчивается, запускается процедура дефрагментации , которая в данном случае заключается в перемещении не удаленных файлов к началу файловой системы, то есть реальном удалении данных c -памяти.
TFS обладает следующими достоинствами:
Вместе с тем, TFS упрощена по сравнению с большинством сложных файловых систем:
Кроме того, потенциальным недостатком является использование для энергобезопасной дефрагментации временного сектора, на который ложится повышенная нагрузка.
Тем не менее, для целей загрузки ОС и хранения конфигураций ресурс в 100К стираний можно считать достаточным для бесперебойной работы в течение нескольких лет (с еженедельной дефрагментацией и обновлением файловой системы).