Які речі слід враховувати при виборі стартового середовища, u-boot vs uefi?


1

Я дуже новачок у цьому світі.

У мене є ARM SoC і я хотів би вибрати середовище запуску.

Які речі слід врахувати?

Два варіанти, які надає постачальник, - це u-boot та UEFI.

Хіба одне простіше змінити, ніж інше?


Це питання дуже широке. Я був би здоровий, якщо ви можете додати більше конкретики, тобто. яку ОС ви плануєте використовувати, про який саме SoC ви говорите тощо.
Piotr Król

Чи насправді це має щось спільне з програмуванням? Чи не слід замість цього перейти на SuperUser? Поки ви не маєте вбудованого програмного забезпечення і не програмуєте його використання або редагуєте власний код, то це здається поза темою для SO.
підкреслити_

@underscore_d Чи є простий спосіб перенести його на SuperUser і витягнути відповіді, вже тут, разом із ним?
user_ABCD

@user_ABCD Я вважаю, що ви можете позначити це як таке, хоча я не знаю, чи можете ви використовувати стандартний параметр поза темою, який бачать читачі. Можливо, було б найкраще підняти спеціальний прапор і попросити модератора перенести його для вас; Думаю, вони із задоволенням зобов’язалися б.
підкреслити_

@underscore_d: Я не думаю, що це дійсно буде темою для SuperUser. Це, безумовно, питання розвитку, а не використання. Я не думаю, що є сайт "дизайн системи"?
unixsmurf

Відповіді:


3

Перший мінор полягає в тому, що UEFI - це лише специфікація, що ви використовуєте на платформі - це EDK2 або інша специфікація UEFI. Тож ваш постачальник надає певну модифікацію EDK2.

Я думаю, ви врахували багато факторів:

  • Доступність для реалізації - як згадує Том в іншій відповіді. Це ключовий аргумент, оскільки, швидше за все, перенесення UEFI на нову платформу буде значним зусиллям з програмування.
  • Цільова операційна система - для сучасних Windows у вас немає вибору, і вам доведеться використовувати EDK2
  • Тип безпеки - зауважте, що нова платформа ARMv8 надає певну підтримку безпеки (OP TEE, ATF), яку ви, можливо, знадобиться використовувати.
  • Набір функцій - для досягнення максимальної рентабельності інвестицій вибиратимете реалізацію, в якій реалізована більшість функцій.
  • Внесок - U-Boot чітко визначає умови внеску, і весь код, який об'єднаний, знаходиться під GPLv2, у разі будь-якого проекту Tianocore (до складу якого входить EDK2) ви повинні ознайомитись та підписати угоду про внесок TianoCore 1.0 . EDK2 має ліцензію на BSD.

Я працював з обома реалізаціями EDK2 та U-Boot, і якщо у мене буде вибір, я перейду з U-Boot. Чому?

  • Дружнє, широке та різноманітне співтовариство - EDK2 в основному покладається на Intel, Apple та пару комерційних постачальників. U-Boot отримав людей для різних галузей з різним досвідом, тому велика ймовірність, що у когось були подібні проблеми.
  • Складність - крива навчання для UEFI / EDK2 є крутою, оскільки вони використовують різні концепції, не характерні для вбудованої розробки (наприклад, HOB, всі типи файлів), для U-Boot кожного, хто знайомий з ядром Linux, ми швидко отримуємо дизайн.
  • Сертифікація - AFAIK U-Boot не мають жодного формального процесу. Для впровадження UEFI ви встановили тести, на які можна сказати, що ви скарга UEFI.

Напевно, це набагато більше, але я думаю, що цього достатньо, щоб зробити дослідження самостійно і зрозуміти, що має бути вашим вибором.


1
EDK2 не має власної ліцензії. Проект Tianocore (до складу якого входить EDK2) має угоду про внесок, але це вже інша річ. Для ліцензії вона дозволяє кілька BSD-подібних, при цьому ліцензія за замовчуванням є BSD 2-клаузою. Там був питання конкретно з драйвером файлової системи FAT в минулому, але це було вирішено раніше в цьому році.
unixsmurf

@unixsmurf ви праві, я переплутав ліцензування з угодою про внесок. Дякую за те, що це вирішило - я зміню свою відповідь.
Пьотр Крул
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.