Board.KolibriOS.org
https://board.kolibrios.org/

Реализация GUI
https://board.kolibrios.org/viewtopic.php?f=10&t=2083
Page 1 of 2

Author:  Wirbelwind [ Wed May 23, 2012 1:21 pm ]
Post subject:  Реализация GUI

Всем добрый день. Как и многие другие, пишу реферат по Колибри. Перелопатив несколько тем на здешнем форуме, вики и ресурсе на народе нашел почти все что нужно, но некоторые вопросы остались.
В первую очередь интересует реализация пользовательского интерфейса и особенно устройство GUI котя командная строка насколько понял тоже есть.
Администрирование и защита данных на диске я так понял отсутствуют в принципе, поэтому если не затруднит расскажите про то что такое ring-0, ring-3, куда это относится (управление процессами?) и с чем это едят. Заранее спасибо.

Author:  Mario [ Wed May 23, 2012 2:20 pm ]
Post subject:  Re: Реалиция GUI

Wirbelwind wrote:
что такое ring-0, ring-3, куда это относится (управление процессами?)

http://ru.wikipedia.org/wiki/Кольца_защиты

Author:  Wirbelwind [ Wed May 23, 2012 5:30 pm ]
Post subject:  Re: Реализация GUI

а поскольку ядро монолитное то кольца как бы 2 значит. Тут же 2 вопроса - есть ли что то кроме ядра и дров и ринг-0 и как именно ограничен ринг-3.
Понимаю что писать про гуи это нудно и долго, как и было сказано в "общеобразовательной" теме http://board.kolibrios.org/viewtopic.php?f=1&t=1179 <<Работа с видеокартой - это, собственно, GUI, на тему которого можно говорить отдельно довольно долго>> но говорить пожалуй пора. Хотя бы в пределах половины странички а4 общей не железячной информации.=)

Author:  Mario [ Wed May 23, 2012 5:39 pm ]
Post subject:  Re: Реализация GUI

Wirbelwind wrote:
как именно ограничен ринг-3.

Это аппаратное решение на уровне процессора. Гуглите и читайте документацию.
Wirbelwind wrote:
но говорить пожалуй пора. Хотя бы в пределах половины странички а4 общей не железячной информации

Все что есть на ресурсах вам доступно. Я просто беру код и документацию, думаю и программирую. И я лично не собираюсь писать за вас ваш реферат. Смотрите описание системных функций - их не так уж и много. http://wiki.kolibrios.org/wiki/Documentation/ru

З.Ы. Тут на форуме появляется иногда товарищ SII - его любимое занятен пофлудить на тему "какая дрянь эта ваша Колибри". Я думаю воды в реферат можно взять у него, обычно он обитается на форуме http://osdev.ru

Author:  Wirbelwind [ Wed May 23, 2012 7:02 pm ]
Post subject:  Re: Реализация GUI

Quote:
Я просто беру код и документацию, думаю и программирую. И я лично не собираюсь писать за вас ваш реферат.

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

Author:  art_zh [ Wed May 23, 2012 7:20 pm ]
Post subject:  Re: Реализация GUI

Mario
Не, ну зачем ты так сразу - видишь же, что есть у человека вполне позитивный интерес. Ну не все все сразу просекают, сам же помнишь как сложно поначалу

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

Author:  Mario [ Wed May 23, 2012 7:31 pm ]
Post subject:  Re: Реализация GUI

art_zh
Я вроде не выражался и никого не ругал, ну кроме вышеупомянутого товарища SII, который естественно в теоретике самый умный (и только в теоретике, так как его кода никто не видел).
Не все вещи можно изложить доступным бытовым языком. Зачастую все мои попытки делать подобные вещи заканчивались приходом какого нибудь не совсем местного человека, который поплевывая свысока указывал уже на мои неточности в формулировках. В общем большой отрицательный опыт у меня. Да, и из всех писателей курсовых и рефератов на моей памяти лишь один человек выложил свою работу. Остальные внезапно пропадали - таким образом принося объективный ноль результата на затраченные усилия помогающих.

Author:  FireWall [ Wed May 23, 2012 9:14 pm ]
Post subject:  Re: Реализация GUI

Выскажу некоторые соображения по поводу GUI Kolibri OS:
(1) Графический интерфейс Kolibri OS наиболее близок к SDL. Главные отличия:
- основной программный интерфейс на ассемблере (однако имуются обёртки системных вызовов для C);
- реализован полностью в ядре операционной системы;
- имеет поддержку некоторых графических элементов, которых нет в SDL: кнопки, отображение текста и чисел, ... (этих элементов нет в базовом SDL, но их можно найти во множестве различных расширений);
- возможен многооконный интерфейс по принципу один поток (thread) - одно окно (многооконный интерфейс возможен в новой версии SDL 1.3. - теперь уже 2.0, однако эта версия пока не достигла состояния стабильной);
- окно всегда перерисовывается по командам соответствующего потока исполнения (в SDL окну, точнее - его рабочей области, - соответствует начально инициализованный буфер графических данных - surface, в котором и хранится изображение окна, при перерисовке используются данные этого буфера, при этом приложение обычно даже не информируется);
(2) Ещё одна библиотека похожего уровня - это xlib (X-windows), однако в GUI Kolibri OS нет даже намёка на клиент-серверную (причём сетевую) архитектуру xlib. Поэтому сравнивать xlib и GUI Kolibri OS скорее всего нецелесообразно.
(3) Над GUI Kolibri OS имеются некоторые библиотеки графических элементов интерфейса, однако им пока ещё очень далеко до возможностей GTK. Однако GTK - это "супергигант", который тем самым вступает в резкое противоречие с "философией" Kolibri OS. (Моё личное мнение - эту библиотеку даже не имеет смысла портировать в Kolibri OS. Первой кандидатурой для портирования надо рассматривать FLTK, но для этого требуется хорошая поддержка C++, в наличие которой пока я очень сомневаюсь: если я не прав - поправляйте ...)

