The OpenNET Project / Index page

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

18.04.2017 22:39  Оценка пригодности ядра Linux для систем с несколькими мегабайтами ОЗУ

Майкл Опденакер (Michael Opdenacker), занимающийся разработкой встраиваемых систем, рассказал о методах, которые позволяют сформировать минимальную сборку ядра и системного окружения, пригодную для применения на системах с несколькими мегабайтами оперативной памяти или используемую в качестве загрузчика других систем. В частности, показано, что несмотря на существенное разрастание кодовой базы ядра и забвение проекта по минимизации ядра, вполне реально урезать современное ядро 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, нацеленный на обеспечение сборки ядра при помощи Clang, заброшен в 2015 году, но разработчики из Linaro возродили работу и уже адаптировали патчи для ядра 4.9. В 2012 году для ядра были предложены патчи, использующие LTO для отбрасывания неиспользуемого кода (например, для ARM патчи позволяли сократить размер на 6%), но они не были приняты в состав ядра так как Линус выступает против подобных оптимизаций, которые могут привести к непредсказуемому поведению.

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



  1. Главная ссылка к новости (https://www.linux.com/news/eve...)
  2. OpenNews: Анонсирован проект LLVMLinux, нацеленный на обеспечение сборки ядра Linux при помощи Clang
  3. OpenNews: Оптимизация кода компилятором может привести к появлению проблем безопасности в приложениях
  4. OpenNews: Проект по задействованию LTO-оптимизации при сборке ядра Linux
  5. OpenNews: Линус Торвальдс выступил с резкой критикой GCC 4.9.0
  6. OpenNews: Дэниэл Бернштейн выступил с инициативой создания Си-компилятора для защищённого ПО
Лицензия: CC-BY
Тип: Обобщение
Ключевые слова: kernel, linux
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, dimqua, 23:36, 18/04/2017 [ответить] [смотреть все]
  • +2 +/
    >всего 84KB (BusyBox занимает 100Кб)

    Целых 16кб разница!

     
     
  • 2.43, папа карло, 14:38, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]
  • +11 +/
    Это целая банка памяти в спектруме!
     
  • 2.64, scorry, 12:01, 21/04/2017 [^] [ответить] [смотреть все] [показать ветку]
  • +/
    А десять бабушек — уже рубль.
     
  • 1.2, Аноним, 23:38, 18/04/2017 [ответить] [смотреть все]
  • –19 +/
    > 2017
    > несколько мегабайт озу на устройстве
    > у худшей Малинки целых 256
     
     
  • 2.7, Андрей, 00:38, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]
  • +7 +/
    А у микроконтроллера, который навороченный, что его уже SoC называют, а не просто uC - STM32 (Cortex-M4/M7/H7) всё равно "только" 1-2 МБ на борту. А вот если ужать до 6 МБ, придётся подключить только небольшую SDRAM микросхемку и наслаждаться Ядром.
     
     
  • 3.8, h31, 01:01, 19/04/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Линукс там всё равно не запустишь, потому что там нет MMU Был MMU-less форк ядр... весь текст скрыт [показать]
     
     
  • 4.13, Андрей, 05:09, 19/04/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Раньше нет А в последнее время там разве ничего не поменялось Ведь идут коммит... весь текст скрыт [показать]
     
     
  • 5.14, Андрей, 05:18, 19/04/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    arch arm Kconfig config MMU bool MMU-based Paged Memory Management Sup... весь текст скрыт [показать]
     
  • 4.56, Аноним, 02:29, 20/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Однако на STM32F4 ядро все-таки запускают См arch arm mach-stm32 и пр ... весь текст скрыт [показать]
     
  • 3.60, Аноним, 10:20, 20/04/2017 [^] [ответить] [смотреть все]  
  • +/
    >>и наслаждаться Ядром.

    Вижу ценителя тонкой иронии

     
  • 1.3, Dkg, 23:39, 18/04/2017 [ответить] [смотреть все]  
  • –3 +/
    Use boinc
     
  • 1.4, Аноним, 23:50, 18/04/2017 [ответить] [смотреть все]  
  • +2 +/
    Openwrt с не самым старым ядром 4 4 запускается на маршрутизаторах с 8Mb опера... весь текст скрыт [показать]
     
     
  • 2.5, Аноним, 00:05, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +3 +/
    Почти любой MCU ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.10, h31, 01:04, 19/04/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Для MCU есть свои ОС со своими плюсами и минусами Да и задачи там совсем другие... весь текст скрыт [показать]
     
     
  • 4.33, Аноним, 10:59, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Но при этом в этой отрасли существует большой спрос на вроде бы микроконтроллерн... весь текст скрыт [показать]
     
     
  • 5.58, h31, 05:11, 20/04/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    QNX, VxWorks - ни разу не микроконтроллерные ОС Это абсолютно полноценные систе... весь текст скрыт [показать]
     
  • 2.9, Аноним, 01:01, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    А можно пример устройства с 8mb ram на котором запускается openwrt?
     
     
  • 3.11, Ahulinux, 02:00, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    https://wiki.openwrt.org/toh/start
    https://wiki.openwrt.org/toh/asus/wl600g
     
     
  • 4.12, Аноним, 02:51, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Там же 2 чипа по 8 (общий объем 16) или я чего не понял?
     
     
  • 5.24, dmytro18, 09:05, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Да, там 16 И на офсайте информация, что нужно не менее 4 МБ пзу и 16МБ озу А р... весь текст скрыт [показать]
     
     
  • 6.36, Аноним, 12:36, 19/04/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    На моей сетевой кормушке с openwrt Total Available 6720 kB 28580 kB 23 Есл... весь текст скрыт [показать]
     
     
  • 7.54, dmytro18, 22:39, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Думаю, можно самому собрать под 16 МБ Но если это чудо заставить работать шлю... весь текст скрыт [показать]
     
  • 1.15, Balancer, 05:26, 19/04/2017 [ответить] [смотреть все]  
  • +21 +/
    На моей первой машине с Linux было 4Мб ОЗУ. 486DX2-66. Так там ещё и GUI стоял :)
     
     
  • 2.23, Константавр, 08:27, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +7 +/
    Не тереби душу, как подумаешь, что в этих четырёх мегабайтах ещё и прикладное ПО крутилось, помимо ядра и гуёв...
     
  • 2.26, Aviagr, 09:32, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Буржуй Я начинал экспериментировать с обезьянкой еще на 386 приходя с работы... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.28, Константавр, 10:07, 19/04/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Да, всё было медленно, но это обуславливалось дисками, шинами и т д При этом ка... весь текст скрыт [показать]
     
     
  • 4.31, devl547, 10:53, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Уже очень и очень давно make localmodconfig, make localyesconfig ... весь текст скрыт [показать]
     
     
  • 5.32, Константавр, 10:55, 19/04/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    О, не знал не особо и лез в эти дела Спасибо И что, прям можно сканпелять и ... весь текст скрыт [показать]
     
     
  • 6.38, cmp, 13:22, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Вообще любой дистр запускается через initrd куда кладется модуль ядра - драйвер ... весь текст скрыт [показать]
     
     
  • 7.39, cmp, 13:26, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    А ну и соответственно в любой дистр входит тулза mkinitrd, которая как раз и опр... весь текст скрыт [показать]
     
  • 6.46, annual slayer, 16:27, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    его демон дожен провисеть достаточно долго пока ты юзаешь полное ядро он просто ... весь текст скрыт [показать]
     
     
  • 7.52, Константавр, 19:33, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Спасибо, буду знать Хотя, сомневаюсь, что это сильно уменьшит размер ядра в пам... весь текст скрыт [показать]
     
     
  • 8.61, annual slayer, 11:56, 20/04/2017 [^] [ответить] [смотреть все]  
  • +/
    значительно ускорит сборку, когда я пробовал получилось раз в 5 быстрее... весь текст скрыт [показать]
     
  • 3.76, pavlinux, 03:01, 25/04/2017 [^] [ответить] [смотреть все]  
  • +/
    > Буржуй! Я начинал экспериментировать с "обезьянкой" еще на 386: приходя с работы,
    > нажимал кнопку Включения и успевал поужинать - пока комп загрузится...

    Чо вы пя...тите, на 386SX-40 с 2 мегами он 1-1.5 мин. грузится.

     
  • 2.63, Валик228, 06:21, 21/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    на моей первой машине с линукс было тоже 4Мб ОЗУ Это был Cyrix 6x86 И там ма... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.77, pavlinux, 03:02, 25/04/2017 [^] [ответить] [смотреть все]  
  • +/
    >> На моей первой машине с Linux было 4Мб ОЗУ. 486DX2-66. Так там ещё и GUI стоял :)
    > на моей первой машине с линукс было тоже 4Мб ОЗУ. Это был Cyrix 6x86...

    Это уже Пень, иди отседа, молодой ещё.:-P

     
  • 1.17, Аноним, 06:09, 19/04/2017 [ответить] [смотреть все]  
  • +10 +/
    на моем первом пентиуме ОЗУ - 32 мб и надо сказать - 95-я винда крутилась, офис, в пэйджмэйкере верстал газету, в кореле отрисовывал логотипы. Что-то сейчас так может?
     
     
  • 2.18, angra, 07:00, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +6 +/
    Тебе расказать, что считалось в своё время на программируемых калькуляторах с 105 байт(не мега, не кило, просто байт) на код и 15-ю регистрами памяти?
     
     
  • 3.20, жабабыдлокодер, 07:45, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Это у самой крутой модели. А у большинства - 98 и 14.
     
     
  • 4.44, Balancer, 15:24, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    МК-61 и МК-52 были на порядок распространённее, чем Б3-34 и МК-54 ... весь текст скрыт [показать]
     
     
  • 5.47, Aviagr, 17:13, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    У меня до сих пор МК-61 со справочником Дьяконова и старыми тетрадками с лекциям... весь текст скрыт [показать]
     
     
  • 6.69, Balancer, 13:56, 21/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Аналогично Дьяконов, Шелест А тетрадка с программами даже в djvu переведена ... весь текст скрыт [показать]
     
     
  • 7.71, iZEN, 17:50, 21/04/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    А я могу http www pixic ru i I0G1W3F8i1l0e8n4 jpg неужели ваш линукс так дегр... весь текст скрыт [показать]
     
  • 5.50, _, 18:15, 19/04/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    И эта ... там байтов - не было :) Ну если уж совсем занудничать :)
     
     
  • 6.68, Balancer, 13:52, 21/04/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Байты были Просто хранились не в параллельно адресуемой памяти, а в кольцевом б... весь текст скрыт [показать]
     
  • 5.65, scorry, 12:23, 21/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Это смотря в каком году оценивать Не забывайте ещё и про Б3-21 ... весь текст скрыт [показать]
     
     
  • 6.67, Balancer, 13:48, 21/04/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    В абсолютных числах Б3-34 было выпущено мало И они были экзотикой А вот МК-... весь текст скрыт [показать]
     
     
  • 7.70, scorry, 15:29, 21/04/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    пожав плечами Программируемый калькулятор на моём первом курсе _вообще_ был эк... весь текст скрыт [показать]
     
     
  • 8.72, Balancer, 21:13, 21/04/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Это в каком году Я ПМК увлёкся в 1988 году Тогда Б3-34 уже вообще давно не вып... весь текст скрыт [показать]
     
     
  • 9.73, scorry, 18:29, 22/04/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    1984 Вы так спрашиваете, будто до 1988 года и других годов-то не было - ... весь текст скрыт [показать]
     
  • 2.19, angra, 07:17, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +5 +/
    Ну и чуть чуть арифметики Для времен win95 рабочее разрешение экрана было 640x4... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.25, ryoken, 09:27, 19/04/2017 [^] [ответить] [смотреть все]  
  • –1 +/
    Это, простите, где такие ужасы были Лично застал появление вин95, причём не в м... весь текст скрыт [показать]
     
     
  • 4.27, Онаним, 09:40, 19/04/2017 [^] [ответить] [смотреть все]  
  • +2 +/
    В Windows 3 1 Фотку моих седых мудей сам найдешь ... весь текст скрыт [показать]
     
  • 4.29, angra, 10:37, 19/04/2017 [^] [ответить] [смотреть все]  
  • +1 +/
    Это зависит от того, где видели Если у людей, работавших с графикой, то там кон... весь текст скрыт [показать]
     
     
  • 5.40, Аноним, 13:31, 19/04/2017 [^] [ответить] [смотреть все]  
  • +3 +/
    У меня такая была Ставил ... весь текст скрыт [показать]
     
  • 5.45, Balancer, 15:32, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Эта карта появилась на свет только в 1995 году, а в России стала популярна тольк... весь текст скрыт [показать]
     
  • 5.49, iZEN, 17:47, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    С 1МБ видеокартой S3Trio64 получалось 65536 цветов 800x600 пикселей на 14 монит... весь текст скрыт [показать]
     
  • 4.66, scorry, 12:24, 21/04/2017 [^] [ответить] [смотреть все]  
  • +/
    800 на 600 ещё надо было заработать Как и сопроцессор, кстати ... весь текст скрыт [показать]
     
  • 3.78, www2, 18:12, 25/04/2017 [^] [ответить] [смотреть все]    [к модератору]  
  • +/
    >Также в 1mb можно уложиться при разрешении 800x600 и теми же 256 цветов.

    Я пользовался разрешением 1024x768 при 256 цветах - в мегабайт вмещалось. Работалось достаточно комфортно. Сейчас только глубина цвета увеличилась до 32 бит и экран расползся вширь, что комфорта работе не добавило ничуть. Видео на ютубе, конечно, при 256 цветах не посмотришь, но если бы браузер при развёртывании видео на полный экран переключался бы в режим 800x600 при 16 бит, то этого было бы вполне достаточно для просмотра видео - это разрешение тоже умещается в 1 мегабайт.

     
  • 1.21, anonymous, 08:07, 19/04/2017 [ответить] [смотреть все]  
  • +/
    Busybox - это же как архиватор, что засунешь в него, то он и будет уметь. И места жрать соответственно.
     
     
  • 2.30, Andrey Mitrofanov, 10:46, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Пермиссивным борцам с GPL это все равно ... весь текст скрыт [показать] [показать ветку]
     
  • 1.22, Аноним, 08:15, 19/04/2017 [ответить] [смотреть все]  
  • +/
    Актуально для LEDE и желающих оставить поддержку роутеров с 4Mb RAM!
     
  • 1.34, grsec, 11:27, 19/04/2017 [ответить] [смотреть все]  
  • –1 +/
    Я не очень понимаю. Они пытаются приспособить ядро+userspace (минимальный) к 8-16 MB RAM, когда на 8ми работали 95е форточки. Где подвох?
     
     
  • 2.35, angra, 11:51, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Линукс времен win95 тоже требовал мало памяти Но ни его, ни форточки на совреме... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.42, Аномномномнимус, 14:08, 19/04/2017 [^] [ответить] [смотреть все]  
  • +/
    Есть ещё ESP8266 и аналоги Очень распространённые семки Но взять какой-нить ... весь текст скрыт [показать]
     
  • 3.57, Ну тот который, 02:57, 20/04/2017 [^] [ответить] [смотреть все]  
  • –2 +/
    Ну почему?
     
  • 2.51, _, 18:20, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    Запусти 10-ку на таком объёме памяти, потом приходи всех поливать Ну а не за... весь текст скрыт [показать] [показать ветку]
     
  • 1.37, Нанобот, 13:06, 19/04/2017 [ответить] [смотреть все]  
  • +/
    судя по оригинальной презентации, время от времени кто-то пытается что-то начать делать, но потом забрасывает. потому что добавить 16мб памяти дешевле, чем тратить время разработчиков на оптимизации
     
  • 1.41, King, 14:05, 19/04/2017 [ответить] [смотреть все]  
  • +/
    Проблема современного ПО даже не в том, что оно жрет память как свинья, а в том, что не понятно зачем ему столько памяти. Если с видео памятью все понятно разрешение X глубина цвета+ N буферов, то с оперативкой мрак полный.
     
     
  • 2.48, antonkachsheev, 17:15, 19/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +4 +/
    Ну как же. Жабаскриптом транслировать видео про котиков в 4k.
     
  • 1.53, Аноним, 22:14, 19/04/2017 [ответить] [смотреть все]  
  • –1 +/
    Кто бы написал статью - минимальный линукс для нормального десктопа по шагам с л... весь текст скрыт [показать]
     
     
  • 2.55, Аноним, 00:47, 20/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    LFS?
     
  • 2.59, Andrey Mitrofanov, 09:12, 20/04/2017 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    > Кто бы написал статью - минимальный линукс для нормального десктопа по шагам
    > с легким GUI.

    BLFS не возьмёте?

     
  • 1.62, anonim, 22:35, 20/04/2017 [ответить] [смотреть все]  
  • +/
    Почитайте более интересную статистику https://lkml.org/lkml/2017/4/4/710
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList