Введение

Маленькое приложение, которое может выполняться одновременно с любыми другими приложениями. В вычислительной технике, прибор для рабочего стола (DA) или desklet – это небольшое временное или вспомогательное приложение, которое может работать параллельно с любыми другими приложениями в среде рабочего стола. Ранние примеры, такие как Sidekick и аксессуары для рабочего стола Macintosh, использовали специальные модели программирования для обеспечения ограниченной многозадачности в системах, которые изначально не поддерживали многозадачность.

Управляющие персональными данными

Ранние персональные информационные менеджеры, такие как Norton Desktop и Borland's Sidekick, предоставляли всплывающие калькуляторы, будильники, календари и другие функции для однозадачных операционных систем, таких как MS DOS, используя методы оставаться в памяти и завершения работы.

Apple Macintosh

Впервые представленные в 1984 году как часть операционной системы для компьютера Apple Macintosh, Desk Accessory (DA) представляли собой программные компоненты, написанные в виде драйверов устройств и соответствующие определенной модели программирования. Целью этой модели было позволить очень небольшим вспомогательным приложениям работать одновременно с любым другим приложением в системе, обеспечивая ограниченную многозадачность в системе, которая изначально не обладала такими возможностями. DA реализовывались как особый класс драйверов, устанавливались в очередь драйверов и получали время для работы периодически и кооперативно, когда хост-приложение вызывало SystemTask в своем основном цикле. DA могли иметь пользовательский интерфейс, но он должен был быть ограничен одним главным окном. Для DA был зарезервирован специальный фрейм окна с черной полосой заголовка и закругленными углами, чтобы пользователь мог отличить его от окон хост-приложения. Типичными ранними DA были Калькулятор и Будильник. Панель управления, Chooser и Scrapbook изначально были реализованы как DA. Можно было приобрести DA сторонних разработчиков, например, программы проверки орфографии. Написание DA считалось сложной задачей, особенно на ранних этапах, когда было мало инструментов для разработчиков. Однако, поскольку в ранних версиях Mac OS драйверы не имели специальных привилегий, написание DA, с приобретением опыта, не было сложнее, чем разработка любого другого приложения. Для изменения конфигурации DA использовалась специальная утилита Font/DA Mover. Поскольку DA не устанавливались и не запускались так же, как приложения, пользователь не мог перетаскивать их в систему или из нее. Они хранились в ресурсах "DRVR" системного файла, как и настоящие драйверы, хотя могли быть установлены и в любом файле, ресурсы которого загружались в память, и сохранялись в "чемоданах", когда не были установлены в системном файле. Если DA устанавливались в отдельное приложение, например, MacWrite, их функциональность становилась доступной только при запуске этого приложения. То есть, настольный аксессуар, установленный как ресурс в приложении, появлялся в меню Apple как DA только при активном состоянии этого приложения. Его можно было активировать во время работы приложения, и он исчезал при завершении приложения через функцию "Quit". (Аналогично, ресурсы FKEY могли быть установлены либо в системе для универсальной доступности, либо в приложении для доступности только при его активном состоянии). Поскольку была реализована схема нумерации ресурсов для обозначения принадлежности ресурсов к другому ресурсу определенного типа и номера в том же файле, например, DA ("DRVR"), настольные аксессуары могли иметь собственный ограниченный "форк ресурсов" в файле, в котором они содержались. Утилита перемещения распознавала такие ресурсы и перемещала их вместе с фактическим ресурсом кода DA, с которым они были связаны. С появлением System 7, включавшей стандартную кооперативную многозадачность, необходимость в DA значительно снизилась, и разработчикам было рекомендовано разрабатывать небольшие приложения. Система продолжала запускать DA (и продолжает до Mac OS 9.x) для обеспечения обратной совместимости. В System 7 и более поздних версиях DA можно было перемещать и переименовывать с помощью Finder, как и обычные приложения, что устранило необходимость в Font/DA Mover и ограничило использование "чемоданов" управлением шрифтами. При запуске DA в System 7 она всегда выполнялась в адресном пространстве Finder. Иконка программы DA в System 7 и более поздних версиях представляет собой примерно зеркальное отражение иконки приложения, с рукой, пишущей пером, на левой стороне вместо правой. Аналогичный механизм для запуска небольших утилит вместе с обычными приложениями также присутствовал в операционных системах Apple IIGS и Apple IIe.

ГЭМ

GEM во многом был похож на Macintosh. Одним из примеров было наличие настольных аксессуаров, и по той же причине: чтобы позволить использовать несколько программ в системе, которая поддерживала только одно полное приложение одновременно (хотя настольные аксессуары GEM использовали переключение задач, а не кооперативную многозадачность, как в Macintosh). С точки зрения программирования, настольные аксессуары, как и другие приложения GEM, были реализованы в виде DOS EXE файлов с именами, заканчивающимися на ACC (Accessory) вместо APP (Application). Каждый файл ACC мог содержать несколько аксессуаров; все три стандартных аксессуара GEM (калькулятор, часы и диспетчер печати) предоставлялись файлом CALCLOCK.ACC. Установка заключалась в простом размещении файла ACC в правильной директории – \GEMBOOT в ранних версиях и \GEMAPPS\GEMSYS в GEM/3 и более поздних. Поскольку каждый загруженный настольный аксессуар уменьшал объем доступной памяти для программ, одним из способов временного увеличения доступного пространства было переименование одного или нескольких файлов ACC в файлы с другим расширением (обычно ACX) и перезапуск GEM. Например, на Amstrad PC 1512 аксессуар Snapshot поставлялся как SNAPSHOT.ACX и его необходимо было переименовать в ACC перед использованием. Настольные аксессуары продолжали поддерживаться в ViewMAX, файловом менеджере DR DOS, который поставлялся с практически неизменными версиями калькулятора и часов.

ОС Palm

По той же причине, по которой столовые аксессуары использовались в Mac OS и GEM, а именно для обеспечения работы нескольких программ одновременно на системе, не поддерживающей многозадачность, концепция столовых аксессуаров была расширена на Palm OS сторонними разработчиками. DA – это апплеты, запускаемые приложением или хаком, выполняющим роль запускателя DA. Запускник DA может отслеживать нажатия клавиш или другие системные события и отображать предопределенный столовый аксессуар. Многие универсальные приложения-запускчики для Palm OS также способны запускать DA. Программа столового аксессуара представляет собой базу данных ресурсов Palm типа 'DAcc', предназначенную для включения единственного ресурса 'code' #1000, содержащего двоичный код, реализующий столовый аксессуар. Глобальные или статические переменные недоступны, но DA может вызывать API пользовательского интерфейса. В базе данных DA могут содержаться ресурсы пользовательского интерфейса. Запускник столовых аксессуаров передает управление первому байту ресурса 'code' #1000. DA обеспечивают ограниченную многозадачность. Однако, в отличие от Mac OS и GEM, после завершения работы с DA его необходимо закрыть, чтобы вернуться к основному приложению. Возможно отображение одного DA поверх другого DA, хотя это может привести к нехватке памяти стека.