All streams
Search
Write a publication
Pull to refresh
-5
0
habr is dead. @yleo

/dev/null

Send message

Советую устроиться в M$, поможете им быстрее отмучиться ;)

Если многократно натягивать технологии на бизнес, то либо бизнес сожмется, либо технологии лопнут — M$ с Windows демонстрирует оба варианта.


А безумство+отвага с clone/fork в M$ будут помнить еще долго, от того и "планы у бизнеса поменялись" ;)


Как говорится нормальные герои всегда идут в обход ;)

Если знать тему (подробности соответствующих системных вызовов в POSIX и ограничения ядра Windows), либо хорошо вникнуть, то это будет очевидно как 2+2. Иначе говоря, "пруфы" сводятся к поиску и сопоставлению фрагментов соответствующих RTFM. Но готовых ссылок на подобные пояснения у меня нет.


Если совсем кратко, то в спецификации NT и Win32 API, по принципу "назло бабушке уши отморожу", намерено закладывалось максимум отличий от POSIX. Некоторые отличия таковы, что их невозможно совместить при работе с одним объектом (файлом).


Даже если (вдруг, невзирая на риск регрессов, на сложность и объем доработок) M$ реализует в ядре обе семантики/спецификации, то файл открытый в Win32 уже нельзя будет открыть в xWSL, и наоборот. А вишенкой на торте будет производительность — т.е. файловые операции Linux будут работать с черепашьей скоростью NTFS и т.д.

Местами статья выглядит как ода технологиями Windows, большинство из которых никогда не тянули на пафос "подвиг архитектурной мысли и реальной программной разработки" (посмешило, конечно).
Посему ниже несколько колких уточнений.


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

Не в каком-то, а в прямом смысле — провал относительно исходных целей.
Причем специалистам это было более-менее понятно сразу (NTFS проще выкинуть чем ускорить, а некоторые вещи невозможно совместить принципиально). WSL1 не может (и не сможет) обеспечить весь функционал Linux из-за фундаментальных ограничений ядра NT. Какие-то вещи (например clone/fork) были реализованы, но многое не возможно (уменьшение mmap-секций, блокировка файлов и т.д.).


сначала взглянем на WSL 1, и первым делом — на её странное название. Почему эта функция называется подсистемой Windows… для Linux?

Потому-что такова конечная цель (WSL3). Тут стоит отметить что поверх ядра Linux точно возможно реализовать NT API (aka Native API), обеспечить работу подсистемы Win32, работу USB и NDIS-драйверов, и даже части других нативных драйверов. Но неизбежно "отвалятся" драйверы дисков, все завязанное на внутренний кошмар NTFS и внутренности win32.sys, с массой неизбежных регрессов из-за нарушения совместимости (в том числе и ожидаемыми Windows-багами). Поэтому интеграция на уровне виртуализации (WSL2) выглядит разумным переходным решением.


Windows NT разработана с нуля для поддержки процессов, запущенных из множества операционных систем, а Win32 был «просто» одной из этих подсистем окружения.

Это было ~30 лет назад в эпоху Windows NT 3.51. Начиная с Windows NT 4.0 подсистема Win32 потекла в ядро, а начиная с Windows 2000 ядро NT стало уродливым мутантом — уже менее гибким, потенциально уязвимым и небезопасным, но еще не быстрым. Буквально к исходной NT-архитектуре (далеко не идеальной, но более-менее строгой) Win32-говно прибили палками.


Стоит отметить, что 20-30 лет назад модульность ядра NT (деление на подсистемы со стабильными API, стабильный API для драйверов, идеи IRP-стека для интеграции драйверов и даже NDIS) выглядели очень здравыми и перспективными. Но на деле всё это постепенно стало профанацией и маркетинговым трепом. Де-факто воплощение идей обернулось кошмаром:


  • подсистемы не изолированы, а сплетены в клубок, взаимосвязанность зашкаливает, их невозможно развивать, заменять и/или использовать по-отдельности.
  • актуальная стабильность ядерных API и ABI не гарантирует совместимости между версиями даже на уровне исходного кода драйверов.
  • комбинаторная сложность не позволяет проверять релизы (корень эпических сбоев после обновлений) из-за огромного зоопарка версий драйверов у пользователей, исходный код которых вне какого-либо централизованного контроля и code review.

Тут напрашивается премия Дарвина, а не эпитеты типа "подвиг архитектурной мысли и реальной программной разработки" ;)

А там разве какие-то специалисты показали что-то конкретное или (опять, как всегда) только слова?
Хотелось-бы хоть раз, хоть одним глазком, увидеть критерии и/или логические выводы по которым делается отсылка к "помощи государства" и к России в частности.


Но китайцы действительно пару раз были молодцы: раздели/одели, удалили гланды и теперь по-желаю показательно пасут црушников ;)

Не хотелось чтобы вы воспринимали мой комментарий негативно.


Напротив, я считаю обязательно необходимым уметь самостоятельно разрабатывать и собирать "велосипеды". Но при этом не менее важно пользоваться крестовой отверткой для шурупов, а не только забивать их самодельными молотками.


Поэтому, искренне советую повторить решение используя связку re2c + lemon и озвучить впечатление в продолжении этой статьи.

В ногу со временем, в ногу стрелять вовремя!

Ну конечно, а если чуть усложнить:


  • если вселенная бесконечна, то сможем ли мы всегда найти соответствие между двумерным срезом её некой функциональной проекции и некой произвольной плоской картинкой?
  • а если конечна?
  • а если с выполнением ОТО (время всегда "не моментально" и не локально)?
  • а если картина в кубитах и картинка не-монохромная (но с плоской геометрией)?
  • ну хорошо, а если картинка не плоская, то до скольки измерений найдем?

С меня "пиво" за каждый верный ответ при встрече.

Если уж пишите, то перепроверяйте и будьте точны, включая детали и картинки.
Иначе кроме википедии появиться еще один слой узаконивания ошибок (преимущественно исторических).

"Пучина эксплуатации" (на КДПВ) — ну, прям Хорошо, ободряю!

Камрады, начинание хорошее, но пожалуйста сорожнее.
Одно дело, когда отучившиеся ничего сломать не могут — это хорошо.
Но плохо когда они собираются что-то защищать и с полной уверенностью дают гарантии недопонимающим админам и руководителям, а после еще и переходят на реально ответственные позиции.

Вот теперь возьмите re2c + lemon, повторите и покайтесь ;)

bash вполне даже интуитивный.

Ага, особенно присвоение в массивах ;)

Хм, зачем тут кошмар ASN.1?
Точнее WTF?

Кек.
Эти спалились раз 10 и еще почти год назад дали денег на открытие новых )

Александр, есть ещё "нюансы". Рекомендую покопаться в аналогичной по тематике правоприменительной практике США (да, нужно постараться) и после этого обратить внимание на исключения позволяемые/налагаемые другими законами (особенно для не-граждан США).


Вам должно зайти ;)
Проходил мимо, дискутировать не буду (ибо RTFM)

Примерно да, этот "прорыв" от McAfee ради хайпа, ибо сливают.

Достаточно использовать хорошие системы распознавания. Например, Белорусские.

Information

Rating
Does not participate
Location
Севастополь, Республика Крым, Россия
Date of birth
Registered
Activity