1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cctom-liteipc_simulator

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Лицензия

Симулятор LiteIPC распространяется под теми же условиями, что и весь код в проекте OpenHarmony. В частности, условия лицензионного соглашения OpenHarmony (CLA) применяются к проекту LiteIPC Simulator.

Обзор

LiteIPC Simulator представляет собой реализацию LiteIPC OpenHarmony (см. //docs/lite/en/readme/liteipc_driver.md для получения более подробной информации) с использованием потоков POSIX, общего буфера памяти и семафоров, а также реализации Linux системы общего буфера памяти типа System V. Он был создан для упрощения использования/разработки компонентов OpenHarmony для мини-систем и маленьких систем на Linux. После объединения OpenHarmony под единый фреймворк IPC [communication_ipc #I52D5F] можно использовать базирующийся на Binder фреймворк IPC для разработки на Linux. Я оставлю репозиторий симулятора для тех, кто заинтересован в работе с LiteIPC на своей машине Linux или как начального пункта для тех, кто не хочет строить ядро с Binder, но не буду стараться поддерживать его актуальность.## Различия/Ограничения Наиболее важные различия между LiteIPC и симулятором заключаются в методах управления памятью и автоматической очистке информации IPC задач. Симулятор использует значительно более простой метод управления памятью, который может легко привести к ошибкам "out of memory", если задача удерживает сообщение вместо того, чтобы обработать его и сразу освободить после получения. Также симулятор не способен обнаружить завершение потока при продолжении работы процесса. Это может быть особенно проблематично при сочетании с ограничениями модели памяти, когда задача получает сообщение после своего завершения. Если что-то перестало работать с большим количеством ошибок "out of memory", это, вероятно, причина.Симулятор не поддерживает отправку дескрипторов файлов в специальных объектах OBJ_FD, что требуется типом канала TCP Direct Bus DSoftBus.

Использование

Симулятор был спроектирован для прозрачной замены liteipc_adapter OpenHarmony. Самый простой способ использования симулятора — изменить цель //foundation/communication/ipc_lite:liteipc_adapter на указание на группу целей симулятора liteipc.

Например, измените цель liteipc_adapter для сборок Linux на что-то вроде:

group("liteipc_adapter") {
    public_deps = [ "//third_party/liteipc_simulator:liteipc" ]
}

Если симулятор расположен в директории third_party/liteipc_simulator под корневой директорией проекта OpenHarmony. Запустите liteipc_simulator_init перед запуском программ OpenHarmony с использованием LiteIPC.

Структура директорий

Директория simulator содержит исходный код симулятора LiteIPC.

  • Программа liteipc_simulator_init выполняет роль функции OsLiteIpcInit в LiteIPC. Она создаёт и инициализирует объект POSIX общего доступа памяти с именем liteipc_simulator, который содержит всю информацию управления для процессов, использующих симулятор для взаимодействия друг с другом. Как и OsLiteIpcInit, она должна вызываться только один раз.Директория adapter содержит модифицированный адаптер OpenHarmony для работы со симулятором. Директория sample содержит пример программы, который использует LiteIPC. Директория test содержит простые тестовые случаи. Директория utils содержит утилиту для разработки симулятора.
  • Программа liteipc_simulator_remove удаляет общую память, созданную liteipc_simulator_init. Она не выполняет проверку ошибок и предполагает, что никакие процессы больше не привязаны к симулятору.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Симулятор для OpenHarmony LiteIPC, работающий на Linux. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/cctom-liteipc_simulator.git
git@api.gitlife.ru:oschina-mirror/cctom-liteipc_simulator.git
oschina-mirror
cctom-liteipc_simulator
cctom-liteipc_simulator
master