The OpenNET Project / Index page

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

Представлен вариант Linux-прошивки, загружающейся за 300 мс

13.04.2011 15:46

Компания Make Linux сообщила о создании одного из самых быстрозагружаемых окружений Linux - от начала загрузки до запуска рабочей командной оболочки на основе BusyBox тратится всего 300 мс. Загрузка была продемонстрирована на плате Beagle Board, снабженной процессором 720 MHz ARM Cortex-A8, SoC OMAP3530 и NAND flash-памятью. Кроме подготовки базового Linux-окружения, обеспечивающего минимальное время загрузки на стандартных встраиваемых системах, также была поставлена задача подготовки программной платформы для создания более функциональных систем, построенных поверх быстрозагружаемой основы.

Процесс загрузки был сведен к следующим стадиям:

  • 330 мс требуется на первичную инициализацию оборудования после включения питания. В случае горячего перезапуска (reset) на инициализацию уходит 70 мс. После этой фазы управление передается непосредственно загрузчику;
  • 237 мс тратится на загрузку образа системы размером 1.5 Мб с NAND Flash. Скорость загрузки составляет примерно 6 Мб/сек;
  • Запуск кода производится за 60 мс или 43 миллиона циклов CPU (для более быстрых процессоров время выполнения будет меньше, но число циклов является постоянной величиной);
  • Как видно из лога загрузки, наибольшее время тратится на копирования прошивки из Flash в оперативную память.

