Назад | Перейти на главную страницу

Можете ли вы обновить ядро ​​Linux независимо от всего остального?

У меня есть машина, которая начала жизнь на Linux 2.4.x, а затем была обновлена ​​до Linux 2.6.x. Теперь он обновлен до Linux 2.6.18. Каждый раз обновлялось только ядро. Остается тот же оригинальный набор инструментов (binutils, glibc ...) (очевидно, это не идеально).

Мой вопрос: следует ли ожидать, что машина будет нормально работать с учетом обновлений ядра и старых инструментов? Или есть сценарии, когда версия ядра x.y.z нарушает совместимость, и вам нужен новый набор инструментов?

Если это важно, самые экзотические вещи, которые делает машина, - это программный RAID (но от этого можно отказаться) и NFS.

Испытывая удачу:
* nix в целом спроектирован так, чтобы быть модульным, но, на мой взгляд, переход с 2.4.x на 2.6.x может испытать удачу, поскольку это основной выпуск. Это потому, что есть некоторые программы, которые при создании будут использовать заголовки и структуры данных, предоставляемые ядром (keepalived - один из примеров, который приходит на ум).

Рассмотрим распространение:
Одна из основных причин, по которой существуют дистрибутивы, помогающие поддерживать совместимость. Многие считают, что поддерживающие их организации будут обнаруживать и устранять множество проблем с совместимостью, прежде чем они будут переведены на стабильную работу. Я бы посмотрел на использование стандартного дистрибутива, такого как CentOS / Redhat или Debian / Ubuntu.

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

По большей части, если вы успешно обновились до 2.6.18, у вас не должно возникнуть серьезных проблем с 2.6.32 или даже 3.0. Произошли некоторые изменения имени драйвера, которые могут повлиять на вас, однако, если у вас все еще есть старое ядро, доступное в grub, это поможет вам избежать ситуации, когда вам нужно использовать аварийный диск.

Некоторые пакеты, которые вы можете захотеть проверить, работают с ядром, которое вы собираетесь использовать, - это udev, initscripts (если вы используете debian, redhat или аналогичные), iptables / etables / arptables.

В основном это будет работать, как ожидалось.

У вас могут быть пользовательские процессы, которые используют устаревшие (или, что еще хуже, исключенные) системные вызовы Linux, но обычно они не удаляются без предупреждения. Вы видели какие-либо предупреждения?

У вас также может быть ядро ​​/ модули, которые могут использовать более новые вызовы, чем те, которые доступны с вашими версиями binutils / glibc, но если вы столкнетесь с ними, при сборке просто произойдет ошибка.