Ответ 1
Я, наконец, взял мантию и придумал подход на основе гипервизора, чтобы Android мог поддерживать жесткую обработку в реальном времени.
Можно ли применить rt-patch для ядра linux к ядру android?
Почему? Это чисто исследовательский проект. Могу ли я иметь приборную панель на моем автомобиле, который работает под управлением Android, но также контролирует критические задачи безопасности в автомобиле? Сам Android - это утилиты для задач SC, но если я наложу это на гипервизор, я уверен, что это можно сделать.
Я, наконец, взял мантию и придумал подход на основе гипервизора, чтобы Android мог поддерживать жесткую обработку в реальном времени.
Очень важная ссылка
Текущие исследования андроида в реальном времени.
http://code.google.com/edu/submissions/ncsu-rts/
ниже обсуждения в блоге стоит прочитать,
Это ничем не отличается от поддержки в реальном времени в любой Linux-системе, вы заглянули в патч-набор реального времени для ядра Linux? Это не требует никаких проблем.
он говорит, вы можете успешно rt-patch linux для android.
BTW, определение архитектуры реального времени,
Система реального времени - это система, в которой правильность вычислений зависит не только от логической корректности вычислений, но и также с момента, когда результат будет получен. Если время ограничения системы не выполняются, считается, что системный сбой произошло.
Выше ссылки: http://www.ibm.com/developerworks/linux/library/l-real-time-linux/
Итак, В принципе, почему в этой юниверсе вы хотите применить rt-patch к ядру android?
** ТОЛЬКО НАЙТИ **
Эта статья стоит изучить. Вы можете найти ссылку для своего исследовательского проекта.
Я не знаю подробностей вплоть до уровня ядра, но предполагаю, что вы хотите создать версию RT Android.
Что касается этого желания, я бы подумал, что просто применение патча RT не означает, что вы попадете в реальную версию Android.
В частности, с виртуальной машиной существует много сложностей, связанных с паузами сбора мусора и предотвращающими истинное поведение в реальном времени.
например. посмотрите спецификацию реального времени для JVM. Потребовалось 8 лет, чтобы получить от первоначального представления фактической рабочей реализации.
http://www.jcp.org/en/jsr/detail?id=1
Итак, в целом, возможно, возможно и, возможно, можно применить патч RT, но результат не будет делать то, что вы, вероятно, после.
Если я пойму вопрос. у вас очень критическая система (например, система торможения автомобиля и т.д.), и вы хотите контролировать/отслеживать ее через отличный гий, созданный в андроиде (приборной панели)?
Я думаю, что вы всегда должны разделять критическую систему, начиная с gui. Это также на аппаратном уровне. Таким образом, вы могли бы делать все, что бы вы не делали в вашем графическом интерфейсе, но на критическую систему никогда не будет влиять (тяжелая загрузка процессора для графического графика и т.д.), Потому что он работает на своем собственном оборудовании.
Итак, у вас будет одна система: внутренний компьютер автомобилей (как они существуют сегодня) и совершенно другая система: отличный графический интерфейс на основе Android.
Связь между этими двумя вещами должна быть как можно более простой, уже существует множество стандартов для общения с внутренним компьютером, они в основном зависят от бренда (пример: VAG com).
Как и другие пользователи, нет реальной причины, по которой вы не можете применять исправления RT и Android к ядру Linux. Но зависит ли от вас то, что вы пытаетесь сделать.
Вы не сможете получать приложения Android в реальном времени с полной поддержкой API. Тем не менее, вы должны иметь возможность записывать собственные приложения реального времени в C. См. Документацию для написания собственных действий. Вам просто нужно быть очень осторожным, чтобы вы не делали никаких вызовов API на Java (из-за возможности сбора мусора, для начинающих) и, возможно, даже многих системных вызовов Linux - из потоков, которые вы намереваетесь вести в в режиме реального времени. Поэтому, как и в любой реальной системе реального времени, большая часть работы будет зависеть от вас.
Всякий раз, когда kernel.org возвращается в Интернет, посмотрите RT wiki.
Если ваша цель состоит в том, чтобы загружать ядро Android с помощью RT-патча, то, вероятно, тривиально, если архитектура устройства, работающего под ядром, поддерживается патчем RT. Например, x86 хорошо поддерживается, и я считаю, что ARM тоже.
Я использую "тривиальный" в свободном смысле; патч RT может не применяться чисто к произвольному ядру с пользовательскими (например, не магистральными) изменениями, такими как ядро Android, но архитектурная и более низкоуровневая интеграция в такие элементы, как управление concurrency, может быть одной из самых больших проблем. Патч RT обычно предназначен для работы с произвольными драйверами, например, но могут возникнуть другие проблемы: патч RT затрагивает многие подсистемы. С другой стороны, значительная часть RT-патча фактически превратила его в вышерасположенное ядро, что упрощает задачу в зависимости от разветвленной версии, на которой основано ядро Android.
Предполагая, что архитектура поддерживается патчем RT, она успешно применяется к ядру Android с разрешенными конфликтами и загружается, ваша работа еще далека от завершения. Любые пользовательские пространства, такие как пользовательские интерфейсы, которые работают поверх JVM, должны быть осведомлены о временных ограничениях и т.д.
Для получения дополнительной информации о создании приложения с патчем RT вы можете ознакомиться с этой вики для RT-патча: http://rt.wiki.kernel.org/ (обратите внимание, что при время написания этого kernel.org не работает из-за недавнего нарушения безопасности).
Вы можете применить два патча (ядро RT и изменения ядра Android), но помимо очевидной тяжелой работы по интеграции этих двух я подозреваю, что у вас будет хотя бы одна концептуальная проблема - Android использует систему блокировок, называемую "блокировкой бодрствования" ", чтобы контролировать, когда и на каком уровне система, на которой он работает, может перейти в режим энергосбережения.
Проблема заключается в том, что режимы глубокого энергосбережения не совместимы с жестким реальным временем, которое требует предсказуемости.
Конечно, вы можете модифицировать патчи Android и обеспечить реализацию механизма wake lock "dummy", тем более что в автомобиле у вас есть гораздо больший аккумулятор, чем ваш средний планшет или смартфон, но это то, что вам понадобится для адресации.
Кроме того, это все, что я считаю, интеграция кода и тестирования.
Удачи.