top
logo


Intel представил сокращённый вариант сетевого стека для Linux PDF Печать E-mail
07.05.14 11:20

Разработчик из компании Intel представил для обсуждения и рецензирования в списке рассылки разработчиков ядра Linux упрощённую реализацию сетевого стека, рассчитанную на использование на маломощных встраиваемых системах. Разработка выполнена в процессе экспериментов по запуску Linux на системах с небольшим объёмом оперативной и постоянной памяти, таких как платы на базе процессоров Intel Quark, в которых может поставляться 2-4 Мб памяти.

В текущем виде, включение в сборку сетевого IPv4-стека Linux приводит к увеличению размера примерно на 400 Кб, что ставит крест на использовании традиционного стека на системах с 2 Мб памяти. Применение легковесного сетевого стека LWIP, работающего в пространстве пользователя, приводит к увеличению потребности в памяти каждого связанного с ним приложения примерно на 100 Кб. По мнению разработчиков, штатный сетевой стек ядра Linux сам по себе достаточно компактный, но раздувается из-за большого числа поддерживаемых функций.

Главная идея разработчиков из Intel связана с предоставлением возможности сборки урезанной версии сетевого стека, содержащей только минимально необходимую функциональность. Многие из расширенных возможностей штатного сетевого стека Linux востребованы только на серверных системах и могут быть удалены без негативного влияния на работу клиентских приложений. Такой урезанный стек может успешно конкурировать с LWIP.

Так как применение ifdef для исключения каждой порции излишнего кода отмечено как очень трудоёмкая задача, при создании патча разработчики Intel активно полагаются на использование техники оптимизации на этапе связывания (LTO). Основные ссылки на вызов опциональных компонентов экранируются через ifdef, а весь оставшийся без вызова используемый код чистится силами компилятора. Для некоторых возможностей, которые невозможно просто удалить, созданы упрощённые аналоги. В итоге, применение подготовленного патча с включением LTO-оптимизаций позволило сократить размер полнофункционального сетевого стека до 170 Кб.

Планируется подготовить три опции сборки:

  1. Главная ссылка к новости (https://lkml.org/lkml/2014/5/5/686...)
Тип: Интересно / К сведению
Ключевые слова: linux, kernel, tcpip, stack, (найти похожие документы)
При перепечатке указание ссылки на opennet.ru обязательно
Реклама
id=adv>
  1.1, бедный буратино, 14:28, 07/05/2014 [ответить] [смотреть все]    [к модератору] +/
они 80386 возродили? до чего людей кризис довёл...
 
  2.11, Савраска, 15:15, 07/05/2014 [^] [ответить] [смотреть все]    [к модератору] +1 +/
Хм, а стОит ли экономить на памяти (ну добавьте ещё пару-тройку метров), и при этом рубать шашкой сетевой стек направо и налево. Чревато ведь. А то наклепают стотыщ мильонов копеечных девайсов, из них 99,9% без возможности обновления прошивки. А потом - упс, мы ж там в пару десятках мест, оказывается, за стек повылазили, и у нас теперь ботнеты из кофемолок, умных лампочек и гаражных ворот.
 
  3.13, Andrey Mitrofanov, 15:22, 07/05/2014 [^] [ответить] [смотреть все]    [к модератору] +/
> Хм, а стОит ли экономить на
>наклепают стотыщ мильонов копеечных девайсов
>А потом - упс,

и PROFFITT. Intel же.

> мы ж там в пару десятках мест, оказывается, за стек повылазили, и у нас

 
3.14, клоун, 15:24, 07/05/2014 [^] [ответить] [смотреть все]    [к модератору]
–1 +/
Да чё мелочиться, давай уж тогда везде Core_i7 и Unity ставить. Ну чтоб наверняка. И обновлять i7 до i9 чтобы гаражные ворота продолжали открываться и не тормозили. Это же так необходимо подключиться к воротам по VNC и пинговать kernel.org.
 
1.2, клоун, 14:36, 07/05/2014 [ответить] [смотреть все]     [к модератору] –9 +/
Подведу итоги - сетевой стек Линукс 400 кб - упрощённый сетевой стек Линукс 170... весь текст скрыт [показать]
 
  2.3, Аноним, 14:40, 07/05/2014 [^] [ответить] [смотреть все]    [к модератору]  +11 +/
правильный ник у тебя
 
2.6, Stanislavvv, 14:54, 07/05/2014 [^] [ответить] [смотреть все]    [к модератору]  +1 +/ 100кб для _каждого_ приложения. Если у тебя на девайсе не только вебморда - будет 200к, 300к, 400к...
А тут - 170к итого.
 
  3.9, клоун, 15:07, 07/05/2014 [^] [ответить] [смотреть все]    [к модератору]  –2 +/
Т.е. если тупо (!) перенести код из приложения в ядро, он увеличивается в размере на 70%?
 
1.4, Аноним, 14:44, 07/05/2014 [ответить] [смотреть все]     [к модератору]  +/
Да уже отклонили ее, два дня как Ты б написал об этом в новости ... весь текст скрыт [показать]
    2.8, Аннонн, 15:02, 07/05/2014 [^] [ответить] [смотреть все]    [к модератору]  +1 +/ Зачем Wireshark на встроенной железке?
 
  3.19, Аноним, 16:44, 07/05/2014 [^] [ответить] [смотреть все]     [к модератору]  +/
Тогда надо пойти и дальше и спросить на кой там вообще linux ... весь текст скрыт [показать]
 
1.7, Аноним, 14:54, 07/05/2014 [ответить] [смотреть все]     [к модератору]  –10 +/
ПСССССССССССССССССССССССССССССССССССССССССССССССССССССС ПРРРРРРРРРРРРРРРРРРРРРРР... весь текст скрыт [показать]
 
  2.10, клоун, 15:14, 07/05/2014 [^] [ответить] [смотреть все]    [к модератору]  +2 +/
Слушая музыку дождя...
Золотого дождя.
 
1.12, Аноним, 15:19, 07/05/2014 [ответить] [смотреть все]     [к модератору]  –2 +/
а если ещё ядро собрать, не с жирнейшей bclib, или такой же ebclib, а с компактн... весь текст скрыт [показать]
 
  2.15, MinimumLaw, 15:54, 07/05/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
Хм... А как одно с другим повязано? Никак... Так что мимо...
Ядро не пользуется функциями libc. Оно актуально только для user-space.
 
1.16, Добрый Дохтур, 16:19, 07/05/2014 [ответить] [смотреть все]    [к модератору]  +/ О,дааа... там шоу:

Andi Kleen:

Multiple receive queues are not needed on small systems, so allow disabling them.

David Miller:

I'm really totally, and completely, convinced that you wrote this entire patch series with your brain turned off.

I'm not applying any patch in this series Andi, come back when you have something specific and small and reasonable to discuss, rather than this huge patch bomb of total and complete crap.

Andi Kleen:  Make TCP metrics optional

This is all the code that saves connection information between different sockets. Not really essential for small systems. Saves about 5.5k text

David Miller:

It is absolutely essential unless you want poor performance of TCP connections.
I'm not applying this.

 
  2.18, клоун, 16:35, 07/05/2014 [^] [ответить] [смотреть все]    [к модератору]  +/
Энди: я тут написал, зацените.

Давид: я в натуре считаю, что ты писал это в полной отключке. Эту твою фигню я никогда не приму, Энди. Топай отсюда и возвращайся когда у тебя будет что-то стоящее и достойное моего внимания, а не мусор и дерьмо, которые ты называешь программным кодом.

Энди: этот код написан специально для небольших систем. Я отключил то, что было ненужно, и сократил размер.

Давид: да пошёл ты!! Совершенно необходимо чтобы производительность TCP не снижалась ни на йоту. Иначе я не принимаю.

Шоу? Вам нравится наблюдать как оскорбляют других? На Торвальдса подпишитесь, его рассылка почти целиком из таких "шуток" состоит.

 
1.17, Пиу, 16:23, 07/05/2014 [ответить] [смотреть все]    [к модератору]  +/ давно пора!
 
Ваш комментарий  

Read more http://www.opennet.ru/opennews/art.shtml?num=39721

 
Интересная статья? Поделись ей с другими:

bottom

 

Unreal Commander PfSense по русски Яндекс.Метрика