Experimente o Debian com o kernel GNU/Hurd em uma máquina virtual

O GNU/Hurd é um microkernel, com quase 30 anos de estrada.
Apesar deste tempo, ainda não chegou a uma versão estável — ou seja, apropriada para um ambiente de produção.
gnu logo black and white
Há discussões, Internet afora, sobre o porquê deste projeto ainda não ter lançado uma versão estável — o que me dispensa de fazer esta discussão aqui. 😉

É possível experimentar este kernel dentro de distribuições, como o Debian e o Arch.

O Debian, é uma das distribuições GNU/Linux que oferecem opções de kernel alternativo. Por exemplo, o kernel do FreeBSD é também uma opção viável para usar no Debian.
Neste post, vamos manter o foco na versão do Debian, que roda com o kernel Hurd.
Parto do pressuposto de que você já tem o QEMU/KVM instalados aí.
Caso contrário, instale-os:


sudo apt install qemu qemu-kvm

Você pode fazer o download de uma imagem do Debian GNU/hurd, com o comando wget:


wget http://people.debian.org/~sthibault/hurd-i386/debian-hurd.img.tar.gz

Esta imagem pode ser usada dentro do QEMU ou do KVM, para iniciar uma estação com o Hurd dentro dela.
Feito o download, extraia a imagem:


tar -xz < debian-hurd.img.tar.gz

Em seguida rode a imagem com o kvm:


modprobe kvm

kvm -m 1G -drive cache=writeback,file=$(echo debian-hurd-*.img)

gnu hurd terminal
Para se autenticar, use o username "root", com a senha em branco.

Sua máquina virtual Hurd tem suporte a Python, Perl e Bash, sem precisar adicionar nada.
Você também pode instalar novos softwares através do apt.
Mesmo sendo "um pouco" limitado, ainda dá para brincar bastante com o ambiente.
O Hurd é comumente usado por estudantes de computação, como forma de aprender melhor sobre como construir um kernel.
Quando quiser finalizar a máquina virtual, use o comando 'shutdown -h now'.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Referências

https://www.debian.org/ports/hurd/.
https://www.gnu.org/software/hurd/.

A evolução do procfs para o sysfs

O Linux herdou do UNIX a metodologia para permitir que programas se informassem sobre os processos em andamento no sistema diretamente das estruturas armazenadas na memória do kernel —— ou seja, lendo diretamente o /dev/mem e interpretando os dados “nus e crus” contidos ali.
Era assim que o comando ps funcionava inicialmente.
Com o tempo, parte da informação passou a ser disponibilizada através de system calls.
Expor dados do sistema diretamente ao espaço do usuário, via /dev/mem se provou uma metodologia ineficiente e insegura, com o tempo.
Um novo método foi introduzido para facilitar o acesso a aos dados estruturados do sistema para os aplicativos do user-space — que foi a criação do sistema de arquivos /proc.
Com o /proc, as interfaces e as estruturas (diretórios e arquivos) poderiam se manter, mesmo havendo mudanças nas camadas internas do kernel.
Este método é menos frágil que o anterior e aguenta melhor o aumento na escala de trabalho do sistema.
O /proc filesystem foi projetado originalmente para publicar informações de processos e alguns atributos chave de sistema, requisitados por comandos como o ‘ps’, o ‘top’ e o ‘free’, por exemplo.
Sendo mais fácil de usar e obter informações a partir deste meio – tanto pelo lado do kernel quanto do lado do user-space – ele se tornou um verdadeiro depósito de informações de todo o tipo, vindas do sistema.
Além disto, ganhou arquivos com permissão de gravação, a serem usados para ajustar configurações e controlar a operação do kernel ou algum de seus vários subsistemas.
Em resumo, o aumento no uso do /proc para implementar controle de interfaces contribuiu para reduzir sua eficiência.

