Что такое обновление ядра с помощью & ldquo; Bump ABI & rdquo ;?

У меня была такая же проблема.

Решено с помощью tmux, благодаря этому ответу (скопировано ниже).

В терминале, который должен получить команду, запустите tmux с идентификатором:

tmux new-session -s MYSES

Отправьте ему команды с:

tmux send-keys -t MYSES "ls -l"\n'

18
задан 11.11.2019, 17:37

3 ответа

ABI - это двоичный интерфейс приложения (не путать с API, интерфейсом прикладного программирования). ABI определяет размеры, знаки и порядки номеров, которые использует приложение.

Для ясности, вот пример: я хочу закодировать возраст здания, выраженный в годах. Для этого я могу использовать C unsigned char, который является типом, размер которого составляет 1 байт, и который может кодировать значения от 0 до 255. Теперь предположим, что я обнаружил, что 255 - это слишком низкий предел, поскольку есть здания, были построены более 255 лет назад. Затем я могу использовать C unsigned int, который имеет длину 4 байта и может кодировать значения от 0 до 65535.

Изменив тип с char на int, я не изменил смысловой смысл поля (это был возраст, выраженный в годах, и он до сих пор есть), однако я изменил его размер. Каждое программное обеспечение, взаимодействующее с моим приложением, менять не нужно, однако оно будет говорить на другом «языке».

Поэтому, когда ядро ​​меняет свой ABI, это означает, что оно изменило язык, на котором оно говорит, но никакие функциональные возможности не были добавлены, удалены или изменены. Все сторонние модули, которые должны взаимодействовать с ядром, должны быть перекомпилированы для того, чтобы говорить на этом новом языке, но их не нужно менять каким-либо образом для правильной работы.

0
ответ дан 11.11.2019, 17:38

NB: Я не эксперт по ядру - так что это основано на собранных знаниях и опыте.

«Удар» ABI не должен приносить новые функции, даже если он может «исправлять» ошибки в некоторых модулях / приложениях, которые ищут более высокую версию ABI. Вам все равно следует установить эти обновления, поскольку в целом синхронизация всех компонентов обеспечивает стабильность и безопасность.

0
ответ дан 11.11.2019, 17:38

Во-первых, вы не смотрите журнал изменений для ядра Linux. Вы смотрите на метапакет, который зависит от новейшего ядра. Вы, вероятно, хотите что-то вроде: http://changelogs.ubuntu.com/changelogs/pool/main/l/linux-image-2.6.35-28-generic/linux-image-2.6.35-28-generic_2 .6.35-28.50 / changelog

Целью этого метапакета является переход пользователя через эти неровности ABI.

Я придерживаюсь той же точки зрения, что и вы, в отношении ABI и ядра. Практически говоря, удар ABI означает, что все модули должны быть перестроены под обновленное ядро.

Мое понимание также соответствует Роланду в том смысле, что удар по ABI означает не новые функции, а только критические исправления и обновления безопасности.

0
ответ дан 11.11.2019, 17:39
  • 1
    Спасибо за указание на это it' s просто метапакет. I' о ve забывают об этом. aptitude changelog linux-image-2.6.35-28-generic дисплеи список изменений. I' m не уверенный то, почему метапакет не делает, содержит обновления эти linux-{image,headers}-*-generic пакеты; возможно, потому что существует также linux-{image,headers}-*-server пакеты? – UpAndAdam 11.11.2019, 17:39

Теги

Похожие вопросы