Что это значит, что занимаемая площадь / ядро ​​ОС составляет 400 байт?

Я исследую TinyOS для школьного задания и читаю, что "основная ОС составляет 400 байт", а другой источник говорит: "Размер TinyOS составляет 400 байт". Что именно это означает? Это фактическое пространство, которое он занимает на жестком диске? Насколько велика "традиционная" ОС, такая как Windows?

Ответы, которые я нашел о том, что на самом деле означает "след", тоже сбивают с толку. Потому что это, кажется, означает как фактическое физическое пространство, так и пространство памяти / диска.

1 ответ

Решение

Просто для пояснения истории сами авторы TinyOS объяснили, что TinyOS не является операционной системой:

TinyOS имеет модель программирования на основе компонентов, кодифицированную языком nesC, диалект языка C. TinyOS не является ОС в традиционном смысле; это среда программирования для встраиваемых систем и набор компонентов, которые позволяют встроить ОС для каждого приложения в каждое приложение. Типичное приложение имеет размер около 15 КБ, из которых базовая ОС составляет около 400 байт; самое большое приложение, похожее на базу данных, имеет размер около 64 Кбайт.

TinyOS - это система сборки программного обеспечения, разработанная, чтобы позволить разработчикам программного обеспечения легче создавать программное обеспечение для действительно крошечных устройств ( таких как этот беспроводной датчик), которые не имеют жесткого диска. Вместо этого программа обычно хранится внутри микроконтроллера устройства - например, устройство, к которому я подключен, имеет 48 Кбайт флэш-памяти (небольшие встроенные устройства, подобные этим, часто используют флэш-память для хранения своей программы). 48k кода не очень много, поэтому очень важно, чтобы при создании программного обеспечения для загрузки на устройство оно занимало как можно меньше места.

Таким образом, "базовый размер 400 байт" означает, что поверх кода, который вы (разработчик программного обеспечения) пишете для выполнения всего, что нужно вашему крошечному устройству, только среда TinyOS (которая поддерживает и предоставляет сервисы для вашего кода) добавляет дополнительные 400 байт (что действительно здорово!) к вашему программному коду, который будет фактически загружен во флэш-память устройства. Однако это не единственные накладные расходы - в зависимости от устройства, TinyOS может также включать различные различные драйверы поддержки для любых чипов и компонентов, существующих на этом устройстве.

Смотрите рисунок 6 в этой статье для некоторых примеров реальных размеров программы.

Из-за этого я обнаружил, что создание одного и того же приложения для разных устройств с использованием TinyOS может дать очень разные результаты. Например, если я создаю действительно простую программу для беспроводного датчика MicaZ, я получаю:

compiled NullAppC to build/micaz/main.exe
         610 bytes in ROM
           4 bytes in RAM

Это означает, что общий программный код плюс базовая ОС (400 байт) составляет 610 байт (программа также будет использовать 4 байта ОЗУ). Однако, если я создам ту же программу для TelosB:

compiled NullAppC to build/telosb/main.exe
        1328 bytes in ROM
           6 bytes in RAM

1328 байт! Очевидно, что для TelosB требуется гораздо больше дополнительного программного обеспечения, предположительно потому, что компоненты TelosB требуют более сложного дополнительного программного драйвера.

Другие вопросы по тегам