P.S.

Для начала хватит

Author:  Wirbelwind [ Thu May 24, 2012 12:44 am ]
Post subject:  Re: Реализация GUI

Итак, всем спасибо.
Пообщался с SII, про гуй правда ничего не узнал, полазил ещё немного по здешней вики, потом по обычной вики, прочитал все что успело здесь появиться, пораскинул мозгами и закончил творчество.
если интересно, вот что получилось.

Attachments:
реферат.docx [46.53 KiB]
Downloaded 217 times

Author:  Mario [ Thu May 24, 2012 1:11 am ]
Post subject:  Re: Реализация GUI

Quote:
Частично портированы такие программы

Ээээ? Программы немножко беременны?
Quote:
Соответственно синхронизации тоже практически нет - один процесс может только проверить, завершился ли другой.

Есть такая вещь как "именованная область". Функция 68 (подфункциии 22, 23), синхронизация на уровне приложения, но обмен между потоками вполне нормальный.
Quote:
делается поддержка файловой системы ext2

Ext3 также прекрасно читается. Вообще ЕМНИП они существенно отличаются только на запись файлов, наличием журналирования.
Quote:
Разумеется, концепция быстрой разработки приложений в принципе не может быть реализована.

Неверно. Если портировать уютный библиотечки, то говнокод можно будет лепить так же просто, как строить собачью конуру из бетонных блоков.
Quote:
И тем не менее все же очень хочется увидеть операционную систему от русскоязычных разработчиков выступающую на мировом рынке наравне с Windows и Unix системами.

Не та ОС! Экс-президент Дима Медведев одобряет другую систему.

Author:  art_zh [ Thu May 24, 2012 2:40 am ]
Post subject:  Re: Реализация GUI

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

определение Операционной Системы в самом начале - очень сумбурное и неполное.
любая ОС должна
1) уметь запускать на выполнение и снимать с выполнения пользовательские программы
2) обеспечивать необходимый системный сервис - в первую очередь взаимодействие пользовательских программ с реальным "железом" компьютера
3) обеспечивать оперативное и долговременное сохранение/предоставление информации в некотором стандартном формате; в частности - организовать межпрограммный обмен данных и практическую реализацию таких абстракций, как файл, устройство, поток в/в и т.п.

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

"API представлено приблизительно 70-ю функциями..." - многое из менуэтовского хлама удалено за ненадобностью, осталось то ли 50, то ли 52 функции.
"...достаточно примитивными, что подразумевается их количеством." - ты не по количеству суди, а по функциональности: в Колибри практически все системные функции - весьма и весьма крутонавороченные. И еще - они все вручную оптимизированы на максимальную скорость и минимальный размер кода.

Кстати, а ты не в курсе, сколько сотен сисфункций в Линуксе? а в Винде?

"если функция была удалена, приложение работать не сможет или не будет обладать полным закладывавшимся при его разработке функционалом" формально и теоретически - да, но на практике в Колибри сложилась уникальная методика правки ядерного кода: устаревшие сисфункции меняются или выкидываются из ядра только после многочисленных экспериментов и тестовых прогонов, длинных и острых дискуссий. Как правило, основную часть тестов производит сам автор рацпредложения (тот, кому больше всех надо), после чего выкладывает новую версию ядра на всеобщее растерзание. Поскольку прикладных программ в системе (прямо скажем) немного, все глюки выявляются и исправляются довольно быстро. А еще этому способствует молниеносная скорость правки ядерного кода: цикл правка-компиляция-перезагрузка-тестовый прогон на реальном железе занимает всего полторы-две минуты, а простая компиляция ядра - меньше секунды!

"Пожалуй, наиболее сложные и мощные api-функции используются при разработке графического интерфейса пользователя, хотя это тоже очень трудоемкий процесс, по сравнению, например, с разработкой интерфейса windows-приложений." - здесь налицо сразу ДВА случая так называемого вранья.
1) GUI-функции в большинстве своем не мощные, и не сложные, и не самые.
2) разработка пользовательского интерфейса - простой и вовсе не трудоемкий процесс. Попробуй сам - и убедишься, что наляпать кнопочки в винде и наполнить их полезной функциональностью ничуть не проще и даже не быстрее, чем создать подобное окошко в Колибри.

Заключение - а вот сюда лучше было бы скопипастить что-нибудь более умное и членораздельное - я нифига не понял ни одной авторской мысли в этом потоке. Даже не знаю к чему придираться...

Author:  s1n [ Thu May 24, 2012 9:54 am ]
Post subject:  Re: Реализация GUI

art_zh, ты конечно извини, но что за "GUI-лицензия"? Может GPL?

Author:  Wirbelwind [ Tue Jun 12, 2012 5:47 pm ]
Post subject:  оффтоп

да кстати вспомнил недавно про эту мегаось и подумал:
а если она вся такая маленькая и компактная, то может стоит попробовать устанавливать её целиком или хотя бы частично в кэш процессора?
просто делюсь мыслью, возможность сего действа в принципе мне неизвестна

Author:  art_zh [ Tue Jun 12, 2012 9:13 pm ]
Post subject:  Re: Реализация GUI

s1n
Конечно GNU GPL, долблюсь.

Wirbelwind
она уже почти вся там

Author:  SoUrcerer [ Tue Jun 12, 2012 9:33 pm ]
Post subject:  Re: Реализация GUI

Может, имеется в виду BIOS?

Page 1 of 2 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/