Сегодня в ветку ядра Linux 6.19 официально приняли поддержку Microsoft C Extensions — изменения, которые долгие годы откладывались. Решение Линуса Торвальдса открывает путь к более гибкому коду и уже влияет на подсистемы вроде Btrfs.
Иногда в мире технологий самые тихие события оказываются самыми значимыми. Я сегодня буквально на мгновение отвлёкся от рутины — а в git-логе ядра уже сияет свежий коммит: поддержка Microsoft C Extensions наконец-то включена по умолчанию. И, знаете, в этом есть что-то почти литературное: годы попыток, споры, отвергнутые патчи — и вот, будто герои старой хроники, разработчики пришли к решению, которое меняет внутреннюю архитектуру кода.
Почему это решение оказалось столь важным?
Если говорить проще, Microsoft C Extensions — это набор нестандартных расширений языка C, которые, тем не менее, десятилетиями жили в экосистеме Visual C/C++ и встречались в некоторых распространённых заголовках. До недавнего времени ядро Linux предпочитало обходить их стороной, избегая лишних рисков и подчёркивая свою независимость.
Но мир меняется. Сегодня оба ключевых компилятора — GCC и Clang — корректно поддерживают эти расширения, а включение флага -fms-extensions делает возможным более элегантный и читаемый код. В частности, расширения позволяют использовать анонимные структуры и объединения там, где раньше приходилось применять дополнительные прослойки.
И, как я наблюдаю, разработчики Btrfs уже начали адаптацию. Они показывают пример того, как эти возможности упрощают внутренние конструкции и избавляют от визуального «шума».
Как это повлияет на ядро Linux?
Лично мне кажется, что это решение — не просто косметическое обновление. Оно меняет сам подход к тому, как формируется код ядра: меньше шаблонности, больше выразительности, меньше технического долга. А главное — такие изменения всегда ведут к ускорению разработки и упрощению сопровождения.
К слову, интересующимся рекомендую иногда заглядывать на официальный сайт ядра Linux — там можно наблюдать, как то или иное решение постепенно обретает форму в реальном времени.
Разумеется, впереди ещё будет обсуждение, и не исключено, что отдельные части кода подстроят под новые правила не сразу. Но факт остаётся фактом: Linux 6.19 становится первой версией, где Microsoft C Extensions включены по умолчанию и начинают менять архитектуру изнутри.
И как автор техноблога, я скажу честно: в такие моменты особенно чувствуешь дыхание большого, старого проекта, который всё ещё умеет удивлять.
// Упрощённый пример, демонстрирующий пользу анонимных структур
struct device {
union {
struct { int major; int minor; };
int id;
};
};
О том, как это решение будет развиваться дальше, обязательно расскажу в следующих обзорах. А пока — наблюдаем, как одно небольшое изменение открывает дверь в новое качество написания кода ядра Linux.
Источник: phoronix.com




