Linux rt - патч для андроида кто-нибудь? - PullRequest
10 голосов
/ 06 сентября 2011

Можно ли применить rt-patch для ядра linux к ядру android?

ПОЧЕМУ? Это чисто исследовательский проект. Могу ли я иметь приборную панель на своем автомобиле, которая работает под управлением Android, но в то же время контролирует важные для безопасности задачи в автомобиле? Сам по себе Android бесполезен для задач SC, но если я поставлю его поверх гипервизора, я уверен, что это можно сделать.

Ответы [ 7 ]

4 голосов
/ 09 сентября 2011

Очень важная ссылка

Текущие исследования Android в реальном времени.

http://code.google.com/edu/submissions/ncsu-rts/

<ч />

ниже обсуждение блога стоит прочитать,

http://groups.google.com/group/android-kernel/browse_thread/thread/fbf7f94d80f5eb2c/4e9f6f4d22a40b36?pli=1

Он ничем не отличается от поддержки в реальном времени в любой системе Linux, есть вы смотрели в реальном времени набор патчей для ядра Linux? Это должно применяться к ядрам Android без проблем.

там написано, что вы можете успешно установить патч Linux для Android.

Кстати, определение архитектуры реального времени,

Система реального времени - это система, в которой правильность вычислений зависит не только от логической правильности вычислений, но также на момент, когда результат производится. Если сроки ограничения системы не выполнены, системный сбой, как говорят, имеет произошло.

Выше ref от: http://www.ibm.com/developerworks/linux/library/l-real-time-linux/

Итак, почему в этой вселенной вы хотите применить rt-patch к ядру Android?

<ч />

** ПРОСТО НАЙДЕНО **

Эта статья заслуживает изучения. Вы можете найти ссылку для своего исследовательского проекта.

http://users.ece.gatech.edu/~vkm/Android_Real_Time.pdf

3 голосов
/ 13 сентября 2011

Если я понимаю вопрос. у вас очень критическая система (например, система помощи при торможении автомобиля и т. д.), и вы хотите управлять ею и отслеживать ее с помощью удобного графического интерфейса, созданного в Android (панель инструментов)?

Я думаю, что вы всегда должны отделять критическую систему от графического интерфейса. Это также на аппаратном уровне. Таким образом, вы можете делать все, что не хотите в своем графическом интерфейсе, но на критическую систему никогда не повлияет (большая загрузка процессора для причудливого графа и т. Д.), Потому что она работает на собственном оборудовании.

Таким образом, у вас будет одна система: внутренний автомобильный компьютер (как они существуют сегодня) и совершенно другая система: отличный графический интерфейс на базе Android.

Связь между этими двумя вещами должна быть максимально простой, уже существует множество стандартов для взаимодействия с внутренним компьютером, в основном они зависят от бренда (например, VAG com).

3 голосов
/ 09 сентября 2011

Я не знаю подробностей вплоть до уровня ядра, но я предполагаю, что вы хотите создать версию RT для Android.

Что касается этого желания, я бы подумал, что простое применение исправления RT не даст вам никакой выгоды.в режиме реального времени версии Android.

Особенно с виртуальной машиной очень много сложностей, связанных с паузами сбора мусора и такими, которые мешают истинному поведению в реальном времени.

Например, посмотрите спецификацию JVM в реальном времени.Потребовалось 8 лет, чтобы перейти от первоначального представления к фактической рабочей реализации.

http://www.jcp.org/en/jsr/detail?id=1

В общем ... возможно и возможно применить исправление RT, но результат не даст того, чего вы, вероятно, добьетесь.

2 голосов
/ 14 сентября 2011

Если ваша цель в действительности состоит в том, чтобы только загрузить ядро ​​Android с исправлением RT, то, скорее всего, тривиально, если архитектура исправляющего устройства поддерживает исправление RT.Например, x86 хорошо поддерживается, и я считаю, что ARM также.

Я использую «тривиальный» в широком смысле;исправление RT может не применяться чисто к произвольному ядру с пользовательскими (то есть не магистральными) изменениями, такими как ядро ​​Android, но архитектурная и низкоуровневая интеграция в такие вещи, как управление параллелизмом, может быть одной из самых больших проблем.Например, исправление RT предназначено для работы с произвольными драйверами, но могут существовать и другие проблемы: исправление RT касается МНОГИХ подсистем.С другой стороны, значительная часть исправления RT фактически попала в вышестоящее ядро, что упрощает задачу в зависимости от разветвленной версии, на которой основано ядро ​​Android.

Предполагая, что архитектура поддерживаетсяRT исправление, оно успешно применено к ядру Android с разрешенными конфликтами и загружается, ваша работа еще далека от завершения.Любые приложения пользовательского пространства, такие как пользовательские интерфейсы, которые запускаются поверх JVM, должны знать об ограничениях по времени и т. Д. *

Для получения дополнительной информации о создании приложения с исправлением RT вы можете обратиться к этой викиисправление RT: http://rt.wiki.kernel.org/ (обратите внимание, что на момент написания этого кода kernel.org не работал из-за недавнего нарушения безопасности).

2 голосов
/ 09 сентября 2011

Как уже говорили другие, нет реальной причины, по которой вы не могли бы применить исправления RT и Android к ядру Linux. Но будет ли это полезно для вас, зависит от того, что вы пытаетесь сделать.

Вы не получите приложения Android в реальном времени с полной поддержкой API. Однако вы должны иметь возможность писать собственные приложения в режиме реального времени на C. Смотрите документацию для написания собственных действий. Вам просто нужно быть очень осторожным, чтобы не выполнять API-вызовы в Java (из-за потенциальной возможности сбора мусора, для начинающих) - и, возможно, даже многих системных вызовов Linux - из потоков, в которых вы собираетесь вести себя в режиме реального времени. Как и любая настоящая система реального времени, большая часть работы будет зависеть от вас.

Всякий раз, когда kernel.org возвращается в сеть, загляните на RT wiki .

1 голос
/ 14 сентября 2011

Вы можете применить два патча (модификации ядра RT и ядра Android), но кроме очевидной тяжелой работы по интеграции этих двух, я подозреваю, у вас будет, по крайней мере, одна концептуальная проблема - Android использует систему блокировок, называемых «пробужденными блокировками».", чтобы контролировать, когда и на каком уровне система работает, можно перейти в режим энергосбережения.

Проблема в том, что режимы глубокого энергосбережения совсем не совместимы с жестким режимом реального времени, который требует предсказуемости.

Конечно, вы можете модифицировать патчи для Android и обеспечить «фиктивную» реализацию механизма блокировки пробуждения, тем более что в автомобиле у вас аккумулятор намного больше, чем у обычного планшета или смартфона, но это нечтовам нужно будет обратиться.

Кроме того, я считаю, что это вся работа по интеграции и тестированию кода.

Удачи

0 голосов
/ 31 марта 2012

Я, наконец, взял на себя мантию и придумал подход на основе гипервизора, чтобы Android мог поддерживать жесткую обработку в реальном времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...