Jump to content

Микроокна

В вычислительной технике Nano -X — это оконная система , достаточно полнофункциональная для использования на ПК , встроенная система. [1] [2] или КПК . [3] [4] Это проект с открытым исходным кодом, направленный на то, чтобы реализовать возможности современных графических оконных сред на небольших устройствах и платформах. Проект был переименован в Microwindows из-за юридических угроз со стороны Microsoft относительно товарного знака Windows .

чрезвычайно портативна и полностью написана на C. Оконная система Nano- X Он был портирован на 16-, 32- и 64-разрядные процессоры Intel, Broadcom BCM2837 ARM Cortex-A53 , а также MIPS R4000 (NEC Vr41xx) StrongARM и PowerPC, на чипы установленные на карманных и карманных ПК.

Система Nano-X Window в настоящее время работает в Linux системах с поддержкой кадрового буфера ядра или с использованием драйвера X11 , который позволяет запускать приложения Microwindows поверх рабочего стола X Window . Этот драйвер эмулирует все режимы истинного цвета и палитры Microwindows , поэтому приложение можно предварительно просмотреть с использованием характеристик дисплея целевой системы непосредственно на дисплее рабочего стола, независимо от характеристик дисплея рабочего стола. Кроме того, он портирован на Windows , Emscripten , Android (на основе библиотеки Allegro ) и MS-DOS . Драйверы экрана Microwindow были написаны на основе библиотек SDL1 и SDL2, а также библиотек Allegro и SVGAlib . Также имеются драйвер VESA и VGA 16 цветов и 4 плоскостей.

Архитектура

[ редактировать ]

Многослойный дизайн

[ редактировать ]
Архитектура микроокна

Микроокна — это, по сути, многоуровневая конструкция, которая позволяет использовать или переписывать различные уровни в соответствии с потребностями реализации. [5] На самом низком уровне драйверы экрана , мыши / тачпада и клавиатуры обеспечивают доступ к реальному дисплею и другому оборудованию пользовательского ввода. На среднем уровне реализован портативный графический движок, обеспечивающий поддержку рисования линий, заливки областей, многоугольников, обрезки и цветовых моделей. На верхнем уровне реализованы три API, обеспечивающие доступ к программисту графических приложений. Xlib, Nano-X и Windows Win32 / WinCE В настоящее время Microwindows поддерживает API-интерфейсы GDI . Эти API обеспечивают тесную совместимость с системами Win32 и X Window , однако с ограниченной функциональностью. Эти API позволяют легко переносить программы из других систем.

Драйверы устройств

[ редактировать ]

Интерфейсы драйвера устройства определены в файле device.h. Данная реализация Microwindows будет связывать с системой как минимум один драйвер экрана, мыши и клавиатуры. Подпрограммы среднего уровня в аппаратно-независимом графическом ядре затем напрямую вызывают драйвер устройства для выполнения операций, специфичных для оборудования. Эта настройка позволяет добавлять в систему Microwindows различные аппаратные устройства, не влияя на работу всей системы.

Интерфейсы прикладного программирования

[ редактировать ]

В настоящее время Microwindows поддерживает три различных интерфейса прикладного программирования (API). Этот набор процедур обрабатывает клиент - серверную активность, действия оконного менеджера, такие как рисование заголовков, закрытие окон и т. д., а также обработку запросов программиста на вывод графики. Эти API работают поверх основных процедур графического движка и драйверов устройств.

API NX11 совместим с API X Window . Он основан на API Nano-X и предоставляет функции Xlib, используя функции, доступные в API Nano-X. Ее можно скомпилировать как отдельную библиотеку или вместе с библиотекой Nano-X как одну библиотеку под названием libPX11. Всего он предоставляет 180 функций Xlib и заглушки для дополнительных нереализованных функций.

На основе NX11 API FLTK библиотека графического пользовательского интерфейса может использоваться для предоставления графического интерфейса прикладных программ. Дистрибутив Nanolinux использует API NX11 и FLTK для реализации операционной системы Linux с использованием 19 МБ дискового пространства.

API Nano-X создан по образцу сервера mini-x, первоначально написанного Дэвидом Беллом, который представлял собой повторную реализацию X в операционной системе MINIX . Он во многом соответствует Xlib API X Window System, но все имена имеют GrXXX(), а не X...(). Базовая модель любого API поверх Microwindows заключается в инициализации драйверов экрана, клавиатуры и мыши, а затем в цикле select() в ожидании события. Когда происходит событие, если это системное событие, такое как активность клавиатуры или мыши, эта информация передается пользовательской программе, преобразуемой в событие раскрытия, сообщение рисования и т. д. Если это пользователь, запрашивающий графическую операцию, то параметры декодируются и передаются в соответствующую процедуру механизма GdXXX. Обратите внимание, что концепция оконных и необработанных графических операций обрабатывается на этом уровне API. То есть API определяет понятия о том, что такое окно, каковы системы координат и т. д., а затем все координаты преобразуются в «экранные координаты» и передаются в основные процедуры движка GdXXX для выполнения реальной работы. Этот уровень также определяет графику или контексты отображения и передает эту информацию, включая информацию обрезания, в основные процедуры ядра.