Состав прошивки:

  • Загрузчик: оптимизированный x-loader, без задействования u-boot (на выполнение U-Boot уходит более 400 мс);
  • Linux-ядро версии 2.6.32 из пакета DVSDK 3.01. Ядро использовано в минимальной конфигурации, размер собранного ядра составляет примерно 900 Кб. (В процессе обсуждения высказано мнение, что подобное урезанное ядро мало подходит для выполнения реальных задач. Например, в представленной сборке отключен сетевой стек и другие важные функции, оставлен только самый минимум, необходимый для запуска командной оболочки. С другой стороны, ранее уже были представлены Linux-системы, на загрузку и запуск Qt-приложения в которых уходит примерно одна секунда, из которой 400 мс уходило на работу U-Boot);
  • Пользовательское программное обеспечение: статически собранный BusyBox v1.16.2 c оболочкой hush. Размер примерно 600 Кб.
  • Корневая файловая система была интегрирована в образ Linux-ядра;
  • Размер ядра и вмонтированной в него файловой системы составил 1.5 Мб.


  1. Главная ссылка к новости (http://www.linuxfordevices.com...)
  2. OpenNews: Демонстрация загрузки Linux с приложением Qt менее чем за секунду
  3. OpenNews: Linux достиг времени загрузки в 1 секунду
  4. OpenNews: Мини-компьютер с Linux загружающийся за 1.1 секунды
  5. OpenNews: Устройство, на котором Linux загружается менее секунды
  6. OpenNews: Подробности метода сокращения загрузки Asus EeePC до 5 секунд
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/30233-linux
Ключевые слова: linux, boot, speed, optimization
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (42) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 15:56, 13/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я так и не понял, где 300 мс + busybox, если 330 + 237 + ... ???
     
     
  • 2.3, анон (?), 16:01, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Я так понял, первую стадию они не считали, т.к. это не имеетотношения собственно к прошивке.
     
  • 2.4, ig0r (??), 16:02, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    они инициализацию не считают, так как загрузка начинается после инициализации
     
     
  • 3.12, User294 (ok), 16:57, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > они инициализацию не считают, так как загрузка начинается после инициализации

    Ну как бы логично что время инициализации железа - аппаратное свойство железа. Програмеры в нем не виноваты и не могут его уменьшить. Уменьшить время можно разве что выбором железа или его переделкой.

    Для Ti OMAP было бы логично подумать в эту сторону:
    - Переразвести свою кастомную плату - с юзежом NOR флеша.Ну да, тут уже биглбордом не отделаешься.
    - Юзать режим загрузки омапа fast boot, когда бутром Geenral Purpose (не огороженного) проца сразу делает jump -> NOR без лишних проверок. Это бы поубивало львиную долю задержек.
    - Скорость чтения думается была бы выше чем из nand, а 4-8Мб относительно недорогого nor для такой системы хватило бы за глаза.
    - Сие возможно позволило бы совсем не копировать ничего в RAM, кроме разве что распаковки кернела и возможно еще скостило бы время.

    В общем, особо хардкорным перцам еще есть куда упираться :)

     
     
  • 4.17, Ytch (?), 21:19, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну как бы логично что время инициализации железа - аппаратное свойство железа. Програмеры в нем не виноваты и не могут его уменьшить. Уменьшить время можно разве что выбором железа или его переделкой.

    Не всегда так. В общем случае, относительно независимые части периферии можно инициализировать параллельно, что не может не сказаться в лучшую сторону. В данном конкретном случае, не зная деталей, не могу сказать удалось ли бы много "выжать".

     
     
  • 5.20, User294 (ok), 22:20, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Зато я могу вам рассказать как стартует тот самый техасец с нанда Из нанда нель... большой текст свёрнут, показать
     
     
  • 6.25, Ytch (?), 00:28, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, время непосредственно загрузки кода из NAND ребята учли отдельно (оно, я так понял, все-таки не входит в "первичную инициализацию оборудования" по их представлениям).
    Не знаю, к сожалению, что навернули техасцы именно в этом чипе, но их же dsp-чипы, например, относительно медленно стартовали за счет того, что все параметры по-умолчанию были "выкручены" на минимум. И это логично, поскольку им неизвестно с каким именно железом придется работать, поэтому всё ворочалось на очень низких частотах (при том, что там нет уж очень хитрого auto-detect'a устройств и т. п.). Правда они же и дали возможность это все преодолеть - можно было прямо в начало прошивки добавить значения для разных регистров и они применялись ДО начала загрузки (мы как раз использовали для разгона основных частот, что существенно ускоряло загрузку). В этих чипах, случайно, ничего подобного нет? Или из каких-нибудь соображений "секьюрности" это убрали? Если убрали, то тогда добавьте ко всему, что вы описали еще и то, что все крутится на минимальных скоростях. Еще, конечно, возможное отличие в том, что встроенный их bootloader в dsp инициализировал только то, что нужно для загрузки, да и то по-минимуму, а в остальное не лез совсем - инициализация всего остального была задачей приложения (ну или 2nd stage loader'a).
     
     
  • 7.26, User294 (ok), 01:57, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Да, не входит для основной части чтения нанда, как то копирование линуксного яд... большой текст свёрнут, показать
     
     
  • 8.33, Ytch (?), 10:31, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Многие умеют У них сделано типа modified Harvard architecture in combination w... текст свёрнут, показать
     
     
  • 9.35, User294 (ok), 14:53, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А с точки зрения адресных пространств, это разные пространства или одинаковые А... текст свёрнут, показать
     
     
  • 10.43, Ytch (?), 22:04, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Одинаковые С одной стороны, логически это похоже на неймановца , но с нюансами... текст свёрнут, показать
     

  • 1.5, Аноним (-), 16:24, 13/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Скорость загрузки - это какой-то SunSpider для Linux'а. Вроде и писькомерка, а вроде и на реальный experience не влияет. И если ИМХО, так мне по барабану, сколько грузится ОС, не больше пары минут и норм. Главное работала б хорошо. На компактных ноутах может быть актуально.
     
     
  • 2.7, Аноним (-), 16:26, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +4 +/
    линукс не только на десктопах работает
     
  • 2.8, Mikk (??), 16:29, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Может быть очень актуально для встраиваемой техники. Скажем загрузка профессионального фотоаппарата - для D3S это 0.12 секунды.
     
  • 2.11, User294 (ok), 16:42, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > мне по барабану, сколько грузится ОС, не больше пары минут и норм.

    А если это был апдейт фирмвари камеры наблюдения - ничего так, на 2 минуты систему наблюдения в даун положить? Ну или там роутер - если на 2 минуты положить сетевой трафф, это мягко говоря не заметит только тот кто к нему не подключен :). А стиралку которая 2 минуты подумает до того как вы режим сможете выбрать - не хотите? :)

     
     
  • 3.13, dRiZd (?), 17:41, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >А стиралку которая 2 минуты подумает до того как вы режим сможете выбрать - не хотите? :)

    Нормальные фирмы для этих целей используют ПЛМ/ПЛК, а не всякую лабуду наподобии BSP с линуксом.
    Зачем вам на пару аналоговых входов/выходов и пару тройку дискретных входов/выходов тянуть BSP - это явно говорит о квалификации...

     
     
  • 4.16, Аноним (-), 20:54, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Нормальные фирмы для этих целей используют ПЛМ/ПЛК, а не всякую лабуду наподобии
    > BSP с линуксом.
    > Зачем вам на пару аналоговых входов/выходов и пару тройку дискретных входов/выходов тянуть
    > BSP - это явно говорит о квалификации...

    Как, у вас еще нет привычки лазить в интернет со стиралки? ну тогда бзер идет к вам!

     
     
  • 5.19, User294 (ok), 21:50, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Как, у вас еще нет привычки лазить в интернет со стиралки? ну
    > тогда бзер идет к вам!

    Ну, во первых, уведомление от, допустим, системы видеонаблюдения на емыло с приаттаченой фотографией проблемного момента - сложно назвать "лишним понтом". Как и допустим сохранение видео на фтпушник или там куда еще. Что до стиралок, если какоенить там уведомление и правда лишний понт, то уж хотя-бы нормальный красивый интерфейс, рассказывающий на допустим точскрине что будет сделано, сколько и чего надо и сколько времени займет, желательно сразу на экране а не в каком-то побочном мануале который вечно теряется  - лишним совсем не выглядит. Идите, сделайте такое на плм, угу. Флаг вам в руки и барабан на шею.

     
  • 4.18, User294 (ok), 21:37, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Угу, с удовольствием посмотрю как вы сделаете на ПЛМ например, нормальный графич... большой текст свёрнут, показать
     
     
  • 5.32, dRiZd (?), 10:01, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Угу, с удовольствием посмотрю как вы сделаете на ПЛМ например, нормальный графический интерфейс пользователя, например под точскрин...

    Не выдергивайте фразы из контекста! А вообще, для примера, "SIEMENS TIA" Вам в руки - удосужтесь посмотреть и это уже готовые кубики которые Вы можете "покрутить на столе",
    а потом заказать у контрактного производителя отдельные платы... которые уже можно пихнуть в Ваш девайс.

    >Затем, что например выбрать в той же стиралке на большом сенсорном экране с яркой картинкой и читабельным шрифтом программу стирки...

    Вы стиралку то такую изнутри в глаза видели? А я их уже "наремонтировался" и знаю, что там внутри.

     
     
  • 6.36, User294 (ok), 15:19, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Я всего лишь хотел показать вам некоторые проблемные моменты, которыми пингвины ... большой текст свёрнут, показать
     
     
  • 7.47, dRiZd (?), 12:40, 17/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Интересный у Вас опус получился: человек не понимает, что такое АСУ/АСУТП, контрактное производство, а пытается учить остальной мир как ему жить!
    Поймите, подход для настоящего разработчика систем неограничивается только: Попробовал загуглить название + купить.
    Если Вы заинтересовались данной темой, то могу посоветовать скачать каталог SIEMENS CA01 (это как пример, хотя можете взять каталог любой другой компании).
    А "простейшие кубики" можете купить в ближайшем к Вам строительном магазине:Logo!, S7-200/1200 (серия 1200 даже PROFINET поддерживает)
     
  • 3.22, frob (ok), 22:58, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Если это домашний роутер, то двухминутная загрузка пофиг.
    А если нет, то тогда роутеров всё равно больше одного и плановая перезагрузка для обновления ПО -- не проблема.
     
     
  • 4.23, Аноним (-), 23:18, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Вот-вот. А если у вас (парой постов выше) роутер - узкое звено, это каг бэ говорит нам о дизайне. Хотя, быстрая загрузка - это, возможно, хорошо. Не былоб самоцелью. )
     
  • 4.24, User294 (ok), 23:50, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Если это домашний роутер, то двухминутная загрузка пофиг.

    В лично моем понимании - чем меньше девайс тратит времени на служебные операции которые мне бесполезны, тем лучше. Что-нибудь не так? Если вам нравится 2 минуты ждать загрузки - отлично, ждите. А мне вот ждать не нравится. Пусть железки меня ждут, им пофиг - они железные :)

     
     
  • 5.29, frob (ok), 06:04, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > чем меньше девайс тратит
    > Если вам нравится 2 минуты ждать загрузки

    К.О.?

    В отличие от телефонов-планшетов-лэптопов-телевизоров и прочих микроволновок,
    в вашем списке ситуаций роутеры -- лишние.

    Мой нынешний домашний роутер перезагружается сколько-то секунд. Если будет перегружаться в пять раз быстрее -- его потребительская ценность не изменится, а вот что будет с ценой -- не вполне очевидно.
    Может это у вас работа такая -- роутеры перезагружать со сдельной оплатой за число перезагрузок (прошивки разрабатывать, например), а меня один раз в год перезагрузить роутер не напряжёт. Тем более что ждать загрузки мне не приходится -- "выстрелил-забыл".
    А пол-одно-двух-трёх минутное _пропадание доступа к сети_ в доме никого не напряжёт.

    Нет смысла тратить ресурсы на улучшение того, что и так достаточно хорошо.

     
     
  • 6.30, Анон (?), 07:06, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А вот у меня роутер грузится дольше, чем комп. Напрягает. Ну или соединение поднимает долго.
     
     
  • 7.39, frob (ok), 15:36, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > А вот у меня роутер грузится дольше, чем комп. Напрягает. Ну или
    > соединение поднимает долго.

    А зачем вы его (роутер) перезагружаете?

     
     
  • 8.44, Анон (?), 07:06, 15/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Перезагружать пришлось всего пару раз за пару лет Но иногда я его выключаю, нап... текст свёрнут, показать
     
     
  • 9.46, j3qq4 (??), 16:59, 15/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    А вы уверены, что он у Вас правильно настроен Больше минуты - проблема с провай... текст свёрнут, показать
     
  • 6.34, Sergey (??), 13:55, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Нуу, роутер фиг с ним, он мой и я его в какой-то степени вижу и контролирую, а вот когда у меня в роутере пропадает тырнет и приходится сначала долго и нудно вызванивать провайдера, после чего выслушивать кучу нудных вопросов от инженера саппорта, далее сказать ему, что нужно ему сделать на его оборудовании (благо все происходит далеко не первый раз, а запись разговора позволяет резко его сократить, опустив ненужную мне диагностику) - так вот чем быстрее оборудование провайдера перезагрузится, тем быстрее у меня опять появится интернет и ждать по 5 минут (а по словам инженера аж 20-30, но обычно вс проходит за 3-5) меня совершенно не радует.
     
     
  • 7.41, frob (ok), 15:45, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > и ждать по 5 минут (а по словам инженера аж 20-30, но обычно вс проходит
    > за 3-5) меня совершенно не радует.

    Устранение причины вызывающей необходимость перезагрузки будет гораздо полезнее, чем сокращение времени перезагрузки.

     
  • 6.37, User294 (ok), 15:33, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Да ладно вам Мне очень редко попадаются юзеры которые воткнув девайс в сеть пот... большой текст свёрнут, показать
     
     
  • 7.42, frob (ok), 18:44, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Не надо передёргивать Во-первых, речь шла о пропадании трафика при перезагрузке... большой текст свёрнут, показать
     
  • 3.31, BratSinot (?), 08:10, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    У меня роутер под Linux + BusyBox грузится минуту две, а потом еще минуту две соединен6ие с интернетом настраивает.
     
     
  • 4.38, User294 (ok), 15:35, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > У меня роутер под Linux + BusyBox грузится минуту две, а потом
    > еще минуту две соединен6ие с интернетом настраивает.

    И как, вам это нравится? Или вы бы предпочли чтобы как в этой новости - дыщ и за пару секунд у вас уже все опять работает? :)

     

  • 1.6, Аноним (-), 16:26, 13/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Linux-ядро версии 2.6.32 из пакета DVSDK 3.01
    >размер собранного ядра составляет примерно 900 Кб

    Вот это я понимаю! даешь минимальные рабочие ядра нам! А не эти комбайны, в которых две трети нафиг не нужных блобов, а также лишнего кода, добавляющего только лишнюю головную боль.

     
     
  • 2.9, Аноним (-), 16:32, 13/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот это я понимаю! даешь минимальные рабочие ядра нам!

    берёшь?
    https://encrypted.google.com/search?q=kernel+config

     

  • 1.27, Аноним (-), 03:12, 14/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Самое главное, что без сетевого стека любой компьютер кажется мне мало пригодным. Даже если в нем есть ну просто офигительный режим обновления все равно сеть очень нужна всем и всегда.
     
  • 1.28, Аноним (-), 03:15, 14/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Помоему для устройств вроде Arduino вполне подходит Runtime с поддержкой FAT32 или чего там у вас сейчас поддерживается основным компьютером. Остальное барахло можно самому написать - тут и ядро особо не нужно ;) Особенно если однозадачность...
     
     
  • 2.40, User294 (ok), 15:41, 14/04/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Помоему для устройств вроде Arduino

    Как бы омап на биглборде - это совсем иной весовой класс чем атмега (одноплатный компьютер vs микроконтроллер). Атмега годится чтобы лапками на скорость дергать, етц. А вот например картинку с камеры, с приличным разрешением и фпсом вы сможете атмегой на фтпшник заливать? А чтоб это еще и по вайфаю, например? А только в моменты когда движение есть? А попутно подняв какой-нить ублюдский PPTP например, "потому что провайдер интернета его требует". На линухе и омапе нечто подобное сделать вполне реально чуть ли не на коленке. А на атмеге... эээ ну попробуйте :)

     

  • 1.45, RiG (ok), 09:45, 15/04/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    300 мс...офигеть можно..
     

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



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

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