https://habrahabr.ru/post/280560/- Системное программирование
- Разработка под Windows
- *nix
Сегодня на конференции
Build компания Microsoft расскажет о последних нововведениях, которые сделаны в новом билде Windows 10 Redstone. Незадолго до презентации стало известно, что на конференцию приглашены сотрудники Canonical, и этому есть веская причина.
Дело в том, что Microsoft совместно с Canonical сумели интегрировать операционную систему Ubuntu внутрь Windows 10 (что-то вроде эмулятора). Дастин Кирклэнд, сотрудник группы Ubuntu Product and Strategy, рассказал на конференции об этом проекте (
видеозапись), а ещё раньше в своём блоге выложил
несколько спойлеров.
«Это немного странно для меня, — пишет Дастин, — потому что я не использовал Windows уже около 16 лет. Но всё изменилось пару месяцев назад, когда погрузился в сверхсекретный (и абсолютно невероятный) проект между Microsoft и Canonical, который анонсировал сегодня во вступительной речи
Кевин Галло».
Итак, в новом билде Windows 10 пространство пользователя Ubuntu и оболочка bash работают нативно в консоли cmd.exe!
Работает это следующим образом.
- Пользователь Windows 10
- Открывает меню «Пуск»
- Набирает там "bash" [enter]
- После чего открывается консоль cmd.exe
- С запущенным /bin/bash от Ubuntu
- С полным доступом ко всему пространству пользователя Ubuntu
- Да, там есть apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch...
- И большинство из десятков тысяч бинарных пакетов в архивах Ubuntu!
Дастин Кирклэнд говорит, что это не виртуальная машина, никаких контейнеров и не Cygwin, а нечто похожее на эмулятор, где системные вызовы Linux в реальном времени транслируются в системные вызовы Windows. Сейчас в Windows 10 используется Ubuntu 14.04 LTS.
Microsoft называет это "Windows Subsystem for Linux" (исходный код пока закрыт).
Трансляция вызовов очень эффективная: утилита
sysbench показывает почти одинаковую производительность CPU, памяти и операций ввода/вывода.
Все логические диски, вроде C:, монтируются для чтения и записи в директории /mnt, то есть /mnt/c, /mnt/d и т.д. И наоборот, файловая система Ubuntu доступна через «Проводник» в C:\Users\Kirkland\AppData\Local\Lxss\rootfs\.
Из «подсистемы Linux» нормально запускается ssh.
Конечно, пока есть некоторые глюки, особенно с tty и vt100. Не очень хорошо работают
byobu,
screen и
tmux. Но всё равно Microsoft и Canonical проделали огромную работу, что такое вообще стало возможным.