Подтвердить что ты не робот

Можно ли одному разработчику написать простую мобильную ОС для телефонов Android?

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

4b9b3361

Ответ 1

Если вы имеете в виду с нуля: это, безусловно, возможно. Но для этого требуется много человеческих ресурсов:-). В производстве мобильных телефонов часто есть сотни программистов, и все же SW часто заполняется ошибками: -).

Упрощение того, что вы могли бы сказать, что в мобильном телефоне часто есть два модуля SW:

  • "UI OS", который обрабатывает отображение, звук и ввод пользователя.
  • "Baseband OS", которая обрабатывает связь в мобильной сети.

UI OS может быть, например, Linux или чем-то более простым. Ядро Linux Vanilla может легко работать практически на любых современных мобильных телефонах.

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

Там только один улов: вам нужно найти "открытый аппаратный мобильный телефон", куда включить ОС. Операторы сотовой связи часто требуют строгих мер безопасности на сегодняшних телефонах, поэтому очень сложно запрограммировать свою собственную ОС на телефоне на рынке. Также вам потребуется доступ к схемам плат, деталям чипа и т.д., Что не произойдет: -).

Одной из идей может быть OpenMoko, который является "проектом открытого телефона": http://wiki.openmoko.org/wiki/Main_Page или проектом Google Android.

Кроме того, CPU: s, используемые в современных телефонах, таких как TI OMAP, часто доступны через доски разработки, такие как http://www.igep-platform.com/index.php?option=com_content&view=article&id=46&Itemid=55

Дело здесь в том, что плата не содержит чип для основной полосы, чтобы обрабатывать связь с мобильной сетью.

Изменить: О создании и запуске ПО для мобильных телефонов. То, что происходит при запуске мобильного телефона, очевидно зависит от аппаратной платформы, но может произойти что-то подобное (это справедливо и для большинства встроенных систем):

  • ASIC (который содержит CPU) запускается, сбрасывается и начинает выполнение так называемого загрузочного ремня (жестко закодированного в ASIC).
  • Загрузочный ремень пытается настроить микросхемы флэш-памяти, подключенные к ASIC.
  • Загрузочный ремень загружает SW от вспышки в SRAM чипа (встроенная оперативная память на кремнии ASIC).
  • SW в SRAM устанавливает SDRAM (timings et c) и загружает "ОС" (или любой другой SW, который вы захотите) в SDRAM со вспышки.
  • SW в SRAM устанавливает внутренний указатель инструкции в CPU на SDRAM, и, следовательно, ядро ​​процессора ASIC начинает выполняться в SDRAM.
  • SW в SDRAM ( "ОС" ) устанавливает таймеры, прерывания, управление памятью или все, что необходимо.
  • SW может быть любым, безлимитным циклом, полной версией ОС или просто SW, потянув какой-то светодиод hi или low.

Если ASIC будет иметь вспышку NOR, она может выполняться напрямую без предварительной загрузки SW в SDRAM.

ОС в SDRAM может быть ядром Linux. Единственное, что понадобится ядру Linux, это несколько информационных блоков, таких как размер памяти, физическое расположение этой памяти и т.д. (В одном случае используется список ATAG). Конечно, ему также необходимо знать некоторые из внутренних компонентов ASIC, это будет добавлено в ядро ​​Linux. Но большинство чипов на рынке сегодня уже существуют в ядре Linux. Nokia, например, внесла большой объем кода в адаптацию TI OMAP3430, и это можно увидеть в самом исходном коде ядра (arch/directory или аналогичном). Я не уверен, какие телефоны от Nokia используют этот чип, но это, вероятно, высококачественные телефоны Linux и Symbian.

Для получения более подробного ответа, чем указано выше, потребуется несколько страниц, поэтому лучше всего использовать ответы, которые вы получили на SO, и попытаться использовать его для получения дополнительной информации из других источников.

Удачи: -)

Ответ 3

Android также является открытым исходным кодом, если вы не хотите начинать с нуля. В противном случае вам потребуется найти документацию для вашей архитектуры телефона. У вас есть определенный телефон в виду?

Ответ 4

Надеюсь, это больше Phantom и меньше Phantom Угроза (badoom-tish), но этот человек пишет свои собственные мобильные операционные и вы можете найти сайт интересным.