Чому для створення ядра Linux потрібен 'bc'?


66

Вимоги Linux ядро мінімально будівля визначає , що калькулятор bcпотрібно для побудови ядра v4.10, мінімальну версії істот інструменту 1.06.95.

Яке використання використовується bcв цьому контексті, і чому мова С не використовується безпосередньо замість bcцих операцій?


10
Що ви маєте на увазі, використовуючи безпосередньо C ? Я не думаю, що використання C як "мови скриптів" під час збирання є прямим або зручним.
cubuspl42

4
@ cubuspl42 ви можете просто записати операції в джерело і дозволити компілятору обчислити його в константах. Насправді те, для чого він використовується, є занадто складним для цього.
OrangeDog

Відповіді:


83

bcвикористовується під час збирання ядра для генерації констант часу у файлах заголовків. Ви можете бачити , що викликається вKbuild , де він обробляє kernel/time/timeconst.bcгенерувати timeconst.h.

Це може бути реалізовано як програма C, яка побудована та запущена під час збирання, але простіше у використанні bc(що є невеликим і загальним; адже це частина набору інструментів, обов'язкових для POSIX систем - ядро ​​очікує GNU, bcхоча).

bcтут використовується замість Perl . Повідомлення фіксації передбачає, що bcвоно використовувалося раніше, але я не можу знайти його сліду; Perl застосовується з 2008 року (на жаль , у деяких людей , хоча цей набір патчів ніколи не був об'єднаний).

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