LINUX.ORG.RU

Как происходит загрузка на ARM?

 ,


2

2

Сабж. На x86 процесс в общем-то понятен, тут есть BIOS, UEFI, MBR и прочее.

А как происходит загрузка ОС на ARM-ках? Я знаю, что у малинок к примеру что-то свое (бинарное) + загрузчик собственно ОСи. А на других платформах как?

ЗЫ вдогонку: где ваще почитать про ARM?

Ответ на: комментарий от valmanner

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

Вот, например: http://linux-sunxi.org/Boot_Process

i-rinat ★★★★★ ()
Последнее исправление: i-rinat (всего исправлений: 1)
Ответ на: комментарий от valmanner

Может быть, ты погуглишь сам? Вводную тебе дали. Дальше сам.

i-rinat ★★★★★ ()

На x86 процесс

вообще, не на x86, а на IBM PC

Harald ★★★★★ ()
Ответ на: комментарий от valmanner

на смартфонах не система - говнопрошивка индивидуальная для каждого устройства, неужели на arm так же - отстойное говно получается...

amd_amd ★★ ()

Начальная загрузка везде разная. Например вначале загружается первичный загрузчик, который жестко прошит в сам SoC, он ищет чипы памяти — eMMC, SPI flash и тд, порядок загрузки конфигурируется резисторами между ножками процессора, распаяных на плате.

Затем в несколько стадий загружается с нужного носителя вторичный загрузчик, например Das U-Boot самый популярный, он уже интерпретирует скрипты навроде конфигов grub2, и как правило загружает ядро из специального ядерного раздела. Да, на ARM и MIPS в отличии от x86 принято для образа ядра иметь отдельный раздел, а не файл в файловой системе. Причём параметры ядра как правило прописываются в самом образе.

Ну, а дальше как обычно монтируется корневая файловая система, запускается init и так далее. И тут уже для андроида одно, для нормальных GNU/Linux другое и тд

Xenius ★★★★★ ()
Ответ на: комментарий от amd_amd

неужели на arm так же

Вообще да. Хотя сейчас довольно распространено стало UEFI и на ARM тоже. То есть то же что на x86

Xenius ★★★★★ ()

ЗЫ вдогонку: где ваще почитать про ARM?

Почти не имеет смысла - каждый производятел извращается как может, причем потом на свои же стандарты и плюёт. Пока этот цирк не соберут в одну кучу и не сделают единый стандарт - на десктопы ARM не придёт.

StReLoK ☆☆ ()

ARMы бывают разные.
Самый простой случай: ROM->uboot->Linux.
Чуть сложнее: ROM->PBL->uboot->Linux или ROM->PBL->SBL->uboot->Linux
C TrustZone сложнее.
На ЛОРе такие вопросы можно не задавать, не то это место. Здесь сплошные рукожопы.

anonymous ()

Подписался на тему.

Вот для IBM PC была в начале 90-х книжка Питера Нортона (и даже в приличном русском переводе), в которой было расписано буквально ВСЁ: порядок загрузки, организация видеопамяти, структуры FAT на диске, прерывания PC-Speaker. Следующий уровень - прерывания BIOS, следующий уровень - прерывания DOS. Т.е. по этой книжке грамотный программист мог просто взять и написать свою мини-ОС, совместимую, скажем, с теми же FAT-дискетами и тем же BIOS.

А у смартфонов и прочих ARM, выходит, проблема даже не в том, что плохо документировано, а в том, что неунифицируемый зоопарк?

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 1)

Как правило, есть относительно простой но фичастый загрузчик, очень популярен u-boot на платформе ARM. Но этот самый u-boot для начала должен быть вытянут чем-то, и для этого есть либо встроенная в процессор спец функция от производителя, либо необходимо сделать свой простенький загружатор из например из SPI-флэшки в ОЗУ - ну а дальше оно стандартно и однообразно поддержит ядро Linux. Кроме того, для обеспечения работы единой версии ядра Linux на платформе используются device tree файлы, которые описывают особенности оборудования данного конкретного устройства.

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от hobbit

А у смартфонов и прочих ARM, выходит, проблема даже не в том, что плохо документировано, а в том, что неунифицируемый зоопарк?

Набор железа везде разный, поэтому универсальные требования к загрузчику предъявить сложно. Существующие стандарты для «больших» систем, такие как BIOS, OpenFirmware, UEFI, не подходят так как требуют дополнительного железа, а их функционал избыточен. Поэтому зоопарк.

annulen ★★★★★ ()
Ответ на: комментарий от anonymous

valmanzavr

Ну вот, теперь ТС освобождён от напряжённого придумывания ника после следующего бана :)

hobbit ★★★★★ ()
Ответ на: комментарий от annulen

Ну ладно, весь ARM обширен, а конкретно у смартфонов тоже зоопарк?

hobbit ★★★★★ ()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: комментарий от hobbit

весь ARM обширен

Так не ARMом единым, на рынке полно архитектур. Но uboot всеяден, а вендорские загрузчики часто прибиты к периферийным устройствам, а не архитектуре проца

а конкретно у смартфонов тоже зоопарк?

Не знаком с этой темой, но если там даже с ОС зоопарк (по крайней мере был до недавнего времени), то могу себе представить что там с загрузчиками

annulen ★★★★★ ()
Ответ на: комментарий от hobbit

(В прочей нереалтаймовой эмбедщине Linux съел всех конкруентов еще в начале 2000-х)

annulen ★★★★★ ()
Ответ на: комментарий от IMAM

Так это ж лоровские кукаретики. С другой стороны, необходимость в уефи появляется только при объеме данных>100500

valmanner ()
Ответ на: комментарий от IMAM

мне? посмотри в трекере uefi - то, uefi - сё... на биос жалоб не встречал вовосе, кроме того в моем блочном царстве-государстве в uefi умеют всего 2 мамки, естественно пробовал - полный шлак, еще один лишний раздел это уже лажа - про остальное даже вспоминать не хочу - пришлось мамки в ноль ждампером сбрасывать

amd_amd ★★ ()
Ответ на: комментарий от annulen

Типа если у тебя на диске данных больше 2,2Тб, то прощай биос.

valmanner ()
Ответ на: комментарий от amd_amd

Боли рукожопов меня мало интересуют. Что конкретно не так с самим UEFI?

IMAM ()
Ответ на: комментарий от valmanner

Ну так у всех устаревших технологий есть пределы, 286-ой процессор вот мог только с одним мегабайтом памяти работать

annulen ★★★★★ ()
Ответ на: комментарий от valmanner

UEFI много чего даёт, начиная от банального ускорения инициализации устройств, и заканчивая графическим интерфейсом с мышкой, что как бы проблемно реализовать в 1 мегабайте оперативки, или сколько там в 16-битном режиме доступно.

А для дебичей, набижавших тред, напомню что UEFI и BIOS лишь интерфейсы, и проблемы с конкретными реализациями не являются проблемой стандартов.

IMAM ()
Ответ на: комментарий от IMAM

заканчивая графическим интерфейсом с мышкой, что как бы проблемно реализовать в 1 мегабайте оперативки

Вот и выросло поколение...

tailgunner ★★★★★ ()
Ответ на: комментарий от IMAM

А еще с уефишной утилитой настройки можно БИОС юзать, что радует некоторых неосиляторах.

valmanner ()
Ответ на: комментарий от IMAM

про лишний раздел говорил? для меня этого уже достаточно что бы отправить это поделие в топку, кроме того мне обещали что из него стартовать будет быстрее - нихера не быстрее, а даже медленее, записи от предыдущих установленых систем засирают все остальное... установил систему - не понравилась стал устанавливать другую - смотрю в quick boot запись от старой - думаю новая потрет - хер там было от каждой установленной системы запись остается и очень скоро quick boot пререстал влезать в экран, а оборудование затерярось в этой помойке - приходилось напрягаться для его выбора, удалил гребаный раздел от uefi в биосе переключил на legacy - как висела срань в quick boot так и продолжает висеть, хорошо блоки и джампер выручил - уронил мать в дату ее рождения, вернул заводские настройки и зачистил quick boot, я конечно обожаю эксперименты - но не до такой степени...

amd_amd ★★ ()
Ответ на: комментарий от amd_amd

Смари, попоболь со временем лишь возрастет, интель закопать бивис обещает, приучай себя к уефи.

valmanner ()
Ответ на: комментарий от valmanner

интель я сам для себя уже давно закопал - последний взял в 2013-ом, теперь только амуде с али по 500 рублей - в умелых руках и такое работает на ура...

amd_amd ★★ ()
Ответ на: комментарий от amd_amd

умелые руки

ниасилил уефи

Плиз. Амд тоже закопает (в плане чипсетов и поддержки процессорами).

valmanner ()

ARM - это по сути лицензия на исходники CPU.

Производитель покупает лицензию на ARM, на GPU (например mali), набирает кучу рукожопых инженеров которые лепят всё в кучу добавляя говнокода на каком-нибудь verilog или vhdl (я ниче не шарю) и вот тебе SoC готов. Можно пихать в телефон или тв приставку

Поэтому вопрос как ты уже понял по треду некорректный.

sergej ★★★★★ ()
Ответ на: комментарий от sehellion

спасибо просвятили - я лучше как нибудь без всего этого на голом биосе поеду...

amd_amd ★★ ()
Ответ на: комментарий от valmanner

в блоках врядли - а во всяком мобильном дерьме уже закопали...

amd_amd ★★ ()
Ответ на: комментарий от tailgunner

В моём детстве был драйвер himem.sys, который позволял использовать больше памяти, и в результате могли работать такие вещи как Windows 3.1. Я, конечно, не эксперт по тем временам, но может ты нам расскажешь, что можно вместить в метр кроме псевдографики или наскальных рисунков?

IMAM ()
Ответ на: комментарий от IMAM

но может ты нам расскажешь, что можно вместить в метр кроме псевдографики или наскальных рисунков?

Вполне полноценный GUI. Графические надстройки над DOS были популярны лет 25-30 назад.

tailgunner ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.