Вышло последнее стабильное ядро Linux, 6.7, которое, наконец, включает в себя новую файловую систему bcachefs нового поколения с возможностью копирования при записи (COW).
Линус Торвальдс объявил об этом выпуске в воскресенье, отметив, что это «один из крупнейших выпусков ядра, которые у нас когда-либо были». Среди наиболее крупных и заметных изменений — совершенно новая файловая система, а также новые функциональные возможности для нескольких существующих; улучшенная графическая поддержка оборудования нескольких производителей; и удаление всей архитектуры ЦП.
Это краткосрочный выпуск ядра, поэтому, вероятно, он не будет присутствовать в некоторых дистрибутивах, циклы выпуска которых не синхронизированы с циклами выпуска ядра, например, в промежуточных выпусках Ubuntu. График выпуска ядра не высечен на камне – действительно, сама версия 6.7 вышла примерно на неделю позже обычного, чтобы избежать выпуска в новом году – но ее срок службы, вероятно, закончится в марте, когда появится версия 6.8. Как уже отмечалось, когда в прошлом месяце вышла и ушла версия 6.6.6, с начала декабря ядро 6.6, выпущенное в конце октября, является последней версией с долгосрочной поддержкой.
Подозреваем, что на немногих оставшихся сайтах, на которых работают системы Itanium, не установлены постоянно обновляемые дистрибутивы Linux, и поэтому мы не будем знать и не обращать внимания на то, что в версии 6.7 прекращается всякая поддержка злополучной архитектуры IA64. Именно поэтому служба Reg FOSS по-прежнему предпочитает «x86-64» «x64» — и на этой гораздо более распространенной архитектуре ЦП ядро 6.7 теперь предлагает возможность включать или отключать поддержку x86-32 во время загрузки, как было описано в прошлом году.
Несмотря на то, что чипы Intel 14-го поколения начали поставляться только в октябре, ими, вероятно, пользуется больше людей, чем на Itanic, а в версии 6.7 добавлена полная поддержка встроенных графических процессоров.
Еще больше используют карты Nvidia, некоторые из которых необходимо инициализировать специальной прошивкой GSP. Хотя бинарные драйверы Nvidia делают это самостоятельно, начиная с ядра 6.7 драйвер FOSS nouveau теперь может загружать эту специальную прошивку. В новой версии также улучшена работа с мониторами DisplayPort, подключенными через USB-C, а также улучшена работа с некоторыми клавиатурами и другими устройствами ввода, в том числе от Dell, Lenovo и Asus.
Однако дело не только в x86. KVM встроенного в ядро гипервизора теперь поддерживает китайские RISC-чипы LoongArch, а в RISC-V он теперь поддерживает новые расширения smstateen [PDF] для повышения безопасности, а также улучшения для аппаратного обеспечения Arm, особенно серверных чипов Ampere.
Поддержка языковых модулей Rust в ядре теперь включает версию языка 1.73. Другие усовершенствования Rusty включают поддержку Intel IBT, возможность управления рабочими очередями и улучшенную поддержку Android.
Самой важной особенностью версии 6.7 является новая файловая система bcachefs, которую мы исследовали в марте 2022 года. Поскольку это первая версия Linux, включающая новую файловую систему, доверять ей какие-либо важные данные определенно было бы преждевременно, но это долгожданное изменение.
Краткое изложение заключается в том, что bcachefs — это файловая система следующего поколения, которая, как и Btrfs и ZFS, обеспечивает функциональность COW. COW позволяет практически мгновенно создавать «снимки» всего или части диска или тома, что позволяет ОС выполнять дисковые операции транзакционными: другими словами, предоставлять функцию «отмены» для сложных наборов операций записи на диск.
Наличие файловой системы COW в Linux не является чем-то новым. Существующая файловая система следующего поколения в ядре, Btrfs, также поддерживает снимки COW. Версия 6.7 содержит несколько улучшений. Он унаследовал функцию, реализованную в ОС Steam: две файловые системы Btrfs с одинаковым идентификатором могут быть смонтированы одновременно для сценариев аварийного переключения. Также улучшена поддержка квот и новый RAID_stripe_tree, который улучшает обработку массивов разнородных дисков.
Btrfs остается несколько спорным. Red Hat исключила его из RHEL несколько лет назад (хотя Oracle Linux все еще предлагает его), но дистрибутивы SUSE во многом зависят от него. Будет интересно посмотреть, как быстро инструмент Snapper от SUSE получит поддержку bcachefs: этот новый COW-претендент может раскрыть неоспоримые предположения, встроенные в код. Поскольку Snapper также используется в нескольких дистрибутивах, отличных от SUSE, включая Spiral Linux, Garuda и siduction, они также привязаны к Btrfs.
Другая широко используемая файловая система следующего поколения FOSS, OpenZFS, также поддерживает COW, но конфликты лицензий не позволяют полностью интегрировать ZFS в ядро Linux. Поэтому, хотя несколько дистрибутивов (таких как NixOS, Proxmox, TrueNAS Scale, Ubuntu и Void Linux) поддерживают ZFS, он должен оставаться отдельным и обособленным. Это приводит к ограничениям, например, к тому, что расширенный кэш чтения ZFS отделен от страничного кэша Linux.
=============================================================
Bcachefs полностью распространяется под лицензией GPL и не страдает от таких ограничений. Он призван предоставить важные функции ZFS, такие как интегрированное управление томами, будучи при этом столь же быстрым, как ext4 или XFS, а также превосходить Btrfs как по производительности, так и, что особенно важно, по надежности.
Больше конкуренции – это хорошо. Наличие второй файловой системы с поддержкой COW, не обремененной лицензионными ограничениями, откроет конкурентную среду - не только для Btrfs, но и, например, для Stratis от Red Hat. Это также повлияет на инструменты, повторяющие аналогичные функции, такие как Flatpak и OStree, а также на такие дистрибутивы, как Endless OS и различные неизменяемые варианты Fedora, построенные на их основе.
На KernelNewbies есть большой аннотированный список изменений в этом выпуске, хотя там отмечается, что список еще не полон. С точки зрения количества изменений, это самый крупный выпуск ядра за всю историю, и некоторые изменения будут иметь последствия на долгие годы вперед. Там могут скрываться драконы или, по крайней мере, жуки. Будьте осторожны и ожидайте, что некоторые новые вещи потребуют некоторого времени – и точечных выпусков – чтобы прижиться.