The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Оценка пригодности ядра Linux для систем с несколькими мегаб..."
Отправлено opennews, 18-Апр-17 23:36 
Майкл Опденакер (Michael Opdenacker), занимающийся разработкой встраиваемых систем, рассказал (https://www.linux.com/news/event/open-source-summit-na/2017/...) о методах, которые позволяют сформировать минимальную сборку ядра и системного окружения, пригодную для применения на системах с несколькими мегабайтами оперативной памяти или используемую в качестве загрузчика других систем. В частности, показано (http://free-electrons.com/pub/conferences/2017/elc/opdenacke...), что несмотря на существенное разрастание кодовой базы ядра и забвение проекта по минимизации ядра (https://tiny.wiki.kernel.org/use_cases), вполне реально урезать современное ядро Linux до состояния, способного работать на системах с 2-6 Мб ОЗУ и требующего 2-4 Мб для размещения на постоянном носителе.

Сокращение размера достигается не только отключением расширенной функциональности ядра ("make tinyconfig"), но и оптимизацией процесса сборки. Например,
сборка ядра Linux 4.10 при помощи gcc 6.2 для ARM позволяет на 0.4% сократить размер, по сравнению со сборкой в  gcc 4.7. Включение режима "-Os"  и оптимизаций на этапе связывания (LTO) в GCC ("gcc -Os -flto") даёт возможность сократить размер на 2.8%. Применение Clang 3.8.1 по сравнению с gcc 6.2 без LTO обеспечивает сокращение размера на 5%, а с LTO на 2.3%. Применение сборки с использованием набора инструкций Thumb ("-mthumb", смесь 16- и 32-разрядных инструкций для ARM) вместо ("-marm", 32-разрядные инструкции) позволяет сократить размер на 6.8%. Сжав ядро методом XZIP можно выиграть  6-10 Кб, а собрав ядро без поддержки ptrace можно сократить размер на ещё 14 Кб.


Проект LLVM Linux (http://llvm.linuxfoundation.org/), нацеленный на обеспечение (http://llvm.linuxfoundation.org/) сборки ядра при помощи Clang, заброшен в 2015 году, но разработчики из Linaro возродили работу и уже адаптировали (https://android-git.linaro.org/kernel/hikey-clang.git) патчи для ядра 4.9. В 2012 году для ядра были предложены (https://www.opennet.ru/opennews/art.shtml?num=34619) патчи, использующие LTO для отбрасывания неиспользуемого кода (например, для ARM  патчи позволяли сократить размер на 6%), но они не были приняты в состав ядра так как Линус выступает против подобных оптимизаций, которые могут (https://www.opennet.ru/opennews/art.shtml?num=38293) привести (https://www.opennet.ru/opennews/art.shtml?num=40281) к непредсказуемому поведению.

Аналогично показаны способы создания минимального системного окружения, которое требует для полноценной работы 8-16 Мб ОЗУ и, в зависимости от задач, занимает от нескольких сотен килобайт до  8-16 Мб дискового пространства. Окружение строится на основе системной библиотеки musl (https://www.musl-libc.org/faq.html)  и универсальном наборе системных утилит toybox (http://landley.net/toybox/about.html), занимающим всего 84KB (BusyBox занимает 100Кб). Для сокращения размера файловой системы рекомендуется использовать initramfs, что позволит также обойтись без инициализации ФС и драйверов хранилища. Для встраиваемых систем с достаточным размером ОЗУ для сокращения размера рекомендовано использовать ФС со сжатием, такие как SquashFS, JFFS2 и ZRAM.

URL: https://www.linux.com/news/event/open-source-summit-na/2017/...
Новость: http://www.opennet.ru/opennews/art.shtml?num=46400

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру