Состоялся экспериментальный выпуск открытой реализации WinAPI - Wine 8.10. С момента выпуска версии 8.9 было закрыто 13 отчётов об ошибках и внесено 271 изменение...Подробнее: https://www.opennet.me/opennews/art.shtml?num=59272
Закрыты отчёты об ошибках, связанные с работой приложений: ..., Adobe Premiere Pro CS3под linoops теперь есть нормальный видеоредактор?
Так это древняя версия, она начиная с wine 4.0 работала.
ааа, вот оно что
Ты так ноешь, будто умеешь им пользоваться
что там уметь лол кек эщкере... кринжанул с микроэкзперда
Эта нейросеть ещё не проходит тест Тьюринга.
не могу оценить корректность этого высказывания, потому что т.н. "тест Тьюринга" еще не собран под целевую архитектуру "Байкал"
ЧИТД. Пока одни баги.
Нормальный, нативный видеоредактор есть давно и прекрасно работает:
Davinci Resolve.
Зачем вам Адобское поделие, да ещё под wine?
DaVinci Resolve — это приложение для цветокоррекции и нелинейного редактирования видео для macOSОно не про фото
>Adobe Premiere Pro CS3
>Premiere
utorrent не нужен. qbittorrent - самый топ
Ток не ной когда в очередной раз обнулится или похерит теги.
мда, не я один это заметил ?
Зачем они нужны? Может мне тоже надо.
А как еще порно искать в порнотеке? Только через теги и искать.
Когда обнулится что?
Вы им сколько раз пользовались?
Когда qBittorent обнулится. Что означает, "сколько"? Тысяч 200-300, не очень много, это второстепенный клиент всё же, для первичных организации данных и сортировки использовался. Но около 20 тысяч в списке и время, потраченное на категоризацию, потеряно в итоге. Или сколько раз запускался? Не больше 1000 раз, сложно сказать точнее. Время запуска около 1 часа, часто не позапускаешь.
>для первичных организации данных и сортировки использовалсяВаши стенания понятны, ведь баги — штука неприятная. Но эта программа создавалась не для того, для чего вы её используете.
Как минимум 1 раз это был не баг, это было штатное обновление, когда разработчики решили, что это будет хорошая идея -- обнулить. Просто эти разрабы особенно криворукие. Зачем тогда ещё теги нужны, если их нельзя использовать?
> Зачем тогда ещё теги нужны, если их нельзя использовать?Я не говорил «нельзя». Просто торрент-клиент это не каталогизатор, не так ли? Я могу с помощью ворда производить простейшее редактирование рисунков, но он не для этого создан.
А у мня эта гадюка qbittorrent удалила файлы с раздачи, и начала качать заново, после обновления какой то версии. И ещё удалял файлы скачанные другими торрент клиентами
Активно пользуюсь, люблю и всем рекомендую, но недавно случился неприятный казус. Слетели настройки, где я указал пускать трафик через интерфейс wireguard. Очень неприятно.
Или когда после переименования каталога в закачке вместо этого самого переименования создаст новый каталог с новым именем, перекинет туда непредсказуемую часть файлов, а остальные в старом оставит.
Transmission же.
Трансмиссия - это да. Единственная из всего испробованного, которая не могла стартовать закачку с полутора тысячами сидов и кучей пиров (какой-то линупc пытался скачать, уже не помню какой). Даже позорное глюкало, именуемое qbittorrent стартануло моментально и скачало минут за 10.
Может у меня и ложные воспоминания, но я не помню, чтобы uTorrent тормозил при штук 50 торрентах, в то время как qBittorrent заметно медленнее стартует, если его подзабить.
У меня qbittorent в районе часа стартовал, я не помню, чтобы какая-нибудь ещё программа так долго запускалась.
Сейчас кубит стартует моментально.А вот закрывается довольно медленно.
Хех, у меня 3к торрентов. Секунд 5 запускается, потом ещё секунд 30 запускает все торренты. Потом начинает обновлять все трекеры, это очень долго, но уже не вина торрент клиента.
На ссд? У меня всего в 6 раз больше было и до показа окна час шуршания дисками.
> На ссд? У меня всего в 6 раз больше было и до
> показа окна час шуршания дисками.Нет, хдд. Реально час? Даже сложно представить, чем он там может час шуршать. Если он перепроверял хеши, то это он вообще делает уже при открытом окне. Может с файловой системой что? У меня btrfs, монтируется долго, где-то секунд 30, но потом работает быстро... Час -- это что-то за гранью разумного.
Так это ты распространяешь пиратский контент?
смысл в том, что они фиксят что-то важное в самом вайне, а то что начнет работать какое-то УГ - вторично
>Закрыты отчёты об ошибках, связанные с работой приложений: MSN Messenger Live 2009,Чего?
Разработчики примиавшие участие в создании MSN Messenger запустили его на Wine.
Отдай дань уважению старикам. Скажи спасибо за счастливое детство.
спасибо разработчикам MSN Messenger за счастливое детство - в детстве я не знал об MSN Messenger
Аналогично. Я понятия не имел о существовании MSN Messenger. Спустя много лет я узнал что это такое. Никто из знакомых не пользовался этим. Моим первым мессенджером был ICQ как и у всех окружающих.
Ну не знаю, в своём chuldhood я использовал AOL
> MSN MessengerЭто такая же хрень как и антивирус McAffie. Всем он был принудительно установлен, но никто им не пользовался ;)
>Для трансляции всех обращений из PE-файлов в Unix-библиотеки задействован интерфейс системных вызовов.Я не понял, зачем это. Системных вызовов же стараются избегать. Почему нельзя просто прыгнуть в динамически загруженную библиотеку, зачем ядро привлекать?
Один из коммитов, где вызовы переводится на "сисколы"
win32u: Use syscall interface for all ntuser functions
https://gitlab.winehq.org/wine/wine/-/commit/0492108ae8367df...Работу с "сисколами" можно глянуть здесь https://gitlab.winehq.org/wine/wine/-/blob/wine-8.10/dlls/wo...
Вот это, как я понимаю, непосредственно вызов через таблицу:
/**********************************************************************
* Wow64SystemServiceEx (wow64.@)
*/
NTSTATUS WINAPI Wow64SystemServiceEx( UINT num, UINT *args )
{
NTSTATUS status;
UINT id = num & 0xfff;
const SYSTEM_SERVICE_TABLE *table = &syscall_tables[(num >> 12) & 3];if (id >= table->ServiceLimit || !table->ServiceTable[id])
{
ERR( "unsupported syscall %04x\n", num );
return STATUS_INVALID_SYSTEM_SERVICE;
}
__TRY
{
syscall_thunk thunk = (syscall_thunk)table->ServiceTable[id];
status = thunk( args );
}
__EXCEPT( syscall_filter )
{
status = GetExceptionCode();
}
__ENDTRY
free_temp_data();
return status;
}То есть в формулировке "All PE->Unix transitions go through the syscall interface" интерфейсом системных вызовов названа вот такая "эмуляция SSDT", в не вызов ядра через шлюз (что обычно называют сисколом).
Спасибо. Но опять, зачем? Выглядит, как будто такое медленнее, да ещё и процессору предсказание переходов портит.
Как я понимаю, для улучшения совместимости с выдернутыми пользователем/инсталлятором нативными библиотеками из винды. Ну и с приложениями, которые недокументированные функции дёргают.
Сискол в любом случае портит процессору предсказание переходов и тп, ибо там идёт сохранение регистров и переключение контекстов.
По первой ссылке видно -- была в каждом файле отдельная таблицаstatic struct unix_funcs unix_funcs =
{
- NtUserDrawCaptionTemp,
- NtUserDrawMenuBarTemp,
- NtUserEndPaint,
- NtUserExcludeUpdateRgn,
- NtUserReleaseDC,
- NtUserScrollDC,
- NtUserSelectPalette,
- NtUserUpdateLayeredWindow,и вызывался сервис (системная функция) вот так:
BOOL WINAPI NtUserDrawCaptionTemp( HWND hwnd, HDC hdc, const RECT *rect, HFONT font,
HICON icon, const WCHAR *str, UINT flags )
{
if (!unix_funcs) return FALSE;
return unix_funcs->pNtUserDrawCaptionTemp( hwnd, hdc, rect, font, icon, str, flags );
}
Теперь обобщили и всё вызывается через единый переходник. Про цели не знаю. В оригинальной NT с каждым ядром и сервипаком индексы системных сервисов меняются, потому их и там наверняка и в вирусах используют лишь в исключительных случаях; так что вряд ли это что-то даст для совместимости. Вероятно, так удобнее поддерживать.По скорости вызова мало что изменилось, добавилась одна команда для вычисления адреса в таблице по индексу сервиса. Косвенное обращение в и в предыдущем варианте есть. Предсказатель в данном случае смотрит на адрес, откуда был вызов и предшествующие команды, а не адрес в таблице переходов:
2.4.2.3 Branch Prediction
Branch prediction predicts the branch target and enables the processor to begin executing instructions
long before the branch true execution path is known. All branches utilize the branch prediction unit (BPU)
for prediction. This unit predicts the target address not only based on the EIP of the branch but also
based on the execution path through which execution reached this EIP. The BPU can efficiently predict the
following branch types:
• Conditional branches.
• Direct calls and jumps.
• Indirect calls and jumps.
• Returns.
Спасибо.>Предсказатель в данном случае смотрит на адрес, откуда был вызов и предшествующие команды, а не адрес в таблице переходов
В том то и дело. Раньше были обёртки, у каждой - свой адрес. Теперь - общая обёртка с одним и тем же адресом на всех. Если я верно понимаю.
Общий диспетчер с переходом по таблице - это классическая схема для всяких интерпретаторов, где после перехода выполняется всего несколько команд, а потому ошибки предсказателя дорого стоят, и это дело вроде как продумали:This unit predicts the target address not only based on the EIP of the branch but also
based on the execution path through which execution reached this EIP.EIP - это регистр указатель инструкций. Предсказатель смотрит не только адрес команды перехода, но и путь, по которому процессор дошел до этого адреса (скорее всего, запоминает предшествующие переходы).
В данном же случае через диспетчер вызываются достаточно "тяжелые" подпрограммы (а оригинале - вообще ядро), соотвественно ошибки предсказателя имеют меньший вес.
> В оригинальной NT с каждым ядром и сервипаком индексы системных сервисов меняются, потому их и там наверняка и в вирусах используют лишь в исключительных случаях; так что вряд ли это что-то даст для совместимости.Не совсем. Индексы меняются, но их порядок и взаимное расположение если и изменяется, то несущественно. Поэтому очень многие "сомнительного рода" программы, типа вирусов, античитов и прочих пакеров, активно на это полагаются.
Другое дело, что в Wine порядок индексов полностью отличается от виндового (он алфавитный, а не исторический как в винде), поэтому ЯХЗ чего они хотели добиться этими изменениями.
>> В оригинальной NT с каждым ядром и сервипаком индексы системных сервисов меняются, потому их и там наверняка и в вирусах используют лишь в исключительных случаях; так что вряд ли это что-то даст для совместимости.
> Не совсем. Индексы меняются, но их порядок и взаимное расположение если и
> изменяется, то несущественно.Индекс нужен, что бы передать его аргументом (как номер сервиса) при вызове шлюза. Вот возможные варианты для одного из самых распространённых:
NtClose 0x000c 0x000c 0x000c 0x000c 0x000c 0x000c 0x000c 0x000c 0x000c 0x000c 0x000c 0x000c 0x000c 0x000c 0x000c 0x000d 0x000e 0x000d 0x000e 0x000f 0x000f 0x000f 0x000f 0x000f 0x000f 0x000f 0x000f 0x000f 0x000f 0x000f
Windows X86-64 System Call Table (XP/2003/Vista/2008/7/2012/8/10) https://j00ru.vexillium.org/syscalls/nt/64/
То есть перед вызовом надо узнать версию ОС (просто прочитать, отображается в пространство пользователя через KUSER_SHARED_DATA) и выбрать соответствующий. И так для каждого сервиса.
Что даёт "взаимное расположение если и изменяется, то несущественно"? Если бы мне были нужны эти индексы - я бы при помощи упрощенного дизассемблера вытаскивал их из ntdll.dll. Кажется, для того достаточно разобрать таблицу экспорта, а полагаться на неизменность взаимного расположения не стоит.
> Поэтому очень многие "сомнительного рода" программы, типа
> вирусов, античитов и прочих пакеров, активно на это полагаются.Вирус - это зловред, внедряющий свой код в исполняемый файл. Они вообще встречаются в живой природе? Если же какие-то loader-ы используют несколько сисколов для распаковки и запуска основной нагрузки, тогда получается, что это использует меньше половины зловредов, то есть не многие.
> Другое дело, что в Wine порядок индексов полностью отличается от виндового (он
> алфавитный, а не исторический как в винде), поэтому ЯХЗ чего они
> хотели добиться этими изменениями.Ну порядок как раз не сложно изменить, если потребуется. Может быть так проще, пока отлаживают.
Один раз нормально сделанные для винды игры (да и в целом программы) работают до сих пор повсеместно!А какие-то даже получают улучшения
https://www.youtube.com/watch?v=xc6oRzI9DOE
А кто-то пробовал сейчас запустить, ну, например, нативных третьих героев под линуксом?
Есть такие, которым до сих пор обязательно нативное подавай?
Играю на десятке в Postal 2. Стоковый D3D8 рендер постоянно крашится исключениями. Советовали включить OpenGL рендер, но я решил попробовать d8vk. Не крашится, но статтеры при компиляции шейдеров постоянно случаются.
http://dege.freeweb.hu/
> Закрыты отчёты об ошибках
> MSN Messenger Live 2009O_o У кого-то протекла криокамера?
Меня больше впечатляет, что оно работает. Обратная совместимость здорового человека.