Viatcheslav (viatcheslav) wrote,
Viatcheslav
viatcheslav

Microsoft подтвердила слухи об интеграции подсистемы Linux в Windows 10

Не так давно на хабре писали о присутствии специальных системных файлов с названиями LXss.sys и LXCore.sys в новейшем билде Windows 10, который используется разработчиками программ и драйверов, а также тестировщиками в служебных целях. В драйверах содержался код разбора заголовков ELF-файлов, а также прочие системные функции, характерные для Linux и отсутствующие в Windows NT by design. Уже тогда стало очевидно, что Microsoft собирается всерьез заняться интеграцией подсистемы Linux в Windows 10.

windows


У компании уже имелся подобный опыт. Оригинальная концепция Windows NT (на которой основана Windows 10) подразумевала присутствие там трех подсистем: родной MS Win32, UNIX POSIX, а также IBM OS/2. Обе последние подсистемы отвалились где-то по дороге, которая вела к превращению Windows 2000 в Windows XP, а сама POSIX перекочевала в отдельный инструмент без возможности присутствия в дистрибутиве Windows по умолчанию. То же касается микропроцессорной архитектуры Alpha, от поддержки которой Microsoft также отказалась с выходом Windows XP. Остается только гадать, сколько продержится в Windows подсистема Linux.

Стоит отметить, что во-первых, архитектура ядра Windows 10, как и прочих версий Windows NT, подразумевает под собой интеграцию других ОС, хотя бы на уровне поддержки запуска там приложений с возможностью реализации соответствующих системных вызовов с правильной семантикой. Для этого был введен вспомогательный уровень подсистем, который в случае с Win32 называется NT layer (ntdll). Прочие библиотеки подсистем также имели доступ к ядру и могли воспроизводить то поведение системных вызовов, которое было нужно конкретной подсистеме (например, fork в POSIX, которая выполняла ветвление процессов).

Во-вторых, концепции Windows NT и Linux во многом похожи: обе основаны на монолитном ядре, разбитом на подсистемы, обе используют схожие механизмы реализации объектов ядра и межпроцессного взаимодействия, а также обе берут свои истоки у концепции ядра оригинальной UNIX.

Нам сложно сказать, что именно подвигло Microsoft на интеграцию в Windows 10 второй подсистемы, однако, как и в прочих случаях компания подошла к этому весьма основательно, не опираясь на какие-либо подходы псевдо-эмуляции или виртуальных машин. Все вышеперечисленные подсистемы разрабатывались исключительно как native и имели схожие с Win32 полномочия в реализации функций собственных подсистем.

И так, по сути. Анонс новой подсистемы состоялся на известной конференции Microsoft под названием Build 2016, на которой анонсируются программные новинки компании. Было заявлено, что в будущей версии Windows 10 пользователи смогут пользоваться услугами командного интерпретатора Linux, известного как bash, что в свою очередь сразу указывает на присутствие в Windows загрузчика исполняемых ELF-файлов, а также среды (подсистемы) для их исполнения и стандартных инструментов типа ssh, grep, sed, и awk. В качестве эталона была выбрана Ubuntu Linux.

Рис. Слайд презентации «Linux on Windows». На слайде указано, что речь идет именно о полноценной подсистеме Linux, а не о псевдо-эмуляции или виртуальных машинах. Да, Linux становится частью Windows 10 и так же как POSIX и OS/2 будет работать в пользовательском режиме с реализацией семантики системных вызовов на уровне ядра.

windows

Рис. Собственно архитектура или все то, что мы говорили выше, плюс специальная поддержка семантики системных вызовов Linux на уровне ядра, за что и отвечают два драйвера, указанных в самом начале.

windows

Рис. Так как Linux становится полноценной подсистемой и частью Windows, ее командный интерпретатор можно вызвать через оболочку Windows Shell или же командный интерпретатор, как и показано на слайде.

windows

Рис. 3. Демонстрация работы известной UNIX-команды ls для вывода списка содержимого директории.

windows

Рис. 4. Утилита readelf для анализа заголовка ELF-файла в действии.

windows

Рис. 5. Компилятор исполняемых файлов gcc.

windows

Рис. Есть над чем поработать. :)

windows

Полное видео демонстрации работы подсистемы Linux на Windows можно посмотреть здесь. http://www.theverge.com/2016/3/30/11331014/microsoft-windows-linux-ubuntu-bash



Что можно добавить, прошло много лет, но мало что изменилось:
бесполезная приложение

Однако, на сей раз windows избрал новую тактику - "если не можешь победить - возглавь"
Tags: it, linux, windows, технологии
Subscribe

Recent Posts from This Journal

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 2 comments