O que torna os “Snaps” do Ubuntu Core melhores do que os pacotes normais para dispositivos IoT?

10

O Ubuntu Core , a versão mais recente do Ubuntu para dispositivos IoT da Canonical, diz que seu novo gerenciador de pacotes Snappy é ideal para a Internet das Coisas, e a Wikipedia diz que:

O empacotamento rápido foi implantado na Internet de diversas coisas, desde produtos voltados ao consumidor até gateways de gerenciamento de dispositivos corporativos

No entanto, os gerenciadores de pacotes no Linux não são novidade de forma alguma - o APT existe desde meados de 1998 - então por que o Snappy é considerado muito melhor pela Canonical para a IoT? As práticas de segurança de outros gerenciadores de pacotes são inadequadas para a IoT ou há outro fator que é mais importante?

Aurora0001
fonte

Respostas:

15

Até onde eu sei, existem duas vantagens: aqui estão elas:

Primeiro: os pacotes Snap podem trazer suas próprias dependências com eles. Portanto, não há inferno de dependência.

Segundo: pacotes de snap podem ser instalados apenas para um usuário. Portanto, mais controle sobre quem está executando esse software.

Algumas citações (incluindo links de origem):

de https://insights.ubuntu.com

Os snaps são isolados um do outro para garantir a segurança dos dados e podem ser atualizados ou revertidos automaticamente, tornando-os perfeitos para dispositivos conectados. Vários fornecedores lançaram dispositivos de IoT rápidos, permitindo uma nova classe de dispositivo de "borda inteligente" com a loja de aplicativos da IoT. Os dispositivos ágeis recebem atualizações automáticas para o sistema operacional base, juntamente com atualizações para os aplicativos instalados no dispositivo.

( fonte )

de https://developer.ubuntu.com

O Ubuntu Core é, sob muitos aspectos, simplesmente outro sabor do Ubuntu (por exemplo, o sistema de arquivos raiz é construído a partir de pacotes do mesmo arquivo Ubuntu que outros sabores), mas difere em muitos aspectos importantes:

  • O sistema base é um sistema muito mínimo que consiste em três partes diferentes: o kernel, o gadget e o SO, que são empacotados e entregues usando o novo formato de empacotamento instantâneo
  • Há uma separação limpa entre o sistema base e os aplicativos instalados no sistema, bem como uma separação limpa entre os aplicativos instalados
  • O Ubuntu Core substitui 'apt' pelo novo comando 'snap' e os aplicativos são empacotados e entregues como 'snaps'
  • O sistema de arquivos raiz é somente leitura
  • Os desenvolvedores podem atualizar aplicativos independentemente do sistema operacional
  • Aplicativos executados em uma caixa de proteção de segurança por padrão
  • O Ubuntu Core é centralizado em aplicativos, em vez de centralizado em arquivo de distribuição

As qualidades acima visam abordar muitos dos desafios inerentes ao modelo de distribuição tradicional do Linux e aumentar significativamente a confiabilidade, previsibilidade e segurança.

( fonte )

de http://snapcraft.io/

Um snap é um arquivo zip sofisticado que contém um aplicativo, juntamente com suas dependências, e uma descrição de como ele deve ser executado com segurança no seu sistema, especialmente as diferentes maneiras pelas quais ele deve conversar com outro software.

Os snaps mais importantes são projetados para serem aplicativos seguros, em caixa de areia e em contêineres isolados do sistema subjacente e de outros aplicativos. Os snaps permitem a instalação segura de aplicativos de qualquer fornecedor em dispositivos e desktops de missão crítica.

( fonte )

Videonauth
fonte
2
Você pode adicionar algumas fontes para aqueles que não estão familiarizados com os pacotes de snap para ajudá-los a afirmar a validade de sua resposta?
Helmar
11
Claro, deixe-me desenterrá-los :)
Videonauth
4
@Helmar, você vai :) :)
Videonauth
"Primeiro: os pacotes Snap podem trazer suas próprias dependências com eles. Portanto, nenhuma dependência é um inferno."
Tele
"Primeiro: os pacotes Snap podem trazer suas próprias dependências com eles. Portanto, nenhuma dependência é um inferno." Desculpe, suas respostas parecem publicidade, não respostas reais. O que acontece se um pacote depende do Qt 5.3.2, outro depende do Qt 5.9.1, qual será instalado. Outro problema, se você escrever um snap para trabalhar com as bibliotecas Qt, ele empacotará todas as bibliotecas Qt5 e seu snap será de 260 MB e será instalado novamente. Por um executável de 50kb? Isto não está claro. E, especialmente, não está claro por que isso é uma vantagem sem nenhuma dúvida. Porque canônico diz isso?
Tele