от DeepUltramarine(21-11-2025)
Интересен дебат се вихри в Linux kernel общността, който може да има повече технически, но не и революционни, последствия за Линукс.
Накратко, Linux ядрото се компилира предимно с GCC (GNU Compiler Collection), но сега се обсъжда активиране на Microsoft Visual C++ (MSVC) extensions в Clang/LLVM компилатора, за да се улесни кросплатформеното развитие (особено с Windows). Това не е "Microsoft нахлува в Linux", а по-скоро прагматичен ъпгрейд за съвместимост.
Linux ядрото използва C език (ANSI C + GNU extensions) за код. За компилация се поддържат GCC и Clang (LLVM), но Clang е все по-популярен заради по-добрата си производителност и диагностика.
Предлага се да се активира поддръжката за MSVC extensions (Microsoft специфични разширения на C, като __declspec или типове като bool и wchar_t от MSVC). Това се прави чрез флаг в Clang: -fms-extensions.
Ако се предложението се одобри, Clang ще компилира kernel-а с MSVC стил по подразбиране, без да се налага ръчна настройка.
Мотивите зад такова предложение са не са малко.
Много разработчици работят на Windows (с Visual Studio/MSVC), но тестват на Linux. Без MSVC extensions, кодът трябва да се адаптира ръчно, което забавя работата. С активиране, същият код ще работи в Clang на Linux, без грешки.
Clang вече поддържа MSVC mode (от 2020г.), но за ядрото тази опция е била изключена. Активирането ще позволи по-добра съвместимост с Windows драйвери (WSL – Windows Subsystem for Linux) и инструменти като CMake.
Това може да ускори компилацията с 10–20% в някои сценарии (според тестове от LLVM общността).
Какво означава това за потребителите?
Ако сте обикновен потребител (Ubuntu, Fedora и т.н.), няма да усетите разлика. Ядрото ще се компилира по същия начин, дистрибуциите (като Canonical или Red Hat) ще продължат да го тестват. Няма риск за стабилност – промяната е опционална и се тества от месеци.
По-бързи ъпдейти на ядрото в бъдеще, ако повече разработчици допринасят в разработката. За WSL (ако ползвате Windows), Linux ще работи по-плавно.
Рискове - минимални. Ако има грешки (напр. несъвместим код), ще се фикснат в следващите версии на ядрото. Няма "Microsoft контрол" – кодът остава open-source.
В същото време разработчиците могат да пишат код на Windows и директно да го тестват на Linux, без да премахват MSVC специфични изрази. Това би могло да привлече повече сътрудници (особено от Microsoft, Google, Intel).
Ядрото ще бъде по-гъвкаво за хибридни среди (Azure, AWS с Windows инструменти).
Редица мнения се изказват относно чистотата на кода, но Linus Torvalds все още не е коментирал директно.
Общо взето, не се очаква спад в производителността или стабилността; Clang с MSVC mode е тестван и генерира по-добър код в някои случаи (по-малко warnings).
В коментарите на Slashdot има шеги за "Microsoft печели" (напр. "Следващата стъпка: .NET в kernel?"), но сериозните реакции са позитивни – 70 % от коментите подкрепят, като подчертават, че Linux винаги е бил прагматичен (поддръжка за NVIDIA, Intel и т.н.).
Ако се одобри, ще влезе в kernel 6.19 (януари 2026 г.), но с възможност за rollback.
Така Linux става по-привлекателен за корпоративни разработчици, без да губи идентичността си.
Може би...
Опитвам се да пресъздам впечатлението, лъхащо от публикацията, но защо въпреки това аз самият се мръщя на всичко това?
Източник: https://developers.slashdot.org/story/25/11/10/2250251/the-linux-kernel-looks-to-bite-the-bullet-in-enabling-microsoft-c-extensions
<< | ClamAV ще намали с 1/2 размера на virus sign >>
|