<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Оценка пригодности ядра Linux для систем с несколькими мегабайтами ОЗУ]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=38871</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=38871&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Оценка пригодности ядра Linux для систем с несколькими мегабайтами ОЗУ».]]></description>
		<lastBuildDate>Tue, 18 Apr 2017 16:39:42 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Оценка пригодности ядра Linux для систем с несколькими мегабайтами ОЗУ]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=454506#p454506</link>
			<description><![CDATA[<p><br />&nbsp; &nbsp; Майкл Опденакер (Michael Opdenacker), занимающийся разработкой встраиваемых систем, рассказал о методах, которые позволяют сформировать минимальную сборку ядра и системного окружения, пригодную для применения на системах с несколькими мегабайтами оперативной памяти или используемую в качестве загрузчика других систем. В частности, показано, что несмотря на существенное разрастание кодовой базы ядра и забвение проекта по минимизации ядра, вполне реально урезать современное ядро Linux до состояния, способного работать на системах с 2-6 Мб ОЗУ и требующего 2-4 Мб для размещения на постоянном носителе.&nbsp; &nbsp; <span class="postimg"><img src="https://www.opennet.ru/opennews/pics_base/0_1492546096.png" alt="https://www.opennet.ru/opennews/pics_base/0_1492546096.png" /></span><br />&nbsp; &nbsp; &nbsp; Сокращение размера достигается не только отключением расширенной функциональности ядра (&quot;make tinyconfig&quot;), но и оптимизацией процесса сборки. Например,&nbsp; &nbsp;сборка ядра Linux 4.10 при помощи gcc 6.2 для ARM позволяет на 0.4% сократить размер, по сравнению со сборкой в&nbsp; gcc 4.7. Включение режима &quot;-Os&quot;&nbsp; и оптимизаций на этапе связывания (LTO) в GCC (&quot;gcc -Os -flto&quot;) даёт возможность сократить размер на 2.8%. Применение Clang 3.8.1 по сравнению с gcc 6.2 без LTO обеспечивает сокращение размера на 5%, а с LTO на 2.3%. Применение сборки с использованием набора инструкций Thumb (&quot;-mthumb&quot;, смесь 16- и 32-разрядных инструкций для ARM) вместо (&quot;-marm&quot;, 32-разрядные инструкции) позволяет сократить размер на 6.8%. Сжав ядро методом XZIP можно выиграть&nbsp; 6-10 Кб, а собрав ядро без поддержки ptrace можно сократить размер на ещё 14 Кб.&nbsp; &nbsp; Проект LLVM Linux, нацеленный на обеспечение сборки ядра при помощи Clang, заброшен в 2015 году, но разработчики из Linaro возродили работу и уже адаптировали патчи для ядра 4.9. В 2012 году для ядра были предложены патчи, использующие LTO для отбрасывания неиспользуемого кода (например, для ARM&nbsp; патчи позволяли сократить размер на 6%), но они не были приняты в состав ядра так как Линус выступает против подобных оптимизаций, которые могут привести к непредсказуемому поведению.&nbsp; &nbsp; &nbsp; Аналогично показаны способы создания минимального системного окружения, которое требует для полноценной работы 8-16 Мб ОЗУ и, в зависимости от задач, занимает от нескольких сотен килобайт до&nbsp; 8-16 Мб дискового пространства. Окружение строится на основе системной библиотеки musl&nbsp; и универсальном наборе системных утилит toybox, занимающим всего 84KB (BusyBox занимает 100Кб). Для сокращения размера файловой системы рекомендуется использовать initramfs, что позволит также обойтись без инициализации ФС и драйверов хранилища. Для встраиваемых систем с достаточным размером ОЗУ для сокращения размера рекомендовано использовать ФС со сжатием, такие как SquashFS, JFFS2 и ZRAM.&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; Источник: <strong>http://www.opennet.ru/opennews/art.shtml?num=46400</strong><br />&nbsp; &nbsp; <br /><a href="http://www.opennet.ru/opennews/art.shtml?num=46400">_источник</a></p>]]></description>
			<author><![CDATA[null@example.com (R2-D2)]]></author>
			<pubDate>Tue, 18 Apr 2017 16:39:42 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=454506#p454506</guid>
		</item>
	</channel>
</rss>
