Симулятор 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
содержит утилиту для разработки симулятора.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )