После двух месяцев разработки вышла новая версия ядра Linux 3.8.
Основные новшества представлены ниже.
- В файловых системах и подсистеме хранения данных.
- Добавлена поддержка файловой системы F2fs, предназначенной для использования на USB-флешках, картах памяти и других устройствах, использующих уровень FTL. Принцип действия этой ФС основан на постепенном заполнении носителя с начала устройства (Log-structured FS), при этом используется приём Copy-On-Write. ФС гарантирует доступность старых данных, если новые данные записаны не полностью, при этом традиционное (для некоторых систем) журналирование не используется за ненадобностью.
- В btrfs улучшена функция переноса данных с одного диска на другой. Помимо этого, в код этой ФС приняты патчи, позволяющие некоторым алгоритмам распараллеливаться на несколько процессоров (ядер), что в теории должно привести к увеличению производительности.
- В файловой системе Ext4 реализована поддержка хранения мелких файлов непосредственно в inode. Этот приём используется для убыстрения доступа к таким файлам, а также в целях экономии дискового пространства. Напомним, что похожие алгоритмы используются и в reiserfs.
- В файловой системе XFS реализована функция определения повреждений метаданных при выполнении операций чтения и записи. Такие повреждения выявляются посредством вычисления контрольных сумм по алгоритму CRC.
- В код подсистемы, отвечающей за реализацию RAID6, добавлена поддержка инструкций AVX2, что позволит повысить производительность некоторых операций на будущих процессорах Intel Haswell.
- В инфраструктуре.
- Добавлена возможность ограничения памяти ядра, используемой для управления процессами. Это позволяет более эффективно бороться с т.н. форк-бомбами, т.е., бесконтрольным размножением процессов.
- Подсистема NUMA изменена таким образом, чтобы поддерживать когерентность между памятью и процессором для одного процесса. Это должно привести к повышению быстродействия, т.к. процессы на архитектуре NUMA быстрее получают доступ к памяти, выделенной своему процессору, нежели другим.
- В отдельных случаях значительно уменьшено потребление памяти. В случае, если процесс запрашивает много памяти, но не пишет в неё, память реально не выделяется. Это достигнуто благодаря применению техники Copy-On-Write для выделения больших страниц памяти на основе страниц, заполненных нулями.
- Включена утилита turbostat. Она позволяет на новых процессорах Intel смотреть приблизительное потребление (в ваттах) каждого ядра (вычислительного и графического) по отдельности.
- Добавлена поддержка динамического изменения объёма выделенной памяти при использовании ядра в виртуализированном окружении Hyper-V.
- Убрана поддержка процессоров серии 386 с целью упрощения кода, отвечающего за поддержку многопроцессорности.
- В BPF добавлена возможность фильтрации трафика по VLAN'ам. Эту возможность можно использовать, например, в пользовательской утилите tcpdump.
- Добавлена поддержка вычисления контрольных сумм инкапсулированных пакетов на уровне «железа», что должно снизить нагрузку на центральный процессор.
- Планировщик процессов изменён таким образом, чтобы помещать много маленьких заданий на одно ядро процессора, позволяя другим ядрам бездействовать. Также отмечается переработка подсистемы RCU, призванная уменьшить джиттер задержки при перепланировании процессов.
- В драйверах.
- В драйвер Nouveau добавлена поддержка 3D-ускорения с помощью OpenGL на всех существующих картах GeForce. По части управления охлаждением и поддержки ускорения видео разработчикам ещё предстоит работать.
- Добавлен простой графический драйвер для NVIDIA Tegra 2/3, разработанный не в компании NVIDIA. К сожалению, наработки последней по части аппаратного ускорения появились позже и в этот выпуск ядра не попали.
- Улучшена производительность сетевых драйверов, которые используются для паравиртуализации.
- Значительно расширен спектр поддерживаемых устройств.
Конечно же, в новом ядре есть и множество других изменений, которые, к сожалению, не поддаются перечислению в рамках данной новости. Чтобы получить более детальную информацию о новшествах ядра, рекомендуется обратиться к таким источникам: ноль, раз, два, три. Также полезную информацию можно почерпнуть, читая странички Kernel Newbies (раз, два) и сайт LWN (раз, два).