Isto levou os desenvolvedores a implementar, no kernel 2.6, uma nova metodologia, através do sysfs.
O sysfs ou /sys filesystem já foi projetado para adicionar suporte à estrutura do /proc e prover uma maneira uniforme de expor as informações do sistema e pontos de controle (sistema ajustável e atributos de drivers) para o user-space a partir do kernel.
Agora o framework de drivers, dentro do kernel, cria automaticamente os diretórios sob /sys a cada vez que um driver é registrado, baseado em seu tipo e nos valores contidos nas suas estruturas de dados.
Isto significa que os drivers de um tipo particular terão todos os mesmos elementos exibidos via sysfs.
O Linux vive uma fase de transição. Hoje, muitas informações “legadas” do sistema ainda são acessíveis no /proc. Contudo, todos os novos bus e drivers precisam expor suas informações e pontos de controle via sysfs — é para lá que estamos caminhando.

Referências

http://unix.stackexchange.com/questions/4884/what-is-the-difference-between-procfs-and-sysfs.

Diferenças entre os sistemas de arquivos Ext4 e Btrfs

O sistema de arquivos Btrfs foi lançado no final de Julho de 2013 — é um sistema de arquivos relativamente novo, escrito do zero e que ainda está provando a que veio.
Surgiu da necessidade dos desenvolvedores de ter um sistema que incluísse pooling, snapshots e checksums, entre outros recursos — presentes também no ZFS.
ext4 vs btrfs

A pronúncia do nome, em inglês, é alvo de uma (bem leve) polêmica.
Pode ser Butter FS, Better FS ou B-Tree FS — sendo que, este último, está mais próximo do nome original.

Diferenças básicas entre o Ext4 e o Btrfs

Já que muitos usuários Linux, que desejam experimentar o novo sistema, vêm do Ext4, faz sentido enumerar alguns pontos que realçam as diferenças entre os dois:

  • O Ext4 ainda é a melhor escolha, no desktop do usuário comum — por ser mais rápido na transferência de arquivos e por ser mais maduro
  • O Btrfs tem vários recursos, que são novidades, tais com o Copy-on-Write, snapshots, checksums extensivos, scrubbing, duplicação dos dados, informações de autocorreção (self-healing) etc.
  • Os recursos de RAID-Z, presentes no ZFS, ainda são experimentais, neste momento, no Btrfs.
  • O Btrfs é fruto de um esforço patrocinado pela Oracle Corporation, Fujitsu e Red Hat — abaixo, há uma relação mais completa.
  • O Ext4 foi desenvolvido por Mingming Cao, Andreas Dilger, Alex Zhuravlev (Tomas), Dave Kleikamp, Theodore Ts’o, Eric Sandeen, Sam Naghshineh, entre outros.
  • O Btrfs tem suporte no Linux; O Ext4 tem suporte nativo no Linux, no FreeBSD e no Android.

O Btrfs faz parte da nova geração de sistemas de arquivos do Linux, projetada para tirar o máximo dos novos dispositivos e métodos de armazenamento, como as unidades SSD.
Se você está acostumado a usar LVM e RAID para gerenciar os seus dados, o Btrfs está pronto para substituí-los.
O snapshot é um conceito semelhante à captura de telas com o PrtScr.
O recurso consiste em fazer uma cópia em imagem de um subvolume Btrfs em um determinado ponto no tempo — o que é muito mais rápido do que um backup tradicional e não implica em parar o sistema.
Você pode tirar snapshots do seu sistema quando quiser — o mais comum é fazê-lo antes de instalar algum novo programa ou fazer alterações significativas.
Este recurso permite voltar “no tempo”, se algo der errado.

A lista atual de empresas que contribuem para o código do Btrfs, é a seguinte:

  • Facebook
  • Fujitsu
  • Fusion-IO
  • Intel
  • Linux Foundation
  • Netgear
  • Novell/SUSE
  • Oracle
  • Red Hat
  • STRATO AG

Quais são os recursos disponíveis no Btrfs

À medida em que as unidades de armazenamento vão aumentando suas capacidades e os SSD caminham para se tornar padrão de mercado, espera-se que os sistemas de arquivos façam sua escalada para atender às novas demandas que a tecnologia impõe.

No artigo Introdução ao sistema de arquivos Btrfs, explicamos, com maior riqueza de detalhes, os recursos presentes no sistema.

Até o momento, a capacidade do Btrfs, inclui os seguintes itens:

  • Capacidade de armazenamento de arquivos com tamanhos de até 2^64 byte == 16 EiB (Em função do VFS do Linux, o limite prático é 8 EiB)
  • Empacotamento de arquivos pequenos, para fazer uso eficiente do espaço.
  • Diretórios indexados, também para uso eficiente do espaço.
  • Alocação dinâmica de inodes.
  • Um snapshot pode ser alterável (writable) ou não (read-only).
  • Suporte a subvolumes — sistemas de arquivos raiz internos e separados.
  • Checksums sobre dados e metadados (crc32c)
  • Compressão por algoritmos zlib ou LZO.
  • Suporte a dispositivos múltiplos integrados.
  • Recursos de detecção de armazenamento em SSD ou flash — com suporte nativo a TRIM/Discard, com relatório de blocos livres para reuso.
  • Backup incremental eficiente.
  • Processo de limpeza (scrub) em background para encontrar e corrigir erros em arquivos com cópias redundantes.
  • Desfragmentação online.
  • Verificação do sistema de arquivos offline.
  • Conversão local de sistemas de arquivos Ext3 ou Ext4.
  • Dispositivos semente ou semeadores — Em inglês, são chamados seed devices.
    Refere-se a capacidade de criar sistemas de arquivos (apenas de leitura) que funcionam como moldes para criar outros sistemas de arquivos Btrfs.
  • Suporte a quota em subvolumes.
  • Relatórios de mudanças em subvolumes.
  • Espelhamento incremental eficiente de sistemas de arquivos.

Outros recursos estão em desenvolvimento para o sistema, o que inclui:

  • Checagem offline e mais rápida do sistema de arquivos.
  • Checagem online do sistema de arquivos.
  • Remoção e espelhamento no nível do objeto.
  • Algoritmos de checksum alternativos.
  • Deduplicação in-band (ocorre durante as gravações).
  • Adição de outros algoritmos de compressão: Snappy, LZ4.

Referências

https://help.ubuntu.com/community/btrfs.
https://btrfs.wiki.kernel.org/index.php/Main_Page.
http://www.differencebtw.com/difference-between-btrfs-and-ext4/.

Introdução ao sistema de arquivos BTRFS – parte 1

Neste artigo pretendo descrever algumas das capacidades básicas que descobri ao começar a usar e me familiarizar com o sistema de arquivos Btrfs, no meu laptop de trabalho, rodando o Debian 8.3 “Jessie”, com o kernel Linux 4.3 (instalado via backports).
Desde que você esteja usando um sistema operacional atualizado, todas as informações dadas neste texto são universais.

A pronúncia do nome, em inglês, é alvo de uma (bem leve) polêmica.
Pode ser Butter FS, Better FS ou B-Tree FS — sendo que, este último, está mais próximo de ter um significado técnico.

Esta é a primeira parte de 2 artigos voltados para iniciantes no sistema de arquivos Btrfs.
Neste, pretendo explorar os aspectos teóricos básicos, que possam ajudar a decidir se a tecnologia dispõe dos recursos que a tornam ideal para você.
Na segunda parte, pretendo introduzir alguns comandos administrativos básicos, voltados a quem deseja iniciar já o uso do sistema.
Sistema de arquivos Btrfs - logo

Alguns dos temas tratados superficialmente aqui, são descritos com mais profundidade nos links, encontrados no decorrer do texto — clique neles.

A proposta e a história do sistema de arquivos Btrfs

Por anos, os sistemas de arquivos da série Ext predominou nas principais distribuições GNU/Linux — passando pelas gerações do Ext2, Ext3 e, mais recentemente, Ext4.
Houve uma evolução significativa no hardware de armazenamento, o que inclui o aumento da capacidade de armazenamento e o surgimento da tecnologia das unidades flash.
Embora o Ext4 ainda esteja evoluindo, não há planos, até o momento, para lançamento de uma versão Ext5.
Se quiser entender melhor as diferenças entre o Ext4 e o Btrfs, clique aqui.
Atualmente, o desenvolvimento caminha na direção de outros sistemas de arquivos, como o ZFS, o Btrfs e o F2FS.
As equipes de desenvolvimento do Btrfs procuram dar respostas às necessidades crescentes de armazenamento de arquivos cada vez maiores, a sistemas “clusterizados” entre outros.
Entre as capacidades avançadas do Btrfs, citam-se:

  • Suporte a sistemas e arquivos grandes.
  • Oferece gestão integrada de múltiplos volumes e subvolumes.
  • Tem funcionalidades de RAID incorporadas.
  • Garante a segurança dos seus dados usando técnicas copy-on-write e de verificação de soma (checksumming).
  • Provê snapshots alteráveis.

Criado por Chris Mason, dentro da Oracle, a proposta inicial estava ligada a uma apresentação de Ohad Rodeh, sobre implementações B-tree que facilitassem o copy-on-write (COW)

Os snapshots têm várias utilidades: se recuperar de remoção acidental de arquivos, reverter um sistema corrompido a um estado em que ele estava bom, mineração de dados, backup eficiente e muito mais.
Clones ou writeable-snapshots são uma extensão do conceito de snapshot, em que ele pode ser alterado para incluir novos dados.
Um clone pode ser usado para criar um ponto de retorno seguro para quem deseja experimentar softwares novos no sistema.

Mason tem experiência prévia com o desenvolvimento do sistema de arquivos ReiserFS — armazenamento baseado em extensão, empacotamento de pequenos arquivos, armazenamento de dados e metadados em estruturas B-tree etc.
O Btrfs foi apresentado à comunidade Linux em 2007. A partir deste momento, os engenheiros da Oracle têm continuado a manter e desenvolver os novos recursos do sistema — em estreita colaboração com outros contribuidores da comunidade Linux, o que inclui engenheiros das distribuições (Red Hat, SuSE etc.) e outras companhias, como Dreamhost, Fujitsu, HP, IBM e Intel.
Atualmente, todas as grandes distribuições Linux dão-lhe suporte.
Chris Mason - Oracle - Btrfs File System

Explorando o Btrfs

A partir do momento em que comecei a fazer uso do Btrfs, na unidade SSD do meu laptop, comecei a descobrir uma série de funcionalidades contidas no sistema, que eu ainda não conhecia.
Algumas destas funcionalidades não se aplicam ao uso em notebooks ou desktop workstations, uma vez que são desenvolvidas para uso em sistemas de armazenamento em servidores de grande porte.
Outras são ótimas opções para se ter a mão em um pequeno computador de trabalho.
Vejamos algumas:

  1. Escalabilidade e gestão de volumes. É importante dizer que o Btrfs é um sistema de arquivos 64-bit, escalável e que pode abranger vários volumes para prover arquivos e sistemas de arquivos até 16 exabytes.
    Incluída a possibilidade de gestão de vários dispositivos de armazenamento subjacentes — similar ao tradicional LVM.
    Por exemplo, o Btrfs permite a um sistema de arquivos abarcar vários dispositivos e representados por um único endereço.
    Os dispositivos do sistema podem ser adicionados ou removidos enquanto este permanece online e disponível.

  2. Metodologia de escrita e acesso. O Btrfs armazena tipos de dados e aponta para informações dentro da unidade em uma estrutura B-tree.
    Diferente de outros sistemas de arquivos, não faz journaling de transações. Como resultado, sua escrita é feita uma única vez — o que remove limitações consequentes do espaço ocupado pelo journal e reduz desgaste causado por gravações repetitivas na mesma seção do disco rígido ou do SSD.
    A técnica copy-on-write garante que blocos e extensões não sejam sobrescritos.
    Atributos estendidos e ACLs limitam o acesso e a manipulação do conteúdo do sistema de arquivos por usuários e aplicações.
  3. Tunables ou possibilidades de ajustes.
    O Btrfs provê ajustes mínimos para proteger o sistema de mau uso ou de erros de configuração.
    Uma das opções interessantes de montagem de uma unidade Btrfs, é -o autodefrag .
    Este parâmetro ativa a auto desfragmentação do volume.
    Outra possibilidade é a desativação do COW, com o uso do parâmetro nocow, que pode ajudar a reduzir fragmentação dos arquivos no sistema — particularmente para arquivos que requeiram acesso sequencial, tais como os produzidos por bancos de dados e mídias para transmissão (streaming media).
    No modo nocow, blocos de arquivos são sobrescritos, tal como em qualquer outro sistema de arquivos tradicional.

Integridade de dados

O Btrfs tem recursos nativos para garantir a integridade de dados no volume.
Veja alguns:

  • Configurações redundantes. Suporta espelhamento de dispositivos e configurações RAID para aumentar chances de sobrevivência de dados e facilitar a recuperação de informações destruídas.
    Por padrão, ele espelha os metadados por entre 2 dispositivos e distribui os dados entre todos os dispositivos sob a camada do sistema de arquivos.
    Mesmo dentro de uma única unidade de armazenamento, os metadados são duplicados
  • Verificação de somas. Gera checksums para dados e metadados para preservá-los de corrompimento.
    Os checksums são verificados a cada leitura de blocos de dados do volume.
    Havendo detecção de erros, o sistema tenta obter ou criar uma cópia boa do bloco defeituoso de algum outro dispositivo espelho.
    Se encontrar uma cópia boa, ela será usada e o bloco ruim corrigido.
  • Isolamento de falhas e algoritmos de verificação de somas. O Btrfs provê isolamento de falhas através do armazenamento separado dos metadados dos dados dos usuários.
    Adicionalmente, provê proteção através dos CRCs.
    Os CRCs são armazenados em um B-tree, separado dos dados — para oferecer isolamento de possíveis falhas.
  • Tempo de reconstrução. Mason chama a atenção para o fato de que o Btrfs só reconstrói os blocos ativamente usados pelo sistema de arquivos.
    À medida em que a capacidade de armazenamento dos drives aumenta, esta característica constitui uma vantagem considerável sobre sistemas de arquivos tradicionais e mecanismos RAID de proteção.
    Nas abordagens tradicionais, o tempo de reconstrução de unidades de alta capacidade de armazenamento pode ser medido em dias — e durante este processo, a proteção do sistema estará suspensa.
  • Encriptação. Não há funcionalidade de criptografia embutida ainda.
    Um sistema de arquivos Btrfs pode ser criado sobre um subsistema de encriptação de discos dm_crypt e sob uma camada LUKS (Linux Unified Key Setup) — que dá suporte a uma boa variedade de padrões de criptografia.
    Esta configuração, contudo, desabilita algumas das capacidades e vantagens do sistema — tais como suporte avançado a dispositivos de bloco raw e detecção de unidades SSD.

Otimização de espaço

O Btrfs suporta algoritmos de compressão, já na montagem de um dispositivo — ou seja, após a criação de um volume ou subvolume, você pode ativar facilmente a compressão de dados a qualquer momento.
Este assunto é discutido com mais profundidade no artigo Como ativar a compressão de dados no Btrfs.
No atual estágio de desenvolvimento, o sistema tem suporte aos algoritmos de compressão LZO e zlib.
Se um arquivo não consegue atingir taxas de compressão decentes, ele é marcado como “não comprimível” e gravado sem o uso do recurso.
Existe a opção de montagem force-compression que, tal como o nome indica, aplica o recurso arbitrariamente.

Aprimoramento do desempenho

O Btrfs tem funcionalidades e suporte a dispositivos projetados para melhorar o desempenho do sistema de arquivos. Conheça algumas:

  1. Suporte a unidades de estado sólido (SSDs). As memórias flash, tais como os cartões de memória que usamos nos smartphones e nas câmeras (além dos pendrives USB), têm baixo custo de aquisição.
    São dispositivos não voláteis, cujo conteúdo pode ser alterado eletricamente.
    O uso de drives SSD tem aumentado em desktop workstations, notebooks e servidores. Tudo indica que este movimento se intensificará.
    Dispositivos de armazenamento, com tecnologia flash têm desempenho muito superior a dos drives mecânicos.
    O Btrfs é SSD-aware, ou seja, reconhece nativamente o ambiente flash, evita otimizações de busca desnecessárias e envia gravações agressivamente aos clusters — mesmo que sejam de arquivos não relacionados ao contexto.
    Este comportamento resulta em largas operações de escrita e taxas de transferência mais altas.
  2. Desfragmentação online. Ao longo dos anos, temos notado que unidades que experimentam grande rotatividade de arquivos, sofrem com uma crescente fragmentação, o que resulta em desempenho inferior ao que estão capacitadas a oferecer.
    O Btrfs tem a opção de montagem autodefrag, que habilita o helper de auto desfragmentação.
    Quando um bloco é copiado e gravado no disco, o helper marca os fragmentos e realiza o trabalho de desfragmentação em uma thread, executada em segundo plano.
    Esta capacidade pode beneficiar significantemente sistemas com cargas de trabalho de pequenos bancos de dados, caching de navegadores etc.

Como o Btrfs lida com subvolumes, snapshots e dispositivos seed

A característica de ser copy-on-write faz do Btrfs um sistema de arquivos capaz de prover recursos que facilitam replicação, migração, backup e restauração de informações.

  1. Subvolumes. Ponto fulcral da concepção do Btrfs, os subvolumes, são chamados B-trees. É onde se guardam arquivos e diretórios.
    Opcionalmente, os subvolumes podem ter quotas e são montados como se fossem discos.
  2. Snapshots. Na essência, são clones de um subvolume.
    Se deixada inalterada, uma snapshot representa uma cópia fiel do estado do subvolume no momento em que foi criada.
    Do que foi dito no parágrafo anterior, entenda-se que é possível alterar uma snapshot, de forma que são como clones que evoluem em relação a seus subvolumes.
    Pode ser criada quase instantaneamente e, virtualmente, não consome espaço adicional no disco, inicialmente — uma vez que se constitui de pequena quantidade de metadados.
    Este recurso é útil em várias situações — como manter cópias de versões anteriores de uma hierarquia de arquivos ou movê-las para outros sistemas, como cópias de segurança.
    Arquivos individuais podem também ser clonados com o comando cp -reflink, que tem o mesmo efeito sobre arquivos que os snapshots têm sobre volumes.
  3. Seed devices ou dispositivos semente. Este tipo de dispositivo provê uma fundação (não alterável) para criar ou constituir múltiplos outros sistemas de arquivos.
    Em outras palavras, um dispositivo pode ser usado como um sistema de arquivos template (um CD, contendo uma imagem, por exemplo).
    A partir deste dispositivo novos sistemas de arquivos, em outros dispositivos, podem ser criados (usando o copy-on-write).
    Este processo pode ser considerado uma outra forma de clonagem.
  4. Backup e recuperação de cópias de segurança. Não há suporte incorporado ao Btrfs para criar cópias de segurança.
    Neste caso, a melhor prática é criar um snapshot de um volume e usar utilitários tradicionais de backup.
    Para ajudar há o recurso btrfs subvolume find-new, que identifica os arquivos que sofreram alguma mudança em um dado subvolume.
    Testes mostram que ele é mais eficiente que varrer todo o sistema de arquivos com o comando find -mtime, para destacar arquivos modificados.
  5. Ferramenta de conversão de sistemas de arquivos Ext. Há suporte à conversão local de sistemas de arquivos Ext3 e Ext4.
    Os metadados originais dos sistemas antigos são mantidos em um snapshot, de forma que a conversão possa ser revertida, se necessário.
    Obviamente, se o sistema tiver passado por muitas alterações as possibilidades de reversão são limitadas.
    Quando tiver certeza de que não vai voltar atrás na conversão de um sistema Ext para Btrfs, remover o snapshot ajuda liberar espaço em disco.

Referências

https://wiki.debian.org/Btrfs.
https://btrfs.wiki.kernel.org/index.php/Glossary.
http://www.oracle.com/technetwork/articles/servers-storage-admin/gettingstarted-btrfs-1695246.html.

Como passar pelo upgrade do Android sem traumas

O processo de upgrade ou troca de versões de sistemas operacionais envolve uma série de arquivos, de vários tipos, que, geralmente, passa despercebido ao usuário.
No meu primeiro upgrade do Lollipop para o Marshmallow, em um dispositovo Motorola (agora, Lenovo) Moto G 3 tive alguns problemas (que considerei normais).
Neste texto vou mostrar como você pode evitar a maioria dos contratempos.
Antes disto, vamos falar sobre as possíveis causas de problemas.
marshmallow-2

Como é feito o upgrade

O que ocorre durante o processo de upgrade do Android é mais ou menos o que segue:

  • troca de bibliotecas — arquivos que contém, em muitos casos, funções que são comuns a vários programas no sistema.
  • troca de alguns aplicativos essenciais do sistema operacional, por versões mais novas e com mais recursos. Alguns podem até ser retirados definitivamente.
  • troca do kernel do sistema — este é o cerne do seu sistema operacional.

No universo do GNU/Linux (do qual o Android é descendente), as distribuições que fazem uso deste método são chamadas rolling releases.
Distribuições populares, como o Ubuntu e o Debian, também permitem esta forma de atualização.
Quem usa Windows, costuma Instalar um sistema operacional “por cima” do outro, no processo de upgrading — que não é a mesma coisa.
O fato é que estes métodos de atualização não são os mais adequados.
Ao final da atualização do Android, seus aplicativos preexistentes irão tentar interagir com as novas bibliotecas, com o novo kernel e tentar interagir com um novo sistema.
O que é que pode dar errado?
Obviamente, muita coisa pode deixar de funcionar adequadamente:

  • Bibliotecas e dependências que antes estavam lá… não estão mais ou mudaram de nome ou funcionam de forma diferente.
  • Aplicativos e arquivos de configuração do sistema podem ter sido alterados e seus apps atuais não vão saber lidar com esta nova situação.
  • A atualização do kernel sempre traz novos recursos — mas também pode remover recursos anteriores que “ninguém” usa mais… só o seu aplicativo usa!

O método adequado de se atualizar um sistema operacional

Para sistemas operacionais comuns (desktop), o que se recomenda é fazer backup de todos os seus arquivos (videos, fotos, músicas, textos etc.), formatar suas mídias de armazenamento (disco rígido ou drive SSD) e, então, fazer uma nova instalação.
Dá um pouco de trabalho… mas dá menos problemas.
Lollipop-long-2
No caso do Android, comumente a atualização “aparece” e, o máximo que se pode fazer é tocar no botão “Ainda não” — se você puder, suspenda portanto a atualização.
Se você, desavisadamente, seguiu em frente com a atualização, não tem importância.
Mas procure seguir os passos:

  1. Faça backup de todos os seus arquivos e anote os apps que são importantes para você.
  2. Faça um reset de fábrica no seu aparelho e aguarde o fim do processo.
  3. Finalizado o processo, verifique se a versão instalada do Android é a nova. Se não for, faça a atualização.
  4. Agora, sim, traga de volta seus arquivos e reinstale os seus aplicativos

Reinstalar os aplicativos é importante.
O Google Play, provavelmente disponibilizará uma versão de seus apps favoritos específica para o novo sistema operacional (isto depende dos desenvolvedores do seu aplicativo, não do Google).
kit-kat-bolso-2
Se alguns de seus aplicativos estiverem funcionando mal, depois da atualização do Android, dê feedback do problema aos desenvolvedores, aguarde que lancem alguma atualização ou o substitua por outro equivalente.