Що заважає дистрибутивам використовувати останнє ядро ​​Linux? [зачинено]


13

Більшість дистрибутивів Linux постачаються з певною версією ядра та оновлюють його лише у точкових випусках ( x.y.zдо x.y.(z+1)) та для оновлень безпеки.

З іншого боку, я знаю, що в Linux є дуже сувора політика щодо того, щоб не змінювати ядро ​​ABI і ніколи не порушувати користувацький простір. Насправді, у Лінуса було багато публічних істерик, спрямованих на розробників, які хотіли (навмисно чи випадково) змінити ядро ​​невідповідними способами.

Я не розумію, чому дистрибутиви використовують "стабільні" ядра, а не завжди оновлюються до останнього ядра. Це не критика, мені просто цікаво причина.


1
тому що в останніх ядрах немає тестування. він може містити помилки, які можуть впливати на стабільність системи, а стабільність - головний фокус будь-якого підтримуючого дистрибутора.

Відповіді:


8

Інтерфейси системного виклику ядра Linux дуже стабільні. Але ядро ​​має інші інтерфейси, які не завжди сумісні.

  • /procздебільшого стабільний, але в минулому відбулося декілька змін (наприклад, деякі інтерфейси, що переміщуються на /sysдеякий час після /sysстворення).
  • У минулому було видалено низку інтерфейсів, що стосуються пристроїв .
  • /sysмістить стабільні інтерфейси (перелічені в Documentation/ABI/stable) та деякі, які ні. Ви не повинні використовувати ті, яких немає, але іноді це роблять люди, і просте оновлення безпеки та стабільності не повинно порушувати їх.
  • У минулому були несумісності з модулями (новіші ядра вимагають більш нової версії модулів), хоча, я думаю, це було досить давно.
  • Існували також несумісності щодо процесу завантаження деяких незвичайних конфігурацій. Навіть збільшення розміру ядра може спричинити проблеми в деяких вбудованих системах.
  • Хоча зовнішні інтерфейси ядра досить стабільні, внутрішні інтерфейси не є. Правило внутрішніх інтерфейсів полягає в тому, що будь-хто може їх порушувати до тих пір, поки вони фіксують внутрішнє використання, але за виправлення сторонніх модулів покладається автор цих модулів. В цілому досить багато установок працюють сторонніми модулями: додаткові драйвери для обладнання, яке не підтримувалося ядром (якщо апаратне забезпечення підтримується новим ядром, це добре, але що робити, якщо його немає), власні драйвери ( в той час як світ був би кращим місцем, якби всі драйвери були з відкритим кодом, це не так; наприклад, якщо ви хочете гарної продуктивності 3D-графічного процесора, ви майже застрягли з власними драйверами) тощо.
  • Деяким людям потрібно перекомпілювати своє ядро ​​або деякі сторонні модулі. Більш пізні ядра часто не можна компілювати зі старими компіляторами.

Загалом, головна причина не переходити на більш нову версію ядра - сторонні модулі.

Однак деякі дистрибутиви пропонують останні ядра як опцію. Наприклад, Debian робить ядра від тестування доступними для користувачів стабільної версії за допомогою спинок. Так само і в Ubuntu LTS, ядра з останніх випусків Ubuntu доступні, але не використовуються за замовчуванням. Це в основному корисно для нових установок на апаратному забезпеченні, яке ще не підтримувалося під час завершення дистрибуції.


9

Я не працюю над дистрибуцією, але думаю про щонайменше дві причини:

  • Деякі дистрибутиви застосовують власні виправлення до ядра, які ще не об'єднані в основну лінію. Це означає, що для кожного оновлення ядра їм потрібно забезпечити, щоб їхні патчі нічого не зламали і все ще працювали належним чином.
  • Навіть останній стабільний випуск Kernel може містити помилку, дистрибуції яких серйозно сприймають надійність, захочуть пройти деякі тестувальні процедури / процеси, перш ніж доставити Kernel своїм клієнтам.

2
Патчі, що стосуються розповсюдження, не обов'язково призначені для висхідного потоку, так чи інакше. І останнє ядро ​​вище за течією буде в середньому містити більше помилок, ніж тестоване "запас" ядро ​​дистрибутива. Багато з того, що робить ядро, розподілене дистрибутивом, - це спробувати витрусити / виправити якомога більше помилок, не змінюючи код більше, ніж потрібно.
Faheem Mitha

0

Більш консервативні дистрибуції слідкують за стабільністю ядер (і активно беруть участь у них) заради стабільності. Більш прихильні користуються ядром одну версію або близько того, що стоїть за останньою та найкращою ваніллю, плюс розбризкування патчів, підкріплених підказкою щодо розробки (та деяких домашніх).

Поточна політика розвитку ядра полягає в тому, що версія Linus вперед випереджає блискучі, нові іграшки, і не боїться оптових змін. Деякі версії вважаються достатньо стабільними (важливими для розробки), щоб створити основу для жорстких випробувань та стабілізації, даючи стабільні серії.

Все це можливо завдяки інструментам у використанні, кожен може доглядати за свої власні GIT дерево, тримати цікаві видобувні галузі та дерева синхронізовані локально, PILFER вчиняє від інших, а частка локальних змін вільно.


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