Эрик Реймонд — евангелист свободного ПО, сооснователь фонда Open Source Initiative, автор «закона Линуса» и книги «Собор и базар», своеобразной «священной книгой» свободного ПО. По его мнению, в недалеком будущем Windows перейдет на ядро Linux, так что сама Windows станет слоем эмуляции на этом ядре.
Похоже на шутку, но сегодня вроде бы и не 1 апреля. Свое утверждение Реймонд аргументирует активными действиями Windows в сфере открытого ПО. Так, Microsoft активно работает над Windows Subsystem for Linux (WSL) — подсистемой Linux для Windows. Также он не забыл о браузере Edge, который работал сначала на движке EdgeHTML, но полтора года назад его перевели на Chromium.
Плюс ко всему, в прошлом году Microsoft заявила об интеграции в ОС полноценного ядра Linux, что необходимо для работы WSL2 с полной функциональностью. В целом, рациональное зерно в утверждении Реймонда есть, ну а как относиться к этому мнению, личное дело каждого.
У Эрика Реймонда есть и другие аргументы в пользу скорого «переезда» Windows:
Большое количество уязвимостей в ядре самой Windows. Так, в последнем апдейте для Windows 10 содержится около полусотни исправлений.
Необходимость вкладывать крупные средства в развитие проприетарного ядра Windows. Чтобы оптимизировать затраты, корпорация Microsoft может перейти на бесплатное Linux-ядро.
Снижение прибыли от продаж Windows. Сейчас большая часть прибыли корпорации Microsoft поступает от облачного сервиса Azure, а не от продажи ПО, как раньше.
Правда, продажа программного обеспечения до сих пор приносит неплохие деньги, но здесь суммы в несколько раз меньше, чем у облачного подразделения. Так, рост оборота подразделения More Personal Computing, которое занимается, в том числе, продажей лицензий Windows, составляет около 7% в 2020 году. А вот с Microsoft Inteligent Cloud дело другое — прирост выручки составляет 17% по сравнению с прошлым годом.
Абсолютные показатели тоже разные. Если в первом случае рост оборот около $2,5 млрд, то во втором — $13,4 млрд.
Замедляет рост выручки «софтверного» подразделения Microsoft, в первую очередь, снижение объемов продаж ПК и ноутбуков. Это хорошо заметный тренд последних несколько лет. Если экономические проблемы не исчезнут, а это вряд ли, то к 2021 году рынок ПК и ноутбуков испытает не одно потрясение. А это означает, что у Microsoft тоже возникнут проблемы.
Во что превратится Windows?
Как и говорилось выше, Реймонд утверждает, что Windows станет слоем эмулятора на ядре Linux. Интерфейс же ОС от Microsoft станет просто графической средой для Linux, где можно будет запускать приложения под Windows через эмулятор.
Пример такого эмулятора уже существует — это Proton, который дает возможность запускать Windows-игры на ПК под управлением Linux. Proton разработан компанией Valve, и если к этому продукту приложить дополнительные усилия, он может стать почти идеальным. Но ничего не мешает разработать что-то похожее самой Microsoft, не одалживая чужие платформы.
В итоге компания сэкономит кучу денег, а финансовый вопрос почти всегда важнее для компаний, чем идеология. В результате Linux победит на десктопах, став одной из основных ОС для персональных компьютеров. По мнению евангелиста свободного ПО, разработчики постепенно перейдут на двоичные файлы ELF с API Linux, отказавшись от двоичных файлов ОС Windows.
Microsoft давно дружит c Linux
Впервые о тесной дружбе Microsoft с разработчиками Linux стало известно 4 года назад. Тогда компания вместе с Canonical заявила об интеграции ОС Ubuntu в Windows. Получилось нечто вроде эмулятора, но вполне работоспособного.
Все логические диски, вроде C:, монтировались для чтения и записи в директории /mnt, то есть /mnt/c, /mnt/d и т.д. И наоборот, файловая система Ubuntu появилась в «Проводнике» в C:\Users\Kirkland\AppData\Local\Lxss\rootfs\.
Но это были лишь первые эксперименты, которые постепенно продолжались, пока не переросли в нечто большее.
В апреле прошлого года корпорация Microsoft впервые представила Windows Subsystem for Linux. Затем было разработано уже второе поколение этой системы, которая позволяет запускать под Windows любые приложения под Linux, включая не только консольные, но и графические. Сейчас в WSL добавлена поддержка компьютерных вычислений на GPU. Разработчики могут полноценно использовать свои аппаратные ресурсы, например, для машинного обучения, используя NVIDIA CUDA и DirectML. В Linux-окружении можно запустить TensorFlow и PyTorch.
Осенью этого года Microsoft выпустила экспериментальную сборку ОС Windows 10, которая отличается от других тем, что содержит ряд инструментов для работы с Linux. Например, файловый менеджер Windows научился работать с файловыми системами для Linux, включая ext4.
Плюс ко всему, Microsoft является одним из крупнейших партнеров Linux Foundation. Угадайте, кому принадлежит самой большой раздел на GitHub, посвященный открытому ПО? Правильно, Microsoft. Компания выпускает все больше продуктов с открытым исходным кодом и сотрудничает с крупнейшими представителями сферы Open Source.
Oplkill
В основном открываемые проекты от майкрософта это не нужное старьё, которое они больше не хотят поддерживать.
Добавление подсистемы линукс в винду это явно желание сгребсти аудиторию линукса к себе, чтобы те программы которых нет в винде в ней работали.
Перевод винды на ядро линукса будет приговором для винды и потеря существенного рынка ПК, так как все новые программы будут уже писать под линукс, а значит переход на линукс будет менее болезненным или вообще безболезненным
sav13
Андроид тоже использует ядро линукс. И что? Код легко переносится? Как бы не так. Все приложения в основном пишутся в рамках SDK.
Так и Микрософт заменит все POSIX библиотеки на .NET, естественно без исходников.
Да еще и кучу проприоритарных драйверов в ядро добавит
smind
Как это без исходников, как раз с.Net core они придерживаются открытой парадигмы.
KAW
Только вот WinForms/WPF, которые с недавнего времени работают на Net Core, поддерживают только Windows. Просто потому что «формочные» фреймворки сильно привязаны к развесистому WinAPI.
Microsoft не Apple, они не будут поступать как м… ки и ломать обратную совместимость важного для профессионалов софта
Krey
WinForms давно пора грохнуть, а wpf с winapi не связана
anonymous
Чем вам так не нравятся WF?
PsyHaSTe
в 2013 году вышла статья "7 лет WPF. Что изменилось?". Ответ — ничего.
Сейчас уже 2020 год, а ответ всё тот же.
KvanTTT
WPF сильно завязана на винду, иначе бы уже портировали бы на Линукс и Мак.
Coline
WPF только на Windows, потому что он основан на DirectX, который только на Windows
Larymar
да, потому что кроссплатформенный гуй — спорная штука
Но вот майки выкатывают MAUI
А еще есть Avalonia
VioletGiraffe
В целом — да, нативный код легко переносится, т. к. есть поддержка POSIX. Но чрезменая секьюрность, конечно, доставляет проблем (вроде невохможности открывать файлы/папки, не спросив предварительно разрешения, а сделать это можно только через Java и даже там через задницу).
M_AJ
Проблема перехода на Linux ведь не в Linux, a в дистрибутивах. Если MS сможет создать и популяризировать например нормальный display server и DE, то какой смысл будет менять майкрософтовскую ОС на какой-то другой Linux? Хотя лично я хотел бы видеть от них не очередной линукс, которых и так навалом, а что-нибудь новое, на микроядре, с принципиально лучшей изоляцией процессов, и прочими фичами направленными на безопасность.
Chronicler
В воздухе витают идеи ОС в полной мере использующей возможности контейнеризации, docker лишь первый шаг в этом направлении, можно представить систему где абсолютно все работает из контейнеров, браузер, читалка, IDE.
Это и безопасность, и устойчивость конфигурации.
Alexus819
docker это не про безопасность, это скорее про масштабируемость
VolCh
Докер — это про изоляцию процессов и маппинг "виртуальных" файлов на реальные.
deitry
Где каждый пакет будет тянуть за собой все зависимости и весить по N гигабайт
AndreyHenneberg
Прямо как приложения в винде.
deitry
Не без этого. Но человек говорит про новую такую ОС. Можно, но стоит ли того? Если приспичит, в тех же линуксах есть snap-пакеты.
AndreyHenneberg
В Linux эти пакеты «от плохой жизни», а в Windows — норма, потому что каждый тащит с собой полсистемы.
PsyHaSTe
Можно пойти по принципу докера, где общие слои шарятся между приложениями. Тогда проблем быть не должно.
maledog
Есть уже. Qubes. Только вот большинству он не нужен.
garwall
NixOs
Alex_ME
А ещё Clear Linux. Но зачем? Ресурсов стало опять слишком много, надо бы ещё один уровень абстракции навернуть, чтоб софт как тормозил, продолжал тормозить?
ainu
Да
PsyHaSTe
Я общался с разрабами микроядерных ОС от майкрософта, в частности Singluarity/Midori/..., и их позиция в том, что микроядро в текущих реалиях нереализуемо из-за невозможности защититься от side channel attacks. В будущем возможно как их избежать придумают, но сейчас статус-кво в том, что даже если не брать во внимание стоимость такого переписывания, тупо неизвестно как написать ОС которая не будет сливать вирусам данные вашей карточки.
EVolans
И что же тогда платный корпоративный linux сектор до сих пор не умер? Не думаю, что если microsoft там появится, то все сразу побегут отдавать деньги другим дистрибутивам.
Lsh
Так и сейчас можно потихоньку начинать писать только под GNU/Linux. А на винде заработает само, через WSL. Как раз и графику с ускорением скоро приделают.
Oplkill
Оно и видно как все пишут на линуксе
AndreyHenneberg
Так всё только начинается же. Как появится полноценная графика, начнут переезжать. Проблема разработки того де WINE-а в том, что MS не жаждет делиться деталями своего API, а вот с прикручиванием такого интерфейса к Windows таких проблем не будет, потому что весь API открыт, причём, не только на уровне документации, но и на уровне кода.
EnotP
Ну да, ну да. Давайте будем откровенны: эти полтора процента десктопов разработчикам неинтересны от слова совсем. И не станут интересны в обозримом будущем. И появление возможности запуска полуторопроцентных программ на винде никак не сдвинет коммерческих разработчиков в сторону меньшинств.
Lsh
И зачем же тогда MS тратит усилия на разработку WSL?
sumanai
Потому что там крутятся серверные приложения. Как можно заметить, там есть только консоль, десктопные запускаются только после плясок с бубном.
Lsh
А зачем тогда они сейчас плотно занялись именно графикой? Посмотрите на YT конференцию XDC 2020, там чуть ли не половина времени отведена под рассказы от MS про то, как они графику в WSL приделали.
sumanai
Графику это видеокарты? Так то для машинного обучения и прочих GPU задач.
Lsh
Не только. Там и специальный Wayland композитор, чтобы просто GUI работало.
sumanai
А вот это уже интересно. Жаль, что наверняка будет требовать второй версии, а то она уж больно много ОП жрёт, да и идеологически мне не нравится.
EnotP
Во-первых, потому что все предыдущие системы имели фатальный недостаток.
Во-вторых, Microsoft — это одна из крупнейших корпораций, которая, в отличие от большинства IT-гигантов, не складывает все яйца в одну мошонку. Они постоянно пробуют что-то новое, что не исключает, что, наигравшись, они похоронят этот проект и начнут что-то новое.
KvanTTT
Что является надежной стратегией выживания, особенно когда ресурсы позволяют.
saboteur_kiev
А почему все существующие программы под Линукс не запускаются просто так на Андроид и наоборот?
Суть Windows это не ее ядро, а это например те же directX, библиотеки для отрисовки GUI которые во всех
дистрибутивахверсиях винды почти одинаковые или как минимум стандартизированы.Драйвера.
AndreyHenneberg
В случае с Андроидом проблема в железе, которое определяет пользовательский интерфейс. Ну и в том, что там неполный комплект утилит и библиотек. Но вот консольные приложения вполне запускаются. А для графики нужен API к графической системе, которая радикально отличается от дэсктопной.
AndreyHenneberg
А драйверка… Ну пишут производители драйвера, пишут. Только там проблема в том, что в у Windows микроядерная архитектура и потому драйвер представляет из себя отдельное приложение, которому наплевать на всех, кроме этого микроядра, а ядро Linux монолитное и драйвер надо поддерживать. Уже несколько раз спотыкался о проблему с драйверами к видеокартам Nvidia, которые в какой-то момент выкидываются из дистрибутива, потому что поддерживать муторно. А вот с ATi/AMD таких проблем нет, потому что они отдали драйвера на откуп сообществу и не пытаются выделываться.
В общем, с драйверами как раз особых проблем нет. Разве что, на какую-то экзотику.
sumanai
Не совсем. Драйвера крутятся в пространстве ядра, поэтому она не может быть микроядерной. Но да, ядерное API у неё намного стабильнее, чем в Linux.
AndreyHenneberg
Но в итоге имеем радость наблюдать падение драйверов, потому что каждый пишет по велению левой задней.
sumanai
По велению левой пятки не получится, потому что есть WHQL. Не знаю, что туда отдаётся, наверное, уже скомпилированный бинарник, так что на уровне исходного кода действительно может быть что угодно, но это что угодно должно проходить тесты.
Да и не помню я, когда в последний раз у меня падал драйвер, а не заметить это сложно, так как падение большинства драйверов приведёт к синему экрану.
khajiit
Ну, WHQL появился не так давно, а при условии исправного железа и нормально написаных драйверов и NT5 была rock solid, даже при применении любительских драйверов.
При соблюдении регламента обработки событий, емнип, код драйвера даже не требует какой-либо стабильности и может падать в той части, где выполняется отложенная обработка — а это практически весь код драйвера.
sumanai
В XP уже по сути был, а го предшественник Hardware Compatibility Test вышел и того раньше. А это добрых 20 лет.
А вот тут я не уверен. Помню, что внутри прерывания нельзя вызывать подкачку и кучу процедур, потому что оно выполняется на высоком IRQL. То есть код в отложенном обработчике прерываний сложнее уронить каким-нибудь обращением к памяти. Других каких-то отличий я не припомню.
khajiit
С самопальными драйверами для всякой периферии на XP приходилось наблюдать в eventvwr падения именно драйверов.
Хотя, честно говоря, драйвера на жареную видеокарту падали чаще ) Но это потому, что каджит их тогда гонял на тестовом стенде.
sumanai
Для периферии есть User-Mode Driver Framework, и такие драйвера могут падать хоть по 100 раз в секунду, ибо по сути обычный процесс с тонкой прослойкой в ядре. А видео так вообще можно перезагрузить сочетанием клавиш.
qrck13
В теории переход на ядро Linux можно сделать так, что кроме производителей драйверов его мало кто заметит.
В среде Windows разработки более-менее принято считать уровень WinAPI — базовым уровнем интерфейса системы, поверх которого строятся как все низкоуровневые приложения (например написанные на C старые программы), так и фреймворки вроде .NET.
Но сам по себе WinAPI не является родным API системы, это просто обертка поверх NT Native API (https://en.wikipedia.org/wiki/Native_API). (WinAPI была нативным интерфейсом в Windows 95/98). Ничто не мешает сделать другую WinAPI обертнку, не вокруг NT Native API а вокруг API ядра и графической подсистемы linux — для приложений использующих WinAPI и выше все останется как прежне.
Другой вопрос — что тестировать и отлаживать это будет нужно очень долго, пока все реально не заработает нормально, так что все существующие приложения будут работать. И выгода от "экономии" на разработке NT ядра быстро сойдет на нет и уйдет в дикие минуса.
Если они и хотят сэкономить на поддержании безопасности ядра — куда разумнее будет постепенно открыть исходники своего NT ядра. Постепенно дабы не получилось так, что на следующий день у них 100500 новых уязвимостей в системе.
netch80
Нереально.
Всё, что я описал, реализовано в логике Native API. Придётся вгонять всю разницу логики в обёртку, или в ядро (где её не примут)?
Вот тут +100.
Deerenaros
Не всё так просто под луной.
Если провести хоть сколько-то адекватный анализ — становится очевидным, что экономическая модель Microsoft вышла давно за рамки переодической продажи коробочной Windows. Более того, если посмотреть внимательно — видны попытки сделать из Windows мета-экосистему: Microsoft 365 всё сильнее втирается пользователям, а Microsoft Azure всё прибыльнее и прибыльнее.
При этом изначально очевидно было, что WSL была лишь попыткой сделать более удобноваримый cygwin, но сейчас всё чаще кажется, что это куда более серьёзное вкрапление Linux в Windows. Довольно стихийно развивающееся.
И самое главное — кажется логичным, что сама по себе разработка Windows становится всё более сложной, а конкуренция с Linux — всё сложнее. Да, оба продукта растут, но Vulkan API (в который сама MS вложилась) — идеальная замена DX12.1, экосистема обрастает открытыми стандартами, которые поддерживать можно каждый и дело даже не в том, что люди переходят на Linux. А в том, что условно через 5, 10, 100 лет возможна реальная война, причём совсем не обязательно конкретно с Linux. Принципиально с Open Source. И зачем, зачем быть по сторону барикад заведомо "корпорации зла"?
Конечно, заявления Реймонда скорее всего излишне "светлые", но в целом, я уже где-то высказывал мнение, что вполне вероятно очень скоро будет не WSL, а LSW, или какой-нибудь Windows Core. Который позволит запускать бинари винды из под Linux. И. А почему бы и нет? А если он будет условно бесплатный, просто весь софт будет стоить денег? К тому же, если условно-обязательным условием будет использование "официального репозитория Microsoft" с впиленной в него монетизацией? А что если это будет полный репозиторий по подписке?
Так в целом же весь IT идёт к финансовой модели подписочных сервисов. Это может быть даже не так прибыльно, но куда более предсказуемо. Когда ты в любой момент можешь перевести цифры адитории в реальные деньги банальным умножением на коэффициент.