Выбор кабачков для RFS

Наш продукт имеет следующую конфигурацию, процессор iMx6, 2 ГБ eMMC, 512 МБ ОЗУ, пару портов Ethernet и порты USART. Это будет 24/7 365 рабочих дней.

Мы планируем создать минимальный образ Linux (Kernel + RFS) размером от 7 до 10 МБ, оставить наше основное приложение и пользовательский драйвер ядра в отдельном разделе squashfs размером 2 МБ (поскольку именно это мы будем часто обновлять в поле мы хотим, чтобы этот раздел был отдельным и маленьким).

Другой ext4 раздел чтения / записи данных для хранения наших постоянных данных. За исключением раздела данных, мы хотим, чтобы все остальные разделы были доступны только для чтения.

Мои запросы

Поскольку у нас есть образ ОС Linux меньшего размера (ядро + RFS), можем ли мы иметь весь RFS в качестве initramfs?

Имеет ли RFS как initramfs какое-либо значение? (ОЗУ будет израсходовано больше, я думаю, около 20–30 МБ не более, учитывая, какой объем ОЗУ у нас есть, я считаю, что это не должно быть проблемой)

Другое решение - использовать RFS в качестве squashfs, это экономит место. Имеет ли вышесказанное какие-либо другие преимущества перед initramfs?

Если у нас есть squashfs, тогда нам нужно также объединить монтирование, чтобы монтировать раздел приложения только для чтения и раздел чтения / записи данных вместе.

Если мы пойдем с initramfs, то я думаю, нам не нужно реализовывать объединение монтирования. Это понимание правильно?

Это наш первый проект в Linux, поэтому я хотел бы получить отзывы от опытных людей, которые использовали такие RFS

2 ответа

Решение

@ все мы смогли достичь решения без использования unionfs или union mount. Хотя мы использовали файловую систему squashfs (только для чтения RFS), когда мы монтировали раздел ext4 в /run, он позволяет нам читать и писать. Linux обнаружил, что смонтированный раздел является разделом R/W и позволяет нам выполнять соответствующие операции, даже если RFS является файловой системой только для чтения. Я считаю, что вы должны использовать unionFS или union mount только в том случае, если вы хотите обновить части содержимого RFS только для чтения.

Я думаю, что если вы хотите поместить некоторые части RFS в оперативную память, вы должны очень тщательно продумать, что именно вы там поместите (например, для ведения журнала используется каталог /var/log/, который будет уменьшать объем оперативной памяти каждый раз, когда любой файл журнала будет быть написано).

Кроме того, насколько я помню, существует множество решений для встраиваемых систем, которые имеют такую ​​архитектуру, как ваша: например, взгляните на системы без сохранения состояния или, возможно, вы хотите использовать UnionFS для своих целей.

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