Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Разработка информационных систем Новый топик    Ответить
 Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
I dont know
Member

Откуда: Tyumen
Сообщений: 321
Приветствую, наверняка вам попадались программы, у которых, скажем, консольное ядро и может быть несколько разных gui , написанных на разных тулкитах или разными авторами. Например эмулятор цепей spice, это ядро и под него есть несколько гуев. Или торрент трекер transmission, аналогично. Интересует, как реализуются такие приложения в плане архитектуры, как гуй взаимодействует с ядром, через какие механизмы, какие паттерны может быть используются и т.д.
12 фев 18, 20:43    [21186373]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30818
Есть ядро со своим неким АПИ.
А Гуи юзают АПИ и рисуют каждый по своему.
Простой пример - погодные/валютные информеры.
12 фев 18, 21:27    [21186422]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
experience
Member

Откуда: Новосибирск
Сообщений: 107
MPV и к нему SMPlayer, Bomi, Deepin Movie, MPC-Qt, IINA, ...
Один из ярких примеров
http://www.opennet.ru/opennews/art.shtml?num=48057
13 фев 18, 08:08    [21186761]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
I dont know
Member

Откуда: Tyumen
Сообщений: 321
"Ядро предоставляет АПИ" - это получается гуй обращается к уже рабочей программе(через какие-нибудь сокеты или ещё как можно?) или гуй в своём составе "содержит" эту программу? Т.е где-то в дебрях кода гуя создаётся объект "ядро-программы" и у этого объекта вызываются его методы?
13 фев 18, 09:42    [21186888]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 25681
I dont know,

оба варианта подходят
13 фев 18, 09:46    [21186892]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30818
Т.е где-то в дебрях кода гуя создаётся объект "ядро-программы" и у этого объекта вызываются его методы?
Нет. ГУИ ничего не знает про подробности реализации. Он знает как вызвать тот или иной метод/свойство внешней программы.
Пример - ВинАПИ.
Вызывая его, вы понятия не имеете, что именно физически делает ОС. Это и не нужно знать. Достаточно правильно вызвать и обработать ответ.

Еще пример из жизни - телевизор. Вы клацаете кнопочки на его АПИ и получаете "результат".
Как он получает живую картинку - вообще мало кто знает в техн.подробностях. И уж тем более сможет качественно повторить.
13 фев 18, 11:03    [21187126]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2902
Гит запускается множеством разных гуёв просто из командной строки безо всякого апи ) и не сильно страдает.
13 фев 18, 12:18    [21187385]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
I dont know
Member

Откуда: Tyumen
Сообщений: 321
LSV
Нет. ГУИ ничего не знает про подробности реализации. Он знает как вызвать тот или иной метод/свойство внешней программы.

А у программы как-то можно вызывать её функции? Я знаю, можно вызывать функции например у DLL, загружаем её и вызываем функцию(зная её сигнатуру разумеется, видимо для этого этого, некоторые программы при компиляции требует h-файлы от той проги из которой будут вызывать функционал - Для С/С++). А с обычной программой так можно? Или по сути это та же баблиотека?
13 фев 18, 12:51    [21187516]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35269
I dont know
А с обычной программой так можно? Или по сути это та же баблиотека?
Написать можно ВСЁ!. Главное Зачем? ))))
13 фев 18, 12:55    [21187540]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
I dont know
Member

Откуда: Tyumen
Сообщений: 321
Petro123,
Не писать, а только ликвидировать пробел в знаниях относительно взаимодействия программ.
Например, возьмем какую-нибудь утилитку из linux, скажем ту же ls, хочу к ней гуй прилепить, пусть список файлов выдаётся в текстовое поле(абстрактный пример конечно, но чтобы было понятно). Один из вариантов как я понял есть, запустить ls из программы гуя и вывести в текстовое поле результат команды. А ещё есть способы?
13 фев 18, 13:12    [21187591]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35269
I dont know,
Статью пишите? Тоже неплохо.
13 фев 18, 13:25    [21187650]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
I dont know
Member

Откуда: Tyumen
Сообщений: 321
Petro123,
Нет, не пишу.
13 фев 18, 13:26    [21187653]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 35269
I dont know,
Очень много всяких вариантов чтобы описывать.
ls это просто утилита как dir.... А вы говорили о ядре и о том что в ядре Наш код.
Вы взяли линукс. А андроид? Винда?
Слишком широко взяли классифицировать).
13 фев 18, 14:06    [21187812]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30818
I dont know
А с обычной программой так можно? Или по сути это та же баблиотека?
В отличие от ДЛЛ, обычная программа не обязана иметь АПИ или OLE-объект. Хотя часто их имеет (н-р ms office, 1С).
13 фев 18, 14:15    [21187841]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
I dont know
Member

Откуда: Tyumen
Сообщений: 321
Petro123,
В линуксе такое встречал, поэтому и привел его в пример, виндой пользуюсь только на работе.

Petro123
Очень много всяких вариантов чтобы описывать.

Вот как раз они мне и интересны, какие бывают варианты?

Но из полученных ответов, для себя сделал вывод - возможность сделать отдельный гуи для какой-то программы, должна быть заложена изначально в саму эту программу, к которой этот гуи хотим прилепить. Т.е нельзя взять какую-нибудь программу(консольную) и прилепить к ней свой ui, даже имея её исх. код, по крайней мере его придётся переработать, правильно?
13 фев 18, 14:51    [21188019]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
face@table
Guest
интерфейс командной строки - универсальный интерфейс - и для программ (как API), и для людей
13 фев 18, 15:04    [21188080]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 54281
Блог
I dont know
А с обычной программой так можно? Или по сути это та же баблиотека?

Exe-файлу можно ровно так же, как и dll, сделать LoadLibrary, GetProcAddress и так далее, всё это будет работать - при условии, что приложение позаботилось экспортировать свои функции.
13 фев 18, 15:54    [21188305]     Ответить | Цитировать Сообщить модератору
 Re: Программа: одно ядро - разнные GUI, как такое реализуется?  [new]
makhaon
Member

Откуда: A galaxy far far away
Сообщений: 2902
I dont know,

автор
Т.е нельзя взять какую-нибудь программу(консольную) и прилепить к ней свой ui, даже имея её исх. код, по крайней мере его придётся переработать, правильно


Элементарно, даже без исходного кода. Я уже писал пример - гит.

автор
Вот как раз они мне и интересны, какие бывают варианты?


Смотри любое межпроцессное взаимодействие (IPC). Хотя бы вот:

https://ru.wikipedia.org/wiki/Межпроцессное_взаимодействие

На большинстве (а может и на всех) этих взаимодействий возможно построить то, что хочется. На чем-то проще, на чем-то сложнее.
19 фев 18, 19:33    [21202989]     Ответить | Цитировать Сообщить модератору
Все форумы / Разработка информационных систем Ответить