The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск Wine 6.17 и Wine staging 6.17, opennews (ok), 11-Сен-21, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


1. "Выпуск Wine 6.17 и Wine staging 6.17"  +3 +/
Сообщение от ilyafedin (ok), 11-Сен-21, 09:40 
> Продолжена подготовка к реализации интерфейса системных вызовов GDI.

Что это значит, как оно вообще может пускать виндовые приложения, если GDI не заимплеменчен?

Ответить | Правка | Наверх | Cообщить модератору

6. "Выпуск Wine 6.17 и Wine staging 6.17"  +2 +/
Сообщение от Аноним (6), 11-Сен-21, 10:10 
Назовите с ходу хоть одно Windows-приложение, которое напрямую обращается к системным вызовам для которых нет готовых функций-обвязок?
Ответить | Правка | Наверх | Cообщить модератору

7. "Выпуск Wine 6.17 и Wine staging 6.17"  +/
Сообщение от ilyafedin (ok), 11-Сен-21, 10:11 
> Назовите с ходу хоть одно Windows-приложение, которое напрямую обращается к системным вызовам
> для которых нет готовых функций-обвязок?

Про какие фнукции-обвязки речь? Как минимум Qt видел использует GDI.

Ответить | Правка | Наверх | Cообщить модератору

21. "Выпуск Wine 6.17 и Wine staging 6.17"  +/
Сообщение от n80 (?), 12-Сен-21, 00:16 
Он его через стандартные библиотеки использует, а не напрямую через системные вызовы.
FYI:
https://github.com/tinysec/windows-syscall-table
https://github.com/hfiref0x/SyscallTables
https://github.com/hfiref0x/NtCall64
Ответить | Правка | Наверх | Cообщить модератору

46. "Выпуск Wine 6.17 и Wine staging 6.17"  +1 +/
Сообщение от n00by (ok), 12-Сен-21, 19:12 
Qt использует библиотеки gdi32.dll и user32.dll.
Те в свою очередь используют системные вызовы, под которыми обычно понимают имена из пространств NtGdi* и NtUser*
Вызовы ядра непосредственно через шлюзы вряд ли кто-то использует, поскольку номера сервисов меняются и после обновления ОС приложение в общем случае превратится в тыкву, а в частных ему потребуется дизассемблер.
Ответить | Правка | Наверх | Cообщить модератору

50. "Выпуск Wine 6.17 и Wine staging 6.17"  +1 +/
Сообщение от n80 (?), 13-Сен-21, 01:46 
> Qt использует библиотеки gdi32.dll и user32.dll.

Под стандартными библиотеками я их и подразумевал, просто давно уже на память не помню названия и под рукой негде посмотреть было.

Про то что под системными вызовами обычно понимают функции NtXxx, конечно, уточнение важное, спасибо.

> Вызовы ядра непосредственно через шлюзы вряд ли кто-то использует

Припоминаю, что попадалась такая малварь и приравненное к ней (антивири, античиты, обфусцированная проприетарщина и т.д.).

Ответить | Правка | Наверх | Cообщить модератору

58. "Выпуск Wine 6.17 и Wine staging 6.17"  +/
Сообщение от n00by (ok), 13-Сен-21, 16:44 
>> Вызовы ядра непосредственно через шлюзы вряд ли кто-то использует
> Припоминаю, что попадалась такая малварь и приравненное к ней (антивири, античиты, обфусцированная
> проприетарщина и т.д.).

Хотел ведь написать "вряд ли кто в здравом уме использует", но постеснялся. :) Антивирю, по-хорошему, это вообще не надо, всё делается через драйвер.

Ответить | Правка | Наверх | Cообщить модератору

59. "Выпуск Wine 6.17 и Wine staging 6.17"  +/
Сообщение от Аноним (59), 13-Сен-21, 23:36 
> Вызовы ядра непосредственно через шлюзы вряд ли кто-то использует

Есть специфические драйверы принтеров, которые обращаются к GDI напрямую с целью рендеринга страницы перед печатью по своему и с использованием своих кастомных шрифтов. Например Ricoh, Kyocera и другие GDI-драйверы, которые одновременно ни PCL, ни PS и ни XPS.

Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

63. "Выпуск Wine 6.17 и Wine staging 6.17"  +/
Сообщение от n00by (ok), 14-Сен-21, 16:14 
>> Вызовы ядра непосредственно через шлюзы вряд ли кто-то использует
> Есть специфические драйверы принтеров, которые обращаются к GDI напрямую с целью рендеринга
> страницы перед печатью по своему и с использованием своих кастомных шрифтов.
> Например Ricoh, Kyocera и другие GDI-драйверы, которые одновременно ни PCL, ни
> PS и ни XPS.

Вызов через шлюз (call gate) это машинная инструкция int 2e или syscall. При этом вызываемая функция идентифицируется не по имени, а числом в регистре, которое меняется при обновлении ОС. Потому такой механизм не используют.

GDI printer driver может вызывать напрямую функции ядра, в этом случае шлюз не нужен, поскольку драйвер в ядре. Если же он в пространстве пользователя, то вызываются обычные dll. Во всех этих случаях функция идентифицируется именем. https://docs.microsoft.com/en-us/windows-hardware/drivers/pr...

Ответить | Правка | Наверх | Cообщить модератору

45. "Выпуск Wine 6.17 и Wine staging 6.17"  –1 +/
Сообщение от n00by (ok), 12-Сен-21, 18:50 
https://docs.microsoft.com/en-us/sysinternals/downloads/root...
Ответить | Правка | К родителю #6 | Наверх | Cообщить модератору

8. "Выпуск Wine 6.17 и Wine staging 6.17"  +5 +/
Сообщение от Anonnnym (?), 11-Сен-21, 10:56 
Предположу, что речь о интерфейсе импортируемых, а не экспортируемых функций. Вайновый gdi по экспортируемым функциям такой же как виндовый, а вот импортируемые сильно отличаются, из-за чего gdi.dll нельзя заменить на нативный из винды
Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

44. "Выпуск Wine 6.17 и Wine staging 6.17"  +/
Сообщение от n00by (ok), 12-Сен-21, 18:44 
>> Продолжена подготовка к реализации интерфейса системных вызовов GDI.
> Что это значит, как оно вообще может пускать виндовые приложения, если GDI
> не заимплеменчен?

More preparation work for the GDI syscall interface.

"системный вызовов" - это вызов ядра (syscall), а не gdi32.dll. В оригинальной NT gdi32.dll в итоге вызывает модуль ядра win32k.sys.

Вот https://source.winehq.org/git/wine.git/commitdiff/d2d8132734...
один из коммитов. Функции из пространства имён Nt* как правило реализованы в ядре.

Ответить | Правка | К родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру