А вот это было бы очень интересно. Сейчас на UMS9117 (unisoc T117) doom запускают, но это вместо ОС: https://github.com/ilyakurdyukov/fpdoom А нём уже весьма интересные железки - как телефоны с повербанками и wifi, так и раскладушки с 320x240 - из него можно было бы сделать хорошую альтернативу смартфонным обрубкам. Только вот я не понял, можно ли на UMS9117 залить патченную прошивку, или проверка подписи не даст
Я лично блокнот использовал для редактирования текстовых конфигов и кода. Для редактирования markdown же есть другие инструменты, как WYSIWYG, так и с live-предпросмотром. В windows для WYSIWYG есть write.exe/wordpad.exe Если бы взяли обычный NTшный диспетчер задач и добавили туда поиск - это действительно лучшее, что бы с ним могло случиться. Но вместо этого NTшный диспетчер заменили на bloatware, запускающийся несколько секунд. Диспетчер задач это тот компонент, который должен работать быстро, когда система помирает от недостатка ресурсов. В 9.x был весьма неплохой диспетчер задач, не требующий создания процесса вообще - само ядро его рисовало. В nt уже создали процесс, но он всё же достаточно лёгкий и на тот момент для семейства NT расчитанный на сервера и рабочие станции мощнее среднего это было допустимым. Однако XP всё равно его медленно запускал. Я бы добавил помимо этого NTшного (или тем более современного свистопердящего) диспетчера компонент старого диспетчера задач (без значков, но можно и с поиском) в окно winlogon/logonui: он всегда присутствует в памяти и отображается в отдельном сеансе по ctrl+alt+del - вот что бы не рисовать диспетчер задач там. К тому же это бы положило конец всяким винлокерам, не дающим в диспетчер задач попасть. Microsoft же вместо этого сделали что по ctrl+alt+del отображается окно винлогона, но кнопка диспетчера возвращает назад в сеанс. Довольно странное решение конечно, хорошо что есть ctrl+shift+escape, запускающий его сразу без винлогона. Опять же, нет ничего плохого в том, что диспетчер задач умеет много всего. Плохо то, что он жрёт много ресурсов
У них же был write/wordpad для rtf. Причём по фичам даже чуть больше, чем может markdown. Запилили бы туда markdown режим. Или в отдельную программу Но нет же, надо было обязательно просрать блокнот...
Слов нет. Программа, главной и единственной фичей/задачей было редактировать текст и больше ничего. Ничего лишнего. Как хорошо, что я давно не пользуюсь windows и лишь со стороны наблюдаю этот кошмар. Впрочем, после того, что они сотворили с диспетчером задач - ничего удивительного, NT 5.x (2000/XP) была последней windows NT и последней адекватной windows, дальше всё пошло вразнос...
Что в linux в терминале, что в windows в мессажбоксе обычно видно, какой зависимости не хватает. Да, отсутствие мессажбокса при запуске ярлыка в linux это отдельная давняя проблема и никто её не пытается решить. А вот в случае с дотнетом тут одновременно сработало несколько багов (ещё раз отмечу, что под wine после нажатия кнопки ok открывается браузер со ссылкой на нужный дотнет, но под windows это сломано) Первый баг: если установлен хоть какой-то dotnet sdk - мессажбокс не появляется. Может microsoft предполагали, что если пользователь уже установил sdk, ему не нужен мессажбокс и он сам посмотрит что это за ассембли и поставит? Но на деле конечно же sdk обычно поставлен кем-то автоматически и пользователь о нём не в курсе. Второй баг - когда мессажбокс появляется, но кнопка ок ничего не делает. Видимо, воимя какой-то безопасности windows блокирует открытие браузера. Или это из-за политики принудительного навязвания microsoft edge пользователю. В любом случае, это происходит на чистой windows, подключённой к домену. На windows без домена не проверял - но тут проблема очевидна, разрабочтки винды не согласовали свои же продукты между собой, сам по себе браузер на этой windows работает. На самом деле если бы мессажбокс указывал требуемую версию - проблема была бы несущественна. Но он пишет просто мол установите дотнет, а этих дотнетов уже пруд пруди. Да, наверно с aot ситуация была бы лучше, но когда проблема для меня была актуально .net7 ещё только появился и код писался под 5 и 6. Так же .net7 вроде как (если я не ошибаюсь) установлен в windows 11 по дефолту и всё выше шансы, что он будет уже установлен в системе даже на десятке Касательно же отдельного лончера - может это и решение, но у лончера тоже есть какие-то зависимост и если я пишу на кроссплатформенном дотнете, то мне не хотелось бы обвязвать его платформенными лончерами. Так или иначе, в exe файле, запускающем дотнет уже есть механизм, показывающий этот мессажбокс и открывающий браузер. Просто оно не работает из-за вышеописанных багов
Обычно такой софт приходится таскать вместе с рантаймом. Исключение - какой нибудь старый dotnet 4 или ниже. Пробуешь запустить софт, собранный 5, 6, 7 дотнетом на десятке, что происходит? Ну тут несколько вариантов. Первый - вообще ничего. На запуск exe никак не реагирует. Второй - появляется мессажбокс, мол надо установить дотнет с кнопкой ok, которая ничего не делает. Даже версию дотнета не пишет. Под wine почему-то эта кнопка ok запускает браузер со ссылкой на нужный дотнет, но под десяткой ничего не происходит. Вот и приходится вместо 100кб приложения делать 100мб self-contained.
C windows XP-vista всё было легко решить заранее, в установщике windows (через shift+f10) сохранив профиль оборудования ещё до того, как все эти драйвера поставились. Тогда при переезде на другую машину достаточно было выбратть этот сохранённый профиль. Если у системы несовместимый процессор - ещё добавить опцию загрузки нужного варианта ntoskrnl. В windows 7 всё это поломали - теперь профилей оборудования нет. Это кстати для меня была основная причина ухода с windows - в XP я прекрасно мог использовать одну инсталляцию на нескольких разных ситемах (в том числе виртуалке), в семёрке это перестало работать. Десятка конечно грузится на разных конфигурациях - но со скрипом. К сожалению ей нельзя подсказать мол это другое железо и грузи другой профиль - она будет весь его перелопачивать. В линуксах хоть штатного механизма что-то такое сделать нет, но можно установитть 2 разных ядра под разные конфигурации и в инитскриптах сколхозить проверку по cmdline, меня енвы в зависимости от того, какое из ядер загружено, таким образом, например, выбрав использование mesa или блоба nvidia.
Собирать со старой версией - тоже не панацея. Линкуясь к символами старых- версий glibc ты получаешь неэффективные/небезопасные bug compatible реализации. Где-то может всплыть ASLR bypass, где-то просто очень тормозной вариант функции. В бородатых glibc memcpy делал memmove вообще. Есть конечно ещё способ - перед линковкой снести из glibc версии тех символов, для которых нужна актуальная реализация. То есть взять какой-нибудь 2.13 и снести версии с memcpy, математических функций и libc_start_main - тогда по идее будет одновременно и совсестимый со всем бинарь и при этом ему будут доступны все современные функции. Но такое может легко сломаться. Ещё на что стоит обратить внимание при сборки portable бинарей - то, как сделан android ndk. Там вместо настоящих библиотек лежат специальные заглушки, которые линкуют правильные версии символов. Возможно основная проблема даже не в том, что влинковываются последние версии символов, а в том, что в линуксе софт линкуется к системной glibc. В то время в других ОС есть специальные тулчейны с платформами, таргетирующие определённую версию ОС и дающие гарантии совместимости. В windows вообще линковка идёт не к dll, а к специальным либархивам с thunk'ами - если софт собран с windows7 sdk в режиме совместимости с XP - он и будет бинарно совместим с XP, даже если линковался на windows 11
К сожалению, ленивые разрабы решили его не проходить, вместо этого пихая каждое приложение в контейнер. В принципе такой подход сейчас везде популярен - магазины приложений во всех ОС делают песочницы, но в линуксе эта песочница сделана с максимальным оверхедом. У меня один вопрос к флетпаку - почему они не решили поднимать kvm виртуалку со своим ядром под каждое приложение для полной изоляциии
В основном конечно ломается софт из эпохи до-sse, когда требование к выравниванию стека было 4 байта. Ещё были проблемы с 32битным файл-оффсетом. Насколько я помню, это уже нормально не работает:
Snap/Flatpak только загоняют проблемы дальше и последние версии glibc уже настолько забыли о совместимости, что именно на glibc последних нескольких лет стали ломаться многие старые игры. Другая проблема - что нельзя несколько libc использовать одновременно - такое вполне работает на windows, который спокойно грузит в процесс несколько версий msvcrt/ucrt и они не дерутся между собой, но в linux это всегда проблема т.к символ не привязан к модулю и даже если несколько libc загрузятся, то символы будут использоваться от одной
нет, главное тут не цена. Доступные устройства уже были и есть в виде quest 2, но жутко огороженные... И главное, даже за большие деньги нельзя купить автономный девайс, не привязанный к сервису и с разлоченным загрузчиком. Qualcomm жутко печётся о своих устройствах как бы кто их не рутанул, в итоге консоль взломать проще, чем шлем.
Что сейчас имеем:
Quest, который не работает без аккаунта и может разлогиниться в любой момент, превращаясь в кирпич без доступа к серверам, да ещё и прошивку обновляет без ведома пользователя Китайцы (Pico), которые на новых прошивках без доступа к серверам не дают даже установить приложение, а на старых не поддерживают новую переферию (трекеры) B2B сегмент, который стоит кучу денег и имеет худшие характеристики, да и наверняка с привязкой к их бизнес-сервисам.
Единственный XR2 не нарушающий приватность, без блокировки загрузчика - Lynx R1, но их выпущены единицы, проект фактически провалился, а характеристики уровня 2020 года в 2025. Есть ещё всякие девкиты, но их сложно раздобыть и там не будет даже openxr. Если появятся шлемы дешевле - это никак не повлияет на ситуацию. Появятся ли шлемы, меньше завязанные на сервисы? Посмотрим, но что-то мне кажется, что никому из производителей этого не надо
Мой пока живой. Они как-то выборочно отключают. Скорее всего там не адреса отвалились, а сама виртуалка, либо что-то легло из-за того что ipv4 с самой виртуалки недоступен. В этом плане dns64/nat64 пока помогает - работает в качестве socks proxy т.к что-то серьёзнее держать на сервере, который может в любой момент сдохнуть навсегда не хочется
А вот это было бы очень интересно.
Сейчас на UMS9117 (unisoc T117) doom запускают, но это вместо ОС:
https://github.com/ilyakurdyukov/fpdoom
А нём уже весьма интересные железки - как телефоны с повербанками и wifi, так и раскладушки с 320x240 - из него можно было бы сделать хорошую альтернативу смартфонным обрубкам. Только вот я не понял, можно ли на UMS9117 залить патченную прошивку, или проверка подписи не даст
ужас какой-то
Я лично блокнот использовал для редактирования текстовых конфигов и кода.
Для редактирования markdown же есть другие инструменты, как WYSIWYG, так и с live-предпросмотром.
В windows для WYSIWYG есть write.exe/wordpad.exe
Если бы взяли обычный NTшный диспетчер задач и добавили туда поиск - это действительно лучшее, что бы с ним могло случиться. Но вместо этого NTшный диспетчер заменили на bloatware, запускающийся несколько секунд.
Диспетчер задач это тот компонент, который должен работать быстро, когда система помирает от недостатка ресурсов. В 9.x был весьма неплохой диспетчер задач, не требующий создания процесса вообще - само ядро его рисовало. В nt уже создали процесс, но он всё же достаточно лёгкий и на тот момент для семейства NT расчитанный на сервера и рабочие станции мощнее среднего это было допустимым. Однако XP всё равно его медленно запускал.
Я бы добавил помимо этого NTшного (или тем более современного свистопердящего) диспетчера компонент старого диспетчера задач (без значков, но можно и с поиском) в окно winlogon/logonui: он всегда присутствует в памяти и отображается в отдельном сеансе по ctrl+alt+del - вот что бы не рисовать диспетчер задач там. К тому же это бы положило конец всяким винлокерам, не дающим в диспетчер задач попасть.
Microsoft же вместо этого сделали что по ctrl+alt+del отображается окно винлогона, но кнопка диспетчера возвращает назад в сеанс. Довольно странное решение конечно, хорошо что есть ctrl+shift+escape, запускающий его сразу без винлогона.
Опять же, нет ничего плохого в том, что диспетчер задач умеет много всего. Плохо то, что он жрёт много ресурсов
У них же был write/wordpad для rtf. Причём по фичам даже чуть больше, чем может markdown. Запилили бы туда markdown режим. Или в отдельную программу
Но нет же, надо было обязательно просрать блокнот...
Слов нет. Программа, главной и единственной фичей/задачей было редактировать текст и больше ничего. Ничего лишнего.
Как хорошо, что я давно не пользуюсь windows и лишь со стороны наблюдаю этот кошмар.
Впрочем, после того, что они сотворили с диспетчером задач - ничего удивительного,
NT 5.x (2000/XP) была последней windows NT и последней адекватной windows, дальше всё пошло вразнос...
Что в linux в терминале, что в windows в мессажбоксе обычно видно, какой зависимости не хватает. Да, отсутствие мессажбокса при запуске ярлыка в linux это отдельная давняя проблема и никто её не пытается решить.
А вот в случае с дотнетом тут одновременно сработало несколько багов (ещё раз отмечу, что под wine после нажатия кнопки ok открывается браузер со ссылкой на нужный дотнет, но под windows это сломано)
Первый баг: если установлен хоть какой-то dotnet sdk - мессажбокс не появляется. Может microsoft предполагали, что если пользователь уже установил sdk, ему не нужен мессажбокс и он сам посмотрит что это за ассембли и поставит? Но на деле конечно же sdk обычно поставлен кем-то автоматически и пользователь о нём не в курсе.
Второй баг - когда мессажбокс появляется, но кнопка ок ничего не делает. Видимо, воимя какой-то безопасности windows блокирует открытие браузера. Или это из-за политики принудительного навязвания microsoft edge пользователю. В любом случае, это происходит на чистой windows, подключённой к домену. На windows без домена не проверял - но тут проблема очевидна, разрабочтки винды не согласовали свои же продукты между собой, сам по себе браузер на этой windows работает.
На самом деле если бы мессажбокс указывал требуемую версию - проблема была бы несущественна. Но он пишет просто мол установите дотнет, а этих дотнетов уже пруд пруди.
Да, наверно с aot ситуация была бы лучше, но когда проблема для меня была актуально .net7 ещё только появился и код писался под 5 и 6. Так же .net7 вроде как (если я не ошибаюсь) установлен в windows 11 по дефолту и всё выше шансы, что он будет уже установлен в системе даже на десятке
Касательно же отдельного лончера - может это и решение, но у лончера тоже есть какие-то зависимост и если я пишу на кроссплатформенном дотнете, то мне не хотелось бы обвязвать его платформенными лончерами. Так или иначе, в exe файле, запускающем дотнет уже есть механизм, показывающий этот мессажбокс и открывающий браузер. Просто оно не работает из-за вышеописанных багов
Обычно такой софт приходится таскать вместе с рантаймом. Исключение - какой нибудь старый dotnet 4 или ниже.
Пробуешь запустить софт, собранный 5, 6, 7 дотнетом на десятке, что происходит?
Ну тут несколько вариантов. Первый - вообще ничего. На запуск exe никак не реагирует.
Второй - появляется мессажбокс, мол надо установить дотнет с кнопкой ok, которая ничего не делает. Даже версию дотнета не пишет. Под wine почему-то эта кнопка ok запускает браузер со ссылкой на нужный дотнет, но под десяткой ничего не происходит.
Вот и приходится вместо 100кб приложения делать 100мб self-contained.
обычно там не сетевой адаптер, а serial порт. К тому же откуда у диска доступ к СМС?
Зато до семёрки можно было сделать 2 профиля оборудования, для которых были полностью разные множества драйверов
C windows XP-vista всё было легко решить заранее, в установщике windows (через shift+f10) сохранив профиль оборудования ещё до того, как все эти драйвера поставились.
Тогда при переезде на другую машину достаточно было выбратть этот сохранённый профиль. Если у системы несовместимый процессор - ещё добавить опцию загрузки нужного варианта ntoskrnl.
В windows 7 всё это поломали - теперь профилей оборудования нет. Это кстати для меня была основная причина ухода с windows - в XP я прекрасно мог использовать одну инсталляцию на нескольких разных ситемах (в том числе виртуалке), в семёрке это перестало работать. Десятка конечно грузится на разных конфигурациях - но со скрипом. К сожалению ей нельзя подсказать мол это другое железо и грузи другой профиль - она будет весь его перелопачивать.
В линуксах хоть штатного механизма что-то такое сделать нет, но можно установитть 2 разных ядра под разные конфигурации и в инитскриптах сколхозить проверку по cmdline, меня енвы в зависимости от того, какое из ядер загружено, таким образом, например, выбрав использование mesa или блоба nvidia.
Собирать со старой версией - тоже не панацея. Линкуясь к символами старых- версий glibc ты получаешь неэффективные/небезопасные bug compatible реализации. Где-то может всплыть ASLR bypass, где-то просто очень тормозной вариант функции.
В бородатых glibc memcpy делал memmove вообще. Есть конечно ещё способ - перед линковкой снести из glibc версии тех символов, для которых нужна актуальная реализация. То есть взять какой-нибудь 2.13 и снести версии с memcpy, математических функций и libc_start_main - тогда по идее будет одновременно и совсестимый со всем бинарь и при этом ему будут доступны все современные функции.
Но такое может легко сломаться.
Ещё на что стоит обратить внимание при сборки portable бинарей - то, как сделан android ndk.
Там вместо настоящих библиотек лежат специальные заглушки, которые линкуют правильные версии символов. Возможно основная проблема даже не в том, что влинковываются последние версии символов, а в том, что в линуксе софт линкуется к системной glibc. В то время в других ОС есть специальные тулчейны с платформами, таргетирующие определённую версию ОС и дающие гарантии совместимости. В windows вообще линковка идёт не к dll, а к специальным либархивам с thunk'ами - если софт собран с windows7 sdk в режиме совместимости с XP - он и будет бинарно совместим с XP, даже если линковался на windows 11
К сожалению, ленивые разрабы решили его не проходить, вместо этого пихая каждое приложение в контейнер. В принципе такой подход сейчас везде популярен - магазины приложений во всех ОС делают песочницы, но в линуксе эта песочница сделана с максимальным оверхедом. У меня один вопрос к флетпаку - почему они не решили поднимать kvm виртуалку со своим ядром под каждое приложение для полной изоляциии
В основном конечно ломается софт из эпохи до-sse, когда требование к выравниванию стека было 4 байта. Ещё были проблемы с 32битным файл-оффсетом.
Насколько я помню, это уже нормально не работает:
https://habr.com/ru/articles/91986/
Предложенное решение очень похоже на то, что я неоднократно озвучивал на ЛОРе: https://www.linux.org.ru/articles/development/17183665?cid=17185690
Snap/Flatpak только загоняют проблемы дальше и последние версии glibc уже настолько забыли о совместимости, что именно на glibc последних нескольких лет стали ломаться многие старые игры.
Другая проблема - что нельзя несколько libc использовать одновременно - такое вполне работает на windows, который спокойно грузит в процесс несколько версий msvcrt/ucrt и они не дерутся между собой, но в linux это всегда проблема т.к символ не привязан к модулю и даже если несколько libc загрузятся, то символы будут использоваться от одной
нет, главное тут не цена. Доступные устройства уже были и есть в виде quest 2, но жутко огороженные...
И главное, даже за большие деньги нельзя купить автономный девайс, не привязанный к сервису и с разлоченным загрузчиком. Qualcomm жутко печётся о своих устройствах как бы кто их не рутанул, в итоге консоль взломать проще, чем шлем.
Что сейчас имеем:
Quest, который не работает без аккаунта и может разлогиниться в любой момент, превращаясь в кирпич без доступа к серверам, да ещё и прошивку обновляет без ведома пользователя
Китайцы (Pico), которые на новых прошивках без доступа к серверам не дают даже установить приложение, а на старых не поддерживают новую переферию (трекеры)
B2B сегмент, который стоит кучу денег и имеет худшие характеристики, да и наверняка с привязкой к их бизнес-сервисам.
Единственный XR2 не нарушающий приватность, без блокировки загрузчика - Lynx R1, но их выпущены единицы, проект фактически провалился, а характеристики уровня 2020 года в 2025. Есть ещё всякие девкиты, но их сложно раздобыть и там не будет даже openxr.
Если появятся шлемы дешевле - это никак не повлияет на ситуацию. Появятся ли шлемы, меньше завязанные на сервисы? Посмотрим, но что-то мне кажется, что никому из производителей этого не надо
oculus уже в принципе нет, а то, что его поглотило - конкурент google и вряд ли заинтересовано в технологии, которая должна быть как бы для всех
А может всё-таки не надо еду в инстаграм?
Мой пока живой. Они как-то выборочно отключают. Скорее всего там не адреса отвалились, а сама виртуалка, либо что-то легло из-за того что ipv4 с самой виртуалки недоступен. В этом плане dns64/nat64 пока помогает - работает в качестве socks proxy т.к что-то серьёзнее держать на сервере, который может в любой момент сдохнуть навсегда не хочется
Вероятно тем, что современные сигареты с некачественными сиропами вызывают у некоторых людей аллергическую реакцию?
У меня был настроен ipv6 адрес и он ещё работает. Как теперь без панели добавить ipv4 не знаю