API микроокна

[ редактировать ]

API, который пытается соответствовать стандарту Microsoft Win32 и WinCE GDI, — это API Microwindows. [6] В настоящее время поддерживается большинство процедур рисования и обрезки графики, а также автоматическое рисование строки заголовка окна и перетаскивание окон для перемещения. API Microwindows основан на сообщениях и позволяет писать программы без учета возможных политик управления окнами, реализуемых системой. API Microwindows в настоящее время не является клиент-серверным.

Фундаментальным механизмом связи в API Microwindows является сообщение. Сообщение состоит из известного номера сообщения и двух параметров, известных как wParam и lParam. Сообщения хранятся в очереди сообщений приложения и извлекаются с помощью функции GetMessage. Приложение блокируется в ожидании сообщения. Существуют сообщения, соответствующие аппаратным событиям, например WM_CHAR для ввода с клавиатуры или WM_LBUTTONDOWN для нажатия кнопки мыши. Кроме того, отправляются события, сигнализирующие о создании и уничтожении окна WM_CREATE и WM_DESTROY. В большинстве случаев сообщение связано с окном, идентифицируемым как HWND. После получения сообщения приложение отправляет сообщение процедуре обработки соответствующего окна с помощью DispatchMessage. При создании класса окна указывается связанная с ним процедура обработки сообщений, поэтому система знает, куда отправить сообщение.

Архитектура передачи сообщений позволяет базовому API управлять многими системными функциями, отправляя сообщения о всех видах событий, таких как создание окна, необходимость рисования, перемещение и т. д. По умолчанию соответствующая функция обработки окна получает «первый проход» в сообщение, а затем вызывает функцию DefWindowProc, которая обрабатывает действия по умолчанию для всех сообщений. Таким образом, все окна могут вести себя одинаково при перетаскивании и т. д., если только это специально не переопределено пользователем. Основные политики управления окнами можно переопределить, просто повторно реализовав DefWindowProc, а не внося изменения во всю систему.

Основной единицей организации экрана в Microwindows API является окно. Windows описывает область экрана для рисования, а также связанную с ней «окнную процедуру» для обработки сообщений, предназначенных для этого окна. Программисты приложений могут создавать окна из предварительно определенных классов, таких как кнопки, поля редактирования и т.п., или определять свои собственные классы окон. В обоих случаях метод создания и взаимодействия с окнами остается одинаковым.

Происхождение Nano-X связано с NanoGUI. NanoGUI был создан Алексом Холденом путем использования сервера mini-X Дэвида Белла и модификаций Алана Кокса, а также добавления сети клиент/сервер. Затем Грегори Хаэрр заинтересовался проектом NanoGUI и начал вносить значительные улучшения и модификации в NanoGUI. Примерно в версии 0.5 Грегори Хаэрр добавил поддержку нескольких API и начал распространять Microwindows. В Microwindows 0.84 были включены все предыдущие изменения NanoGUI, и с тех пор это объединенный дистрибутив NanoGUI/Microwindows. В январе 2005 года система сменила название на Nano-X Window System. Поскольку Nano-X лишь частично следует API Xlib X Window System, был разработан дополнительный интерфейс под названием NXlib, который предоставляет API-интерфейс, совместимый с Xlib, на основе Nano-X.

  1. ^ С. Веллхёфер, Встроенный Linux с Nano-X
  2. ^ Микроокна 0.9 на ARM Linux
  3. ^ «Установка микроокна на iPAQ» . Архивировано из оригинала 16 апреля 2007 г. Проверено 16 апреля 2007 г.
  4. ^ «Роял Лин@х КПК» . Архивировано из оригинала 22 мая 2007 г. Проверено 22 мая 2007 г.
  5. ^ П. Рагхаван, Проектирование и разработка встраиваемых систем Linux
  6. ^ Linux + Microwindows: претендент на WinCE
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: b5546338933ff3f67a141cd8487c33a3__1722180840
URL1:https://arc.ask3.ru/arc/aa/b5/a3/b5546338933ff3f67a141cd8487c33a3.html
Заголовок, (Title) документа по адресу, URL1:
Microwindows - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)