Показать меню

UMon

10.07.2023
0

Микромонитор (uMonitor, MicroMonitor) — загрузчик встраиваемых операционных систем, на данный момент предназначенный для загрузки с устройств ППЗУ типа NOR FLASH.

В отличие от общеизвестного загрузчика u-boot, микромонитор является легковесным (минимум исходников, полная настройка функциональности) и не привязан к ОС Линукс и вообще к какой-либо ОС. Микромонитор позволяет загрузить из ППЗУ в ОЗУ произвольный объектный код и запустить его на исполнение.

Лицензия

Изначально разрабатывался Эдом Саттером (Ed Sutter) для компании Lucent Technologies. Был выложен в виде исходных кодов с открытой лицензией (MicroMonitor Lucent Open License). Автор на данный момент не требует следования правилам GNU-лицензий, то есть предоставления исходных кодов, если используется данный загрузчик.

Единственное требование автора — сохранять текст лицензии в заголовке и по возможности присылать ему исправления и важные дополнения.

Это большая редкость в современном движении Open Source, которое, например, вынуждает открывать проприетарный код, если линкуется библиотека, выпущенная по лицензии GPL, а остальной код при этом является собственной разработкой.

Функциональность, предоставляемая загрузчиком

Поддерживаемые процессоры, операционные системы

Загрузчик был портирован и использовался на следующих процессорах:

x86, PowerPC, MIPS, ARM/Xscale, 68K/ColdFire, Blackfin, SH2/4, MicroBlaze, Nios

Загрузчик выполняет начальную инициализацию процессора, переносит образ основной операционной системы с флеш-памяти в ОЗУ и запускает его на исполнение.

Таким образом, реальных ограничений на используемую встраиваемую ОС нет. В список поддерживаемых ОС включены:

VxWorks, Linux, uC/OS-II, eCos, RTEMS, Nucleus, CMX, pSOS, etc…

Сам по себе загрузчик не требует операционной системы и не обязывает использовать её в загружаемом ПО, то есть позволяет загружать из ППЗУ в ОЗУ и запускать на исполнение произвольные объектные файлы.

Поддерживаемые форматы объектных файлов: COFF, ELF, AOUT (old-style Unix), MSBIN (Windows CE).

При необходимости можно добавить поддержку загрузки объектного файла произвольного формата.

Конфигурация загрузчика, управление процессом загрузки

Микромонитор является настраиваемым загрузчиком: части кода загрузчика, не используемые в целевой системе, можно достаточно легко отключать при сборке. При необходимости, можно использовать расширенную функциональность только на этапе разработки и отладки, а потом отключать.

Гибкость не заканчивается сборкой кода: состав и порядок исполнения программного обеспечения настраивается редактированием простого текстового скрипта, можно реализовать запрос у пользователя разрешения на исполнение файла, возможно базовое ограничение полномочий пользователя за счет заложенных в файловую систему уровней пользовательского доступа.

Если при сборке загрузчика был включен терминальный доступ, загрузчик предоставляет интерфейс командной строки (CLI) с организацией терминального доступа по последовательному порту (например, RS-232) и/или Ethernet (протокол Telnet).

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

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

Файловая система

Основное достоинство MicroMonitor — файловая система tiny file system, оптимизированная для использования с NOR FLASH-памятью.

TFS организована в виде односвязного списка, в котором каждый файл представлен коротким (<100 байт) заголовком и непрерывным массивом данных файла. При удалении в заголовке файла выставляется признак удаления. Если необходимо переписать файл, то он «удаляется» (обновлением заголовка) и заменяется на новый файл, добавленный в свободное пространство. Когда свободное пространство заканчивается, запускается процедура дефрагментации, которая в данном случае заключается в перемещении не удаленных файлов к началу файловой системы, то есть реальном удалении данных c FLASH-памяти.

TFS обладает следующими достоинствами:

  • Предоставляет встраиваемому ПО доступ к данным по имени файла, а не по абсолютному адресу.
  • Обеспечивает непосредственный доступ к данным файла в виде непрерывного массива (за счет непрерываного размещения данных файла).
  • Предоставляет защищенную от сбоев питания процедуру дефрагментации.
  • Файловая система является переносимой между различными устройствами флеш-памяти за счет использования двух уровней абстракции: первый уровень предоставляет обобщённый интерфейс к флеш-памяти со стороны файловой системы, второй уровень определяет реализацию обращения к конкретному типу устройств флеш-памяти.
  • Файловая система не требует непрерывности адресного пространства и может быть предоставлена пользователю в виде единого файлового пространства при размещении данных на нескольких различных носителях.
  • Файловая система позволяет задать четыре уровня пользовательского доступа.
  • Загрузчик исполняемых файлов, предоставляемый файловой системы допускает упаковку отдельных секций объектного файла (COFF, ELF и т. п.), что позволяет загружать программу посекционно без промежуточной распаковки в ОЗУ.
  • В состав файловой системы могут входить файлы-ссылки, указывающие на область FLASH вне файловой системы, в которой размещены перезаписываемые данные. Эти данные исключаются из процедуры дефрагментации.
  • Файловая система позволяет запускать объектный код непосредственно с ППЗУ без загрузки в ОЗУ.
  • Вместе с тем, TFS упрощена по сравнению с большинством сложных файловых систем:

  • Не поддерживается распределение нагрузки для уменьшения износа ППЗУ (ресурс в 100К стираний, свойственный большинству современных микросхем ППЗУ, достаточен для хранения прошивок и конфигураций — основного назначения TFS).
  • Не поддерживается каталогизация и одновременная запись нескольких файлов неизвестного размера.
  • Файлы хранятся в виде непрерывного массива данных.
  • Кроме того, потенциальным недостатком является использование для энергобезопасной дефрагментации временного сектора, на который ложится повышенная нагрузка.

    Тем не менее, для целей загрузки ОС и хранения конфигураций ресурс в 100К стираний можно считать достаточным для бесперебойной работы в течение нескольких лет (с еженедельной дефрагментацией и обновлением файловой системы).

    Еще по этой теме:
    Лицензия на программное обеспечение
    06:00, 26 июль
    Лицензия на программное обеспечение
    Лицензия на программное обеспечение — это правовой инструмент, определяющий использование и распространение программного обеспечения, защищённого авторским правом. Обычно лицензия на программное
    PunBB
    03:20, 19 декабрь
    PunBB
    PunBB — бесплатный веб-форум на PHP. Выпущен под лицензией GNU General Public License. Основными целями разработчиков являются лёгкость, компактность и простота пользовательского интерфейса по
    Common Open Software Environment
    03:05, 14 декабрь
    Common Open Software Environment
    Common Open Software Environment или COSE — организация, созданная в марте 1993 крупными поставщиками Unix с целью определить открытые, унифицированные стандарты для операционных систем. Предыстория
    Genesi
    12:48, 08 декабрь
    Genesi
    Genesi — компьютерная компания. Genesi начинала как небольшая компания, объединившая в себе людей, которые уже много лет работают в компьютерной индустрии. Целью стало создание новой открытой
    Открытый патент
    10:28, 05 декабрь
    Открытый патент
    Открытый патент (англ. open patent), так же называемый патентлефт (англ. patentleft) или копилефт-лицензия на патент (англ. copyleft-style patent license) — патент (в частности, биологический
    YaST
    20:55, 04 декабрь
    YaST
    YaST (Yet another Setup Tool) — программный пакет, появившийся в дистрибутиве SuSE Linux, как проприетарная утилита конфигурации операционной системы и установки/обновления пакетов с ПО. В настоящий
    Комментарии:
    Добавить комментарий
    Ваше Имя:
    Ваш E-Mail: