Francisco Franco da Entrevista Franco Kernel Parte 1

click fraud protection

Parte 1 de uma entrevista com Francisco Franco, desenvolvedor do Franco Kernel e de outros aplicativos para diversos dispositivos.

Recentemente tive o prazer de entrevistar o homem por trás de um dos kernels Android mais populares de todos os tempos, o Franco Kernel. Atualmente, o kernel está disponível em muitos dispositivos diferentes, incluindo vários dispositivos Nexus e OnePlus e o Google Pixel/Pixel XL.

Nesta parte falamos sobre a jornada de Francisco Franco no desenvolvimento do kernel e sua opinião sobre as mudanças pelas quais o Android passou ao longo dos anos.


Sou Adam Conway aqui no XDA para entrevistar Francisco Franco, desenvolvedor do Franco Kernel! Você quer se apresentar?

Claro, meu nome é Francisco, como você acabou de dizer, e acho que já estou no XDA há 1 milhão de anos! Tenho feito todo tipo de coisa. Núcleos, aplicativos, e ultimamente tenho relaxado um pouco mais com os kernels porque fica cansativo depois de um tempo, mas ainda estou com força total na maioria dos meus dispositivos.

Ok, acho que muitas pessoas estariam familiarizadas com o seu trabalho, mas muitas pessoas não estariam familiarizadas com a pessoa real por trás do trabalho. Então eu acho que você realmente tem algum tipo de experiência anterior antes dos kernels? Gostou de algum diploma de ciência da computação ou algo parecido antes?

Sempre fui apaixonado por computadores, como qualquer criança enquanto crescia, eu acho. Depois que fiz 18 anos e decidi ir para a universidade como todo mundo, e acho que estava fazendo ciência da computação ou algo assim, mas depois de um ano ou mais, percebi que não era isso que eu realmente era apaixonado sobre. Depois daquele ano, minhas expectativas começaram a cair porque tudo era conversa e nenhuma ação, e eu estava começando a me sentir entediado - não porque eu fosse melhor do que qualquer outra pessoa, eu era apenas mediano - mas as disciplinas em si não eram exatamente o que eu queria. Então conversei com meus pais e eles sabiam que eu não estava muito feliz com isso. Durante o Natal de 2010, ganhei meu primeiro telefone Android. Um LG P500, é um telefone econômico, muito barato, mas eu sabia que rodava Linux, e minha disciplina favorita na universidade era arquitetura de computadores ou algo assim, sistemas operacionais. E estávamos aprendendo um pouco sobre shell e conversando um pouco sobre o kernel do Linux, e o que fazia parte do kernel e de toda a conectividade do kernel e do sistema operacional real, e isso era fascinante para mim. E então comecei a reconstruir o kernel Linux do meu antigo laptop junto com um amigo. Travamos nossos laptops umas 100 vezes fazendo isso, mas aprendemos com o processo. E então comecei a brincar com meu LG, e acho que a primeira coisa que fiz foi tentar aumentar um pouco mais o desempenho porque aquele dispositivo era realmente muito ruim. Então a melhor coisa que pude fazer foi passar pelos parâmetros padrão do kernel Linux para o real gerenciamento de memória e outras coisas, e apenas tente encontrar algo um pouco melhor do que o que já estava lá. Eu me diverti um pouco então.

Acho que não contei isso antes em entrevistas anteriores, mas naquela época aquele dispositivo usava um sistema de arquivos antigo chamado YAFFS - que significa Yet Another Flash Sistema de arquivos, mas era muito lento quando tentamos montar como um disco de troca baseado em RAM, então não me lembro de detalhes, mas fizemos todos os tipos de coisas diferentes experimentos com isso e acabamos montando o Dalvik em cima da memória RAM que precisava ser reconstruída a cada reinicialização porque, como você sabe, a RAM desaparece a cada reinicialização. hora de reiniciarmos. Mas tornou a abertura de aplicativos e a execução de benchmarks muito mais rápida, então ficamos felizes. Então, depois disso, comecei a me aprofundar um pouco mais e tentar compilar os fontes do kernel da LG para o dispositivo, e fiz todo tipo de coisa ruim julgamentos e todos os tipos de erros - rede Wi-Fi, seja o que for - tudo o que você possa imaginar de alguém sem experiência. Foi divertido, aprendi muito. Acho que depois de um ano ou seis meses fazendo isso eu estava um pouco mais focado e sabia um pouco melhor o que precisava para conseguir os downloads. Isso é o que todos nós queremos no final do dia. Depois disso, consegui algumas doações e passei para outros dispositivos. Acho que o Nexus S, depois o Galaxy Nexus e, depois desse período, consegui lançar meu primeiro aplicativo. Acho que tive muita sorte e consegui me financiar comprando novos dispositivos, e tudo explodiu a partir daí. Então acho que no final das contas devo tudo a, não diria XDA, mas a plataforma que o XDA nos fornece.

E a comunidade está por trás disso e tudo mais.

Sim, sim, quero dizer a plataforma, que é a comunidade e os fóruns reais. Para quem está ouvindo, isso não é um patrocinador pago nem nada, não estou sendo pago para dizer isso, é apenas verdade!

Não tem vídeo, o povo não vê a arma apontada para sua cabeça, está tudo bem.

Hahaha, sim, mas alguém vai dizer que estou sendo pago para dizer isso, então vou apenas dizer! Mas sim, sim, tem sido uma plataforma maravilhosa para eu construir coisas legais, aprender muito, aprendi tudo lá principalmente cometendo erros e aprendendo ainda resolvo meu quinhão de problemas. Destruí meu Xiaomi Redmi Note 3, uh, o bootloader acabou de ser destruído. Então eu tenho que conectá-lo novamente ao meu computador Windows que está lá atrás e tenho que atualizar tudo e ele está parado aqui há três meses. Estou recebendo todo tipo de ódio de todos por não estar prestando atenção naquele dispositivo, e por isso ainda cometo [erros], eu acho, então mesmo depois de todos esses anos ainda há muito a aprender e tive muita sorte de ter passado por essa jornada e tem sido incrível.

Bem, acho que visto que você começou com o... LG P500 foi?

Yeah, yeah.

Há quantos anos foi isso? Porque isso deve ter acontecido nas versões originais do Android, certo? Perto de Froyo ou algo assim?

Sim, foi enviado com o Froyo e foi atualizado para o Gingerbread alguns meses depois. Acho que esse dispositivo foi em 2010, início de 2011, provavelmente antes. Sei que minha conta no XDA foi criada em dezembro de 2010, mas eu já tinha o aparelho antes. Então eu acho que provavelmente nessa época, sim.

Como o Android evoluiu em termos de desempenho desde então? Por exemplo, como isso mudou para você escrever kernels naquela época e agora? E suponho quais são suas opiniões sobre as mudanças.

Em termos de kernel, acho que evoluímos com o kernel Linux real e todas as mudanças que a equipe do Android realmente queria implementar para uma determinada versão do Android, então eles determinam a maioria dos recursos especiais que o kernel terá, com base no que desejam enviar. Mas acho que o desempenho real, mais núcleos ajudam muito porque naquela época você não tinha nenhuma maneira real de mova este thread (sic) ou imagine solicitações de rede através de um thread em segundo plano, ou pelo menos em tempo real rosqueamento. Acho que essa foi a maior mudança ao longo dos anos, ter mais maneiras de distribuir o seu trabalho, e não deixar o Android ficar lento porque todo mundo está tentando agarrar um pouco de compartilhamento de CPU. Mais do que tudo, penso em multi-core e multi-threading real apoiado pelo Linux. Achei que essa [foi] a maior mudança.

Ah, ok, então qual é a sua opinião sobre HMP vs EAS? Porque obviamente o EAS é novo e está sendo usado apenas em alguns dispositivos – como você usa um Google Pixel, certo?

Sim, atualmente estou usando um Galaxy S8, mas também tenho um Pixel. Não conheço ambos com tantos detalhes, são apenas implementações diferentes de como um dispositivo com vários clusters deve agir com base no que está acontecendo no dispositivo em determinados momentos. Executar dois clusters diferentes com dois consumos de energia diferentes é bastante difícil. Você tem que atender às expectativas de tarefas subindo e descendo, e há uma latência envolvida nisso e o HMP foi a primeira implementação real de um arquitetura multi-cluster real para ARM, porque se bem me lembro, antes do HMP estar em uso no mundo real, a Samsung teve um implementação onde você estava usando os primeiros quatro núcleos, como núcleos de baixo consumo de energia, ou quatro núcleos de alto desempenho, mas eles nunca estavam rodando em o mesmo tempo. Mas depois com o HMP os núcleos estavam prontos para serem usados ​​a qualquer momento e as tarefas simplesmente moviam de um cluster para outro e vice-versa e isso funcionou fora, mas você não tinha muitas informações do agendador para mostrar isso ao governador para realmente decidir que tipo de frequência seria usada naquele momento específico, então você teve que lidar com, tipo, tentar entender o que acontece em [cerca de] 20 segundos e então com base no que aconteceu lá, você decide o que fazer fazer. EAS, trata-se mais de entender o que vai acontecer no futuro e decidir em tempo real com base em as saídas de energia de cada núcleo, e então há um monte de cálculos e coisas complicadas no fundo

Como modelos de energia e assim por diante para comprovar tudo.

Sim, acho que sim, é bastante complicado, não sei todos os detalhes, li vários documentos, mas é bastante complicado e não é apenas ligar um interruptor e tê-lo pronto para usar. Eu recebo muito essa pergunta: você pode implementar EAS no telefone XYZ. Minhas respostas são sempre “Não é girar um botão, não é assim, foi necessária uma equipe inteira de Googlers e caras de Linaro para implementar isso e você tem que mover as coisas, fazer coisas, testar coisas e isso é muito trabalho e meio que indo cego" e… sim. É difícil.

Então você tem que saber exatamente o que está fazendo, não é trabalho de um homem só?

Sim, você tem que saber o que está fazendo, qualquer um pode escolher os patches e mesclá-los, mas testar de verdade e ter certeza de que está funcionando corretamente e você precisaria de uma máquina adequada para detectar o uso de energia de cada componente e há um monte de tabelas no kernel onde você pode escrever a potência de cada núcleo, e com base nisso o código decidirá o que fazer fazer. É bastante complicado. Não creio que seja uma solução definitiva para todos os problemas, mas é definitivamente o melhor que temos neste momento.

Então você vê isso como uma melhoria?

Sim, claro, a quilômetros de quilômetros de distância. É uma melhoria definitiva em relação ao HMP ou qualquer outra arquitetura, porque se você conseguir entender o que vai acontecer no futuro, poderá reagir muito mais rápido. a qualquer solicitação ou o que quer que esteja acontecendo no aparelho, é por isso que o Google Pixel é tão rápido e suave, porque tudo está acontecendo quase em tempo real. Mover as frequências para cima e para baixo é a maneira mais fácil de atingir as expectativas de desempenho.

Eu acho que com isso, se houver mais adoção do EAS no futuro, como você vê isso afetando seu próprio desenvolvimento em relação aos kernels? Você ainda continuaria com o HMP ou optaria por modelos de energia já lançados? Por exemplo, no OnePlus 3, [desenvolvedores de ROM] estão reutilizando o modelo de energia do Google Pixel para EAS. Você poderia se ver fazendo algo assim?

Provavelmente não farei isso, se o dispositivo não for fornecido com EAS para começar, provavelmente não o implementarei de nenhuma forma ou forma porque como eu disse, é um processo bastante demorado e ninguém no XDA sabe melhor do que todos esses engenheiros, então estamos apenas tentando brincar de Deus, eu acho.

Falando sobre o futuro do Android e dos kernels, qual a sua opinião sobre o recente lançamento do Android Oreo? Você acha que as mudanças são boas? Você já olhou algum dos novos commits do kernel?

Não houve tantas mudanças no kernel do Nexus 6P e do Nexus 5X, apenas pequenas correções aqui e ali. No Google Pixel, eles estavam iterando na implementação do EAS e passaram algum tempo melhorando a seção do fichário, porque agora o fichário, junto com o Project Treble, é como dividir pacotes diferentes, então eles têm que passar por 50 ou 100 patches diferentes para melhorar o fichário e separá-lo em diferentes processos. Fora isso, foi apenas um trabalho normal para um grande lançamento. Quando há um lançamento de uma nova plataforma, você normalmente não mexe muito com o kernel, porque mexer com o kernel você realmente precisa de muito controle de qualidade, se às vezes você mudar uma coisa, você ouve que isso afeta algo em outra subsistema. Isso é o que eles costumam fazer, é por isso que você não tem um aumento na versão do kernel entre as atualizações da plataforma. É apenas muito trabalho. Normalmente não vale a pena, mas sim, era principalmente material de fichário, um pouco do agendador e as correções de segurança usuais. Passei por todos eles, mas nada realmente me chamou a atenção. Minha atenção só foi trazida para o fichário.

Ah, tudo bem, então apenas o material padrão, na verdade.

Sim, eles são bastante complicados e não me peçam detalhes!

Este é um tópico totalmente diferente, qual a sua opinião sobre F2FS contra ext4? Porque você verá que muitas pessoas dirão que o F2FS é instável e outras coisas e causa problemas,Só estou me perguntando qual é a sua opinião sobre isso.

Também não sei detalhes porque os sistemas de arquivos são bastante difíceis, há muitas partes móveis aqui e ali. Vou apenas citar um engenheiro do Google que diz que, com base em seus testes, o F2FS não funciona mais rápido que o ext4 e, ainda por cima, quando eles estavam testando coisas para o Google Pixel, F2FS não fornecia suporte para… Acho que era criptografia de bloco de arquivo, enquanto ext4 para suporte isto. Então, isso por si só significa - basta descartá-lo. Você tem que pensar em duas coisas: o ext4 está sendo trabalhado há cerca de 20 anos com muitos engenheiros muito inteligentes de diferentes empresas e eles sabem o que estão fazendo. O F2FS foi, se bem me lembro, implementado pela Samsung. É um sistema de arquivos bastante novo, então coisas tão complicadas como essas levam tempo para melhorar e iterar, conforme você podem ver no sistema de arquivos da Apple que acabou de ser lançado no iOS, e eles farão o mesmo para Mac SO. As coisas levam tempo, você precisa de uma equipe enorme para fazer essas coisas corretamente. Sou um grande defensor de “se está funcionando, não toque nele” e o que temos agora – está funcionando, e não acho que isso cause problemas de desempenho, então não vejo razão para mexa com isso.

Ah, tudo bem, isso é justo! A respeito Cartão SDCFS sendo mudado de FUSE? Qual seria sua opinião sobre isso?

Isso aconteceu porque o antigo sistema de arquivos FUSE foi uma das piores coisas que aconteceram no Android. O desempenho foi horrível, houve muitas chamadas de sistema entre o kernel e o espaço do usuário e agora com o SDCardFS isso é feito corretamente. É um sistema de arquivos normal lidar com isso, novamente não sei os detalhes porque é uma coisa muito complicada, mas o que eu fiz lido, visto e ouvido em diferentes podcasts da equipe do Android, basicamente corrigiu todos os problemas do antigo sistema. Isso foi horrível, o desempenho foi horrível.


Confira a Parte 2 clicando neste botão!