Dúvida sobre desenvolvimento do kernel Linux.

Iniciado por Tenori0, 28 de Abril de 2014, 13:00

tópico anterior - próximo tópico

Tenori0

  Boa tarde galera , ultimamente venho estudando um pouco sobre o kernel linux e lendo alguns artigos e me surgiram umas idéias.
 
Queria saber em relação ao sistema GNU/Linux Debian , caso eu quise-se fazer uma modificação para um tablet ou um smartphone como SO padrão , sem usar android ou nenhum artifício se quer para que ele instalar-se e funciona-se nesses aparelhos.
Qual o caminho em termo de linguagem de programação eu devo seguir?

Eu tenho conhecimento em lógica , básico em C e intermediario em linux. Estou começando o técnico em desenvolvimento de softwares e tenho essas idéias em mente. Mas gostaria muito mesmo , que alguém pode-se me da uma luz para trilhar esse caminho.

Desculpem qualquer coisa  , caso não tenha conseguido me expressar conrretamente sobre minhas dúvidas e por ter postado em um forum de uma distro derivada do debian.

Sergio Benjamim

Eu acho que seria C e C++ não? Você fala em desenvolvimento no kernel mesmo? Ou programas do sistema ou para usuário final?

Mas é difícil instalar distros linux nesses dispositivos, por conta da arquitetura diferente (ARM) e o uefi. E mesmos os que são baseados em arquitetura Intel, tem problema de compatibilidade (como o Asus T100, não lembro exatamente o problema).
É novo no Ubuntu? Já leu o Ubuntu – Guia do Iniciante 2.0 ?
Experimente o Xubuntu 14.04 !

Tota

Olá,

Citação de: Tenori0 online 28 de Abril de 2014, 13:00
Queria saber em relação ao sistema GNU/Linux Debian , caso eu quise-se fazer uma modificação para um tablet ou um smartphone como SO padrão , sem usar android ou nenhum artifício se quer para que ele instalar-se e funciona-se nesses aparelhos.
Qual o caminho em termo de linguagem de programação eu devo seguir?

Bem, o kernel Linux foi portado a algum tempo para a linguagem C, e no caso, poderia ser utilizada esta linguagem.

Independente de ser Debian ou não, o Kernel não está afeto a uma ou outra distribuição, e sim à arquitetura do processador utilizado na máquina alvo.

Assim, para "portar" o kernel Linux para um tablet ou smartphone "como SO padrão" como cita, basta ter acesso ao diagrama esquemático do processador usado no tablet ou no smartphone, bem como estudar o manual técnico onde se terá todos os comandos em código de maquina aceitos pelos referidos processadores.

Sabendo-se quais as entradas do kernel referentes à estas entradas do processador e o que elas fazem / significam, basta reescrever o código e compilar no novo kernel.

Logicamente assumindo um kernel modular. Pois para se obter um kernel monolítico, seriam necessários os códigos dos periféricos, como rede, som, camera, touchpad, armazenamento, etc, com isto, se reescrevendo também os drivers para cada periférico.

É exatamente o que o google fez ao desenvolver a plataforma Android, que utiliza o kernel Linux modificado para cada aparelho/periférico.

Citação de: Tenori0 online 28 de Abril de 2014, 13:00Eu tenho conhecimento em lógica , básico em C e intermediario em linux. Estou começando o técnico em desenvolvimento de softwares e tenho essas idéias em mente. Mas gostaria muito mesmo , que alguém pode-se me da uma luz para trilhar esse caminho

Em linhas gerais, o procedimento é o citado acima, e se tem conhecimento de lógica em C já é um inicio, mas não o caminho, já que conhecimentos de eletrônica discreta/digital e programação em código de máquina são importantes para este desenvolvimento. Além é claro de algum dinheiro para se adquirir aparelhos, desmontá-los, testá-los em bancada e ter acesso a manuais técnicos e de serviço, o que, sem patrocínio ou suporte de um fabricante interessado em seu projeto o tornará inviável em algum ponto do caminho.

O melhor mesmo em minha humilde opinião, é deixar a "reinvenção da roda" de lado, estudar a fundo a língua inglesa ( universal em informática) e se engajar em um dos milhares de projetos já existentes e disponíveis na rede em listas de discussão. Nestes grupos, você encontrará desenvolvedores como você, e que possuem também o seu espírito de colaboração em desenvolver este(s) projeto(s), já que se duas cabeças pensam melhor que uma, varias fazem o trabalho muito mais fácil.


irtigor

Se for adaptar pra um tablet que existe no mercado, olhe projetos como o mer: http://merproject.org/
Mas existem drivers opensource feitos com engenharia reversa pra algumas coisas, como:
http://limadriver.org/
http://freedreno.github.io/

Tenori0

 Galera muito obrigado , agora enxergou melhor outros caminhos que podem ser seguidos.