Board.KolibriOS.org

Official KolibriOS board
It is currently Fri Nov 22, 2019 7:24 pm

All times are UTC+03:00




Post new topic  Reply to topic  [ 23 posts ]  Go to page 1 2 Next
Author Message
 Post subject: Реализация GUI
PostPosted: Wed May 23, 2012 1:21 pm 
Offline

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


Last edited by Wirbelwind on Wed May 23, 2012 2:34 pm, edited 1 time in total.

Top
   
 Post subject: Re: Реалиция GUI
PostPosted: Wed May 23, 2012 2:20 pm 
Wirbelwind wrote:
что такое ring-0, ring-3, куда это относится (управление процессами?)

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


Top
   
PostPosted: Wed May 23, 2012 5:30 pm 
Offline

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


Top
   
PostPosted: Wed May 23, 2012 5:39 pm 
Wirbelwind wrote:
как именно ограничен ринг-3.

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

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

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


Top
   
PostPosted: Wed May 23, 2012 7:02 pm 
Offline

Joined: Wed May 23, 2012 12:26 pm
Posts: 7
Quote:
Я просто беру код и документацию, думаю и программирую. И я лично не собираюсь писать за вас ваш реферат.

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


Top
   
PostPosted: Wed May 23, 2012 7:20 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1351
Mario
Не, ну зачем ты так сразу - видишь же, что есть у человека вполне позитивный интерес. Ну не все все сразу просекают, сам же помнишь как сложно поначалу

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


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


Top
   
PostPosted: Wed May 23, 2012 9:14 pm 
Offline

Joined: Wed Sep 15, 2010 7:22 pm
Posts: 101
Выскажу некоторые соображения по поводу 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.

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


Top
   
PostPosted: Thu May 24, 2012 12:44 am 
Offline

Joined: Wed May 23, 2012 12:26 pm
Posts: 7
Итак, всем спасибо.
Пообщался с SII, про гуй правда ничего не узнал, полазил ещё немного по здешней вики, потом по обычной вики, прочитал все что успело здесь появиться, пораскинул мозгами и закончил творчество.
если интересно, вот что получилось.


Attachments:
реферат.docx [46.53 KiB]
Downloaded 206 times
Top
   
PostPosted: Thu May 24, 2012 1:11 am 
Quote:
Частично портированы такие программы

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

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

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

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

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


Top
   
PostPosted: Thu May 24, 2012 2:40 am 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1351
в реферате много копипасты, особенно по истории создания системы (я это где-то уже читал, слово в слово!).
Это не есть хорошо.
Попробуй пересказать своими словами хотя бы каждое второе предложение.

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

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

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

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

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

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

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


Last edited by art_zh on Fri Jun 15, 2012 2:02 am, edited 1 time in total.

Top
   
PostPosted: Thu May 24, 2012 9:54 am 
Offline
User avatar

Joined: Tue Jan 24, 2006 8:50 am
Posts: 249
art_zh, ты конечно извини, но что за "GUI-лицензия"? Может GPL?


Top
   
 Post subject: оффтоп
PostPosted: Tue Jun 12, 2012 5:47 pm 
Offline

Joined: Wed May 23, 2012 12:26 pm
Posts: 7
да кстати вспомнил недавно про эту мегаось и подумал:
а если она вся такая маленькая и компактная, то может стоит попробовать устанавливать её целиком или хотя бы частично в кэш процессора?
просто делюсь мыслью, возможность сего действа в принципе мне неизвестна


Top
   
PostPosted: Tue Jun 12, 2012 9:13 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1351
s1n
Конечно GNU GPL, долблюсь.

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


Top
   
PostPosted: Tue Jun 12, 2012 9:33 pm 
Offline

Joined: Mon Sep 24, 2007 11:11 am
Posts: 2814
Может, имеется в виду BIOS?


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 23 posts ]  Go to page 1 2 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 7 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited