Реализация GUI

No comments
  • Wirbelwind wrote:что такое ring-0, ring-3, куда это относится (управление процессами?)
    http://ru.wikipedia.org/wiki/Кольца_защиты
  • а поскольку ядро монолитное то кольца как бы 2 значит. Тут же 2 вопроса - есть ли что то кроме ядра и дров и ринг-0 и как именно ограничен ринг-3.
    Понимаю что писать про гуи это нудно и долго, как и было сказано в "общеобразовательной" теме viewtopic.php?f=1&t=1179 <<Работа с видеокартой - это, собственно, GUI, на тему которого можно говорить отдельно довольно долго>> но говорить пожалуй пора. Хотя бы в пределах половины странички а4 общей не железячной информации.=)
  • Wirbelwind wrote:как именно ограничен ринг-3.
    Это аппаратное решение на уровне процессора. Гуглите и читайте документацию.
    Wirbelwind wrote:но говорить пожалуй пора. Хотя бы в пределах половины странички а4 общей не железячной информации
    Все что есть на ресурсах вам доступно. Я просто беру код и документацию, думаю и программирую. И я лично не собираюсь писать за вас ваш реферат. Смотрите описание системных функций - их не так уж и много. http://wiki.kolibrios.org/wiki/Documentation/ru

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

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

    Для начала хватит
  • Итак, всем спасибо.
    Пообщался с SII, про гуй правда ничего не узнал, полазил ещё немного по здешней вики, потом по обычной вики, прочитал все что успело здесь появиться, пораскинул мозгами и закончил творчество.
    если интересно, вот что получилось.
    Attachments
    Downloaded 482 times
  • Частично портированы такие программы
    Ээээ? Программы немножко беременны?
    Соответственно синхронизации тоже практически нет - один процесс может только проверить, завершился ли другой.
    Есть такая вещь как "именованная область". Функция 68 (подфункциии 22, 23), синхронизация на уровне приложения, но обмен между потоками вполне нормальный.
    делается поддержка файловой системы ext2
    Ext3 также прекрасно читается. Вообще ЕМНИП они существенно отличаются только на запись файлов, наличием журналирования.
    Разумеется, концепция быстрой разработки приложений в принципе не может быть реализована.
    Неверно. Если портировать уютный библиотечки, то говнокод можно будет лепить так же просто, как строить собачью конуру из бетонных блоков.
    И тем не менее все же очень хочется увидеть операционную систему от русскоязычных разработчиков выступающую на мировом рынке наравне с Windows и Unix системами.
    Не та ОС! Экс-президент Дима Медведев одобряет другую систему.
  • в реферате много копипасты, особенно по истории создания системы (я это где-то уже читал, слово в слово!).
    Это не есть хорошо.
    Попробуй пересказать своими словами хотя бы каждое второе предложение.

    определение Операционной Системы в самом начале - очень сумбурное и неполное.
    любая ОС должна
    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.
  • art_zh, ты конечно извини, но что за "GUI-лицензия"? Может GPL?
  • да кстати вспомнил недавно про эту мегаось и подумал:
    а если она вся такая маленькая и компактная, то может стоит попробовать устанавливать её целиком или хотя бы частично в кэш процессора?
    просто делюсь мыслью, возможность сего действа в принципе мне неизвестна
  • s1n
    Конечно GNU GPL, долблюсь.

    Wirbelwind
    она уже почти вся там
  • Может, имеется в виду BIOS?
  • Who is online

    Users browsing this forum: Ahrefs [Bot] and 4 guests