Andy Melnikov (nponeccop) wrote,
Andy Melnikov
nponeccop

Category:

NT kernel subsystem binary compatible with Linux

Если кто не видел:

https://channel9.msdn.com/Events/Build/2016/P488

Вкратце: NT kernel теперь умеет исполнять неизменённые линуксовые бинарники в виндовом юзермоде (почти) - т.е. запилили интерфейс сисколлов (включая форк), загрузчик, запустили glibc взятый as-is из Убунты, ну а дальше дело техники. apt-get уже пашет.

Я прослезился, серьёзно.

Запилили они не с нуля - фича "исполнять хоть хуюникс хоть говноюникс" была заложена изначально, включая поддержку форка, но не осиливали. А теперь припекло - и "почти есть" Windows Server Nano, который в принципе без гуя чисто коммандлайновый, контейнеры, MSVC с фронтендом от clang (и соответственно полной поддержкой С++1х) и теперь вот совместимость с линуксовскими бинарями.

Фича была заложена, но никогда не юзалась. Хотя формально были подсистемы OS/2 и POSIX, а потом ещё улучшенный POSIX/Interix, оно было неюзабельно для ширнармасс. Хотя я подозреваю какой-нибудь кроваво-дремучий лигаси кто-то наверняка под этими шнягами пускал.

Более того, OS/2 быстро выпилили из-за смерти апстримовой OS/2 (ну и срача с IBM по оф. версии), а в ядро начали невероятно срать уже во времена NT4. Так как гуй в кристальном ядре NT3 (которое в дремучих 198х уже с юникодом и async io) тормозил, начали интенсивно в это ядро копипастить и по сути захардкодили большие куски Win32 в ядро. Чем убили последние надежды на то, что сияющая подсистема подсистем ещё на что-то годится.

Но оказалось, что жива, курилка! Interix был уже более-менее. Так что думаю делалось совсем не с нуля. Тем не менее надо было научиться грузить ELF и кучу всего остального придумать как сделать - /mnt/c выглядит достаточно вменяемо имхо. Хез как оно в интериксе было. Интересно будет прочитать сравнение 3-х итераций - дремучего позикса NT4, последних интериксов, и теперь вот Subsystem for Linux или как оно там.
Tags: до чего техника дошла
Subscribe

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    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.
  • 23 comments