LINUX.ORG.RU

Microsoft создала родной слой эмуляции вызовов POSIX в Windows 10

 , , , ,


8

8

В ближайшие дни Microsoft представит совместную с Ubuntu разработку для ОС Windows 10, которая позволяет запускать немодифицированные (пока только консольные) бинарные файлы в Windows. Суть новинки заключается в трансляции системных вызовов Linux/POSIX в вызовы Win32 API, что позволяет достичь практически родной скорости выполнения Linux-приложений в среде Windows. Если не вдаваться в тонкости, то разработчики из Microsoft написали Wine наоборот.

Некоторые детали реализации:

  • Все диски Windows будут доступны через точки монтирования в /mnt.
  • Сама корневая система Linux/Ubuntu будет находится в C:\Users\$USER\AppData\Local\Lxss\rootfs\
  • На данный момент терминал vt100, который эмулируется для приложений Linux, реализован не полностью, поэтому такие утилиты, как byobu, screen и tmux пока не работают.
  • Основа всего — Ubuntu 14.04 LTS.
  • Ubuntu для Windows распространяется как приложение UWP, поэтому работает только в Windows 10.

Почему Microsoft пошла на это? Чтобы привлечь тех разработчиков, для которых cmd.exe и PowerShell не являются достаточными, а cygwin не обеспечивает достаточной скорости.

>>> Подробности

★★★★★

Проверено: fallout4all ()
Последнее исправление: Psych218 (всего исправлений: 4)

из плюсов:

  • MinGW похудеет
  • в сорцах начнут исчезать ублюдские прослойки а-ля #ifdef OS_xxx... и портировать туда-сюда станет проще
  • доля winXX вызовов (и вообще узко-виндового софта) станет падать - зачем писать 2 варианта, если вызовы linux/posix обеспечиваются в win

из минусов :

  • тормоза будут
  • MS будет пытаться влиять: «повремените/сделайте_подругому/добавьте_то-сё во имя нашей мега-популярной и востребованной прослойки»
MKuznetsov ★★★★★
()

Без графической подсистемы виндузятники пользоваться не будут. А линуксоиды не будут в любом случае.

Aceler ★★★★★
()
Ответ на: комментарий от MuZHiK-2

We're still trying to get the inside story on what Microsoft has done here, but what we've known for several months now is that the company has developed some Windows kernel components (lxcore.sys, lxss.sys, presumably standing for «Linux core» and «Linux subsystem,» respectively) that support the major Linux kernel APIs. These components are not GPLed and do not appear to contain Linux code themselves; instead, they implement the Linux kernel API using the native Windows NT API that the Windows kernel provides. Microsoft is calling this the «Windows Subsystem for Linux» (WSL).

Deleted
()
Ответ на: комментарий от MrClon

Раньше в винде уже был слой совместимости с POSIX, но потом его вроде как выпилили.

Базовая поддержка POSIX в винде существует очень давно и никуда не девалась, но ее возможности очень ограничены. А еще была вот эта штука в составе серверных версий, вот ее выпилили:

https://en.wikipedia.org/wiki/Windows_Services_for_UNIX

annulen ★★★★★
()
Ответ на: комментарий от zaz

В принципе я на вскидку ничего не могу придумать чего нету в Windows - разве что всякие cgroups ...

fork() например

anonymous
()
Ответ на: комментарий от int13h

А что с лицензиями?

А что с ними? Разрабам вайна от MS никаких лицензий не требовалось. Тут то же самое. В MS написали транслятор, полагаю, что он будет закрыт, как и прочий код винды. Код, который парсит ELF, запускает его и транслирует вызовы, не обязан быть открытым.

anonymous
()
Ответ на: комментарий от MKuznetsov

сорцах начнут исчезать ублюдские прослойки а-ля #ifdef OS_xxx... и портировать туда-сюда станет проще

Так говоришь, будто все юниксы полностью совместимы.

Deleted
()
Ответ на: комментарий от Deleted

Ну и что это будет? Очередные службы, которые пользователь может отключить или выпилить, которых на более старых версиях не будет. В итоге если теперь под винду надо будет две ветки кода гнать? Бред.

MuZHiK-2 ★★★★
()

Windows, POSIX только у меня дежавю?

anc ★★★★★
()
Ответ на: комментарий от anonymous

Люди переходят на линукс во многом ради удобного тулкита, командной строки и утилит, и явно не ради убожественных Иксов

Ты споришь с голосами в голове?

Теперь мотивации переходить на будет.

Яволь.

tailgunner ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Опять не понял про «Portable Ubuntu».

Но касательно запуска ELF на Windows — не то, чтоб это было сложно, но требует либо «интерпретатора» (а-ля wine) или модификации ядра/рантайм линкера.

P.S. Блин, только сейчас понял, что понятия не имею как код хранится в ELF (т.е. как выглядят сами команды, а не контрольные структуры). И как оно отличается от PE.

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Ну так а что раскрывать, если ты веб макака как я, то с виндой что-то делать это просто боль, ставить линукс на макбук тоже такое себе удовольствие. Десяточка с убунту окружением отлично зайдет таким как я у кого стим в дуалбуте.

zz ★★★★
()
Ответ на: комментарий от Stanson

То-то полуось, которая выполняла виндовые приложения лучше чем винда

4.2 Не было такого. Плюс был в другом, крэш отдельного приложения не вызывал крэша системы.

anc ★★★★★
()
Ответ на: комментарий от zz

если ты веб макака как я, то с виндой что-то делать это просто боль, ставить линукс на макбук тоже такое себе удовольствие. Десяточка с убунту окружением отлично зайдет

Я кернелмакака, поэтому не понял. Ты говоришь о том, чтобы поставить windows10 с Убунта-подсистемой для веб-разработки на Макбук - вместо Макос?

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Лично я теперь смогу например не бутится в макось по выходным, если хочется чего то поделать по своим хобби проектам. А оттуда недалеко и до 24*7 винды на макбуке или виндовс ноутбука если их научатся делать когда-нибудь.

zz ★★★★
()
Ответ на: комментарий от question4

Предыдущий сдох в начале 2000-х.

Это было совсем другое. А сейчас будет половинка полноценной убунты прям из десяточки.

mandala ★★★★★
()
Ответ на: комментарий от anc

4.2 Не было такого.

Было, по одной простой причине - Win16 API для полуоси делала сама микрософт, но без жуткого легаси винды. Поэтому кое-что работало быстрее и/или без глюков. Это и к UI относится и ко всякой файловой и девайсовой фигне. Другое дело, что вскоре появилось Win32 API в варианте Win95 и вот тут уже полуось осталась в одиночестве. Win32 API в полуоси был, но без кучи всякой гуёвой хрени, которая использовалась чуть ли не во всех приложениях. Та же commctl.dll в полуоси отсутствовала, со всеми вытекающими. Но полуось уже помирала и интерес к ней у микрософта угас. Поэтому, Win32 API as we know it now для полуоси так и не был реализован.

Плюс был в другом, крэш отдельного приложения не вызывал крэша системы.

И это тоже имело значение.

Stanson ★★★★★
()

Я не понял, а нафига вендовозам линуксовые приложения? Чтобы мамкины хацкеры не страдали дуалбутом? Других юзкейсов не вижу.

anonymous
()
Ответ на: комментарий от zz

Лично я теперь смогу например не бутится в макось по выходным

Как то слишком тонко. Причем тут вообще макось? Это ты так убунту называешь?

anonymous
()
Ответ на: комментарий от anonymous

Это все в треде, где ящитаю что мак юзерам [с дуалбутом] это будет интереснее чем убунту юзерам.

zz ★★★★
()
Ответ на: комментарий от mandala

Это было совсем другое. А сейчас будет половинка полноценной убунты прям из десяточки.

А там был консольный РэдХет. Правда, без шансов на графику.

question4 ★★★★★
()
Ответ на: комментарий от question4

А тут типа есть шансы? А даже если бы и были, что там запускать? Gimp? Ой, а ведь он и так работает (правда никому не нужен).

anonymous
()
Ответ на: комментарий от question4

А там был консольный РэдХет.

Кмк, цель теперь совсем другая. Максимально влезть/паразитировать в сегмент linux (unix-like по вендузячьи).

mandala ★★★★★
()
Ответ на: комментарий от anonymous

cmd.exe говно, pawershall тоже не взлетел...

Ну-ну, повершал оказался не нужен разрабам-вендузятникам, а без баша они прям жить не могут. Смешно. Популярность cygwin тоже прям аж зашкаливает.

anonymous
()
Ответ на: комментарий от anonymous

Про вендо-админов с приросшим к мышке пальцем я вообще молчу. Они ссутся от одного вида чорной консольки.

anonymous
()
Ответ на: комментарий от saahriktu

Да что ты говоришь? Эмуляция (a lá Wine) linux под виндой это нужно для пользователей Винды? Может быть альтернативой дуалбуту? Да ты просто гений, брат. Вручить орден «Капитан Очевидность» первой степени с мечами и бантами этому линуксоиду.

be_nt_all ★★
()

Если это не фейк, то можно забивать последний гвоздь в крышку гроба десктопного линукса.

Reset ★★★★★
()
Ответ на: комментарий от Reset

можно забивать последний гвоздь в крышку гроба десктопного линукса

Как хорошо будет. А то гроб трясут, крышкой хлопают, жить спокойно не дают. Пусть сидят в винде с утрамбованной в неё убунтой. Прям мечта.

mandala ★★★★★
()
Последнее исправление: mandala (всего исправлений: 1)
Ответ на: комментарий от Stanson

Поэтому кое-что работало быстрее и/или без глюков.

Да ничего там не работало ни быстрее или безглючнее. Все было одинаково. Я не только пользовал приложения но сам писал их. Так что все было одинаково. Повторюсь огромный плюс был именно в том что в случае падения винд системы (а падала она часто) скорость перезапуска играло большую роль, так же как и то что усе другое продолжало работать (я про саму полуось).
Чего-то вспомнилась работа с дискетами, в то время если бы работать только под виндой приходилось медитировать, а так этой частью благополучно занималась полуось не мешая продолжать работу.

anc ★★★★★
()
Ответ на: комментарий от Reset

Если это не фейк, то можно забивать последний гвоздь в крышку гроба десктопного линукса.

Не нужно. Десктопный линукс умер еще при рождении.

anonymous
()

Наконец то можно будет юзать rake под виндой

Kartas39
()

Лучше скажите, будет ли под ним работать glibc или там эмуляция только ядра.

anonymous
()
Ответ на: комментарий от anc

Сходу можно вспомнить вывод на экран (в полуоси был чуть ли не double buffer), работу с последовательным портом, отсутствие глюка с прокруткой то-ли в комбобоксе, то-ли в самом листбоксе, вывод видео раза в 2 быстрей работал и ещё куча мелочей, которые в WinAPI полуоси были сделаны лучше чем в винде.

Stanson ★★★★★
()
Ответ на: комментарий от anonymous

Десктопный линукс умер еще при рождении.

Из трупа поднимался зомби когда винда была малоюзабельна.

mandala ★★★★★
()
Ответ на: комментарий от anonymous

Лучше скажите, будет ли под ним работать glibc

Конечно.

tailgunner ★★★★★
()
Ответ на: комментарий от MKuznetsov

зачем писать 2 варианта, если вызовы linux/posix обеспечиваются в win

Что-то я не понял зачем вендоразрабы станут вдруг использовать вызовы posix. А большинство больших линуховых проектов и сейчас под винду есть.

alozovskoy ★★★★★
()
Ответ на: комментарий от annulen

Базовая поддержка POSIX в винде существует очень давно и никуда не девалась, но ее возможности очень ограничены.

Про поддержку POSIX в NT 3-4 кто-то говорил, что её ровно столько, чтобы соответствовать каким-то древним госстандартам и иметь право получать госзаказы. А для реальной работы нужен настоящий Юникс или хотя бы Cygwin.

question4 ★★★★★
()
Ответ на: комментарий от anonymous

А даже если бы и были, что там запускать?

В своё время у меня такая задача возникла. Нужно было запустить какую-то коммерческую программу, порт не то с Соляриса, не то с IRIX. Посмотрев на то полудохлое решение и на Cooperative Linux (совсем про него забыл), решил осваивать линукс на реальном железе.

question4 ★★★★★
()
Последнее исправление: question4 (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.