Linux e código aberto

Conheça o Linux antes de digitar seu primeiro comando. Aprenda de onde ele veio, o que o núcleo (kernel) faz e onde o Linux é executado, de celulares e roteadores a servidores em nuvem e supercomputadores. Compare distribuições e seus modelos de lançamento e suporte, compreenda o software livre e de código aberto, as licenças copyleft e permissivas e o Creative Commons, e veja como as comunidades de código aberto trabalham e ganham dinheiro. Conheça os principais aplicativos de código aberto, configure seu próprio sistema Linux para praticar em uma máquina virtual ou com o Subsistema do Windows para Linux e mantenha-o seguro desde o primeiro dia.

BásicoAula 1 de 7 do curso Curso de Fundamentos de Linux

O que você vai aprender

  1. Traçar a trajetória do Linux desde o Unix e o Projeto GNU até hoje, explicar como o kernel e o espaço de usuário formam juntos um sistema operacional e reconhecer os muitos tipos de computadores que executam Linux.
    • Traçar a história do Unix, do GNU e do Linux
      Acompanhar o percurso do Unix no Bell Labs e do Projeto GNU até o kernel de Linus Torvalds e explicar por que o sistema é chamado de Linux ou GNU/Linux.
    • Explicar o kernel, o espaço de usuário e as versões do kernel
      Descrever o que o kernel faz, o que pertence ao espaço de usuário, como as partes formam um sistema operacional funcional e como as versões e os lançamentos do kernel são numerados e mantidos.
    • Reconhecer os computadores e as funções em que o Linux é utilizado
      Identificar o Linux em computadores de uso pessoal, servidores, máquinas virtuais, instâncias na nuvem, contêineres, dispositivos embarcados, celulares e supercomputadores e descrever as funções de cliente e servidor.
  2. Explicar o que é uma distribuição, reconhecer as principais famílias de distribuições e como elas fornecem software, comparar modelos de lançamento e ciclos de vida do suporte e escolher entre Linux, Windows e macOS e entre distribuições para uma determinada necessidade.
    • Reconhecer distribuições e as principais famílias de distribuições
      Explicar o que uma distribuição Linux contém e quem a produz e identificar as famílias Debian, Enterprise Linux e SUSE, o Alpine Linux e o Arch Linux.
    • Explicar como as distribuições fornecem software em pacotes
      Descrever pacotes de software, repositórios, dependências e as principais ferramentas de pacotes e compará-los com formatos universais de pacotes e downloads de sites.
    • Comparar modelos de lançamento e ciclos de vida do suporte
      Distinguir lançamentos de versões fixas e atualização contínua, LTS, ramificações estáveis, de teste e instáveis e versões alfa e beta, e calcular por quanto tempo uma versão recebe suporte.
    • Comparar o Linux com o Windows e o macOS e escolher um sistema
      Descrever as principais diferenças entre Linux, Windows e macOS, explicar como softwares de um sistema podem ser executados em outro e escolher um sistema operacional e uma distribuição para uma determinada situação.
  3. Distinguir software livre e de código aberto de software proprietário, explicar o que as licenças copyleft e permissivas exigem e aplicar licenças Creative Commons a conteúdo aberto.
    • Distinguir software livre, de código aberto e proprietário
      Definir software proprietário, software proprietário gratuito, software livre e software de código aberto, comparar as definições da FSF e da OSI e explicar como as escolhas de software afetam a autonomia e a soberania digital.
    • Comparar licenças de software copyleft e permissivas
      Explicar o que as licenças GPL, LGPL, AGPL, MPL, MIT, BSD e Apache permitem e exigem, quando suas condições se aplicam e como as licenças podem ser combinadas.
    • Usar conteúdo aberto sob licenças Creative Commons
      Explicar conteúdo aberto, os quatro elementos das licenças Creative Commons, as seis licenças e o CC0, e decidir se e como uma obra pode ser reutilizada com a atribuição correta.
  4. Explicar as funções, a governança e o fluxo de trabalho diário de projetos de código aberto, como participar de um deles e os modelos de negócio e financiamentos que mantêm o desenvolvimento de software de código aberto.
    • Explicar como as comunidades de código aberto se organizam e como participar delas
      Descrever funções dos colaboradores, modelos de governança, projetos de origem e derivados, bifurcações e as ferramentas e regras de convivência para contribuir, além de escrever um relato de erro útil.
    • Explicar os modelos de negócio e o financiamento do código aberto
      Descrever como empresas e projetos ganham dinheiro com software de código aberto, por que alguns fornecedores mudaram licenças e como as comunidades responderam.
  5. Nomear programas importantes de código aberto para computadores de uso pessoal, web, servidores e desenvolvimento, descrever sua finalidade principal e seus recursos essenciais e associar programas a tarefas.
    • Reconhecer aplicativos de código aberto para computadores de uso pessoal
      Descrever a finalidade e os principais recursos dos principais programas de código aberto para escritório, internet, gráficos, multimídia, edição, segurança e dados.
    • Reconhecer plataformas de código aberto para web, colaboração e desenvolvimento
      Descrever aplicativos web que podem ser auto-hospedados para arquivos, reuniões e aprendizagem, além das ferramentas de controle de versão e hospedagem de código usadas por desenvolvedores.
    • Reconhecer software de servidor e linguagens de programação de código aberto
      Descrever os principais servidores de código aberto para web, bancos de dados e compartilhamento de arquivos, a pilha LAMP e a finalidade de linguagens de programação comuns e como seus programas são executados.
  6. Escolher uma configuração de prática adequada ao seu computador, instalar o Linux em uma máquina virtual ou por meio do WSL e proteger o sistema, suas contas e seus dados desde o início.
    • Escolher uma forma de executar o Linux para praticar
      Comparar máquinas virtuais, WSL, instâncias na nuvem, sistemas executáveis sem instalação por USB, inicialização dupla e computadores dedicados, e escolher uma imagem de sistema compatível com o processador do computador.
    • Instalar o Linux em uma máquina virtual
      Baixar e verificar uma imagem de instalação, criar uma máquina virtual com recursos adequados, executar o instalador e preparar o novo sistema com atualizações, ferramentas para o sistema convidado e um instantâneo.
    • Configurar o Linux com o Subsistema do Windows para Linux
      Instalar o WSL e uma distribuição no Windows, gerenciar distribuições e versões do WSL, trabalhar com arquivos entre Windows e Linux e conhecer as diferenças entre o WSL e uma instalação completa.
    • Proteger seu sistema de prática, suas contas e seus dados
      Usar senhas fortes, gerenciadores de senhas, autenticação multifator e chaves de acesso, trabalhar sem direitos permanentes de administrador, manter sistemas atualizados e proteger dados em trânsito, em repouso e em dispositivos USB.

Guia de estudo de Linux e código aberto

6 capítulos

1

Explicar o que é Linux, sua origem e onde é executado

Linux é um kernel, uma família de sistemas operacionais de uso cotidiano e a base de muitos dispositivos que você raramente vê. Sua história conecta ideias do Unix às ferramentas GNU e ao kernel de Torvalds. Compreender essas partes ajuda a explicar por que um computador de uso pessoal, um celular Android e um servidor em nuvem podem usar Linux e ainda assim ter aparências diferentes. Acompanhe como os programas acessam o hardware e depois distinga os ambientes e as funções de cliente ou servidor em que isso acontece.

1.1 Acompanhe o Unix, o GNU e o Linux ao longo do tempo

O Linux surgiu de dois esforços separados: um forneceu um kernel, e o outro forneceu grande parte do software ao seu redor. O Unix forneceu as ideias de projeto anteriores. Distinguir essas contribuições facilita a compreensão dos nomes Linux e GNU/Linux.

O Unix fornece o projeto

Ken Thompson e Dennis Ritchie desenvolveram o Unix no Bell Labs da AT&T a partir de 1969. Grande parte dele foi reescrita em C em 1973, facilitando sua adaptação a diferentes hardwares. O Unix permitia que vários usuários trabalhassem e vários programas fossem executados ao mesmo tempo. Suas ideias duradouras incluem uma única árvore de diretórios com raiz em /, tratar muitos recursos como arquivos e combinar pequenos programas que fazem uma tarefa cada.

O Unix evoluiu em várias ramificações. Sistemas comerciais incluíam IBM AIX, HP-UX e Sun Solaris. A ramificação BSD de Berkeley deu origem ao FreeBSD, OpenBSD e NetBSD. O macOS da Apple também tem raízes no BSD e foi certificado como UNIX. Uma interface semelhante não faz de todos esses sistemas Linux.

O GNU fornece grande parte do sistema

Richard Stallman anunciou o Projeto GNU em 1983 para construir um sistema operacional livre semelhante ao Unix. GNU significa “GNU não é Unix”. Ele fundou a Fundação para o Software Livre em 1985. No início da década de 1990, o GNU havia produzido o compilador GCC, uma biblioteca C, o Bash, utilitários básicos e editores. O kernel planejado, GNU Hurd, não estava pronto para o uso cotidiano.

Um compilador transforma o código-fonte de um programa em código executável. Um shell como o Bash aceita instruções de um usuário. Essas ferramentas tornaram o GNU útil, mas ainda precisavam de um kernel para gerenciar o hardware do computador.

O Linux preenche a lacuna do kernel

Em 1991, Linus Torvalds, estudante da Universidade de Helsinque, começou um kernel para seu PC com Intel 386. O MINIX, sistema educacional semelhante ao Unix de Andrew Tanenbaum, ajudou a inspirar o projeto. Torvalds o anunciou em 25 de agosto de 1991; a versão 0.01 veio em setembro. O Linux 1.0 chegou em março de 1994.

A primeira licença proibia cobrar pela redistribuição, inclusive taxas de manuseio. O Linux 0.12 passou para a GNU GPL em 1992. Isso permitiu que voluntários e empresas o redistribuíssem sob as condições da GPL. O kernel permanece sob a versão 2 da GPL.

As distribuições reuniram o kernel e o espaço de usuário em sistemas instaláveis. Slackware e Debian começaram em 1993; o Red Hat Linux veio em 1994–1995. Marcos posteriores incluem o nome código aberto e a OSI em 1998, o Ubuntu em 2004, o Git em 2005, a Linux Foundation em 2007 e o primeiro celular Android em 2008. Tux, o pinguim mascote, surgiu em 1996.

Entenda os nomes com precisão

A rigor, Linux é o nome do kernel. No uso cotidiano, também se refere a um sistema operacional completo. GNU/Linux dá crédito às ferramentas GNU combinadas com esse kernel; o Debian usa esse nome. O Android usa um kernel Linux com um espaço de usuário diferente, por isso GNU/Linux não é seu nome.

Coloque os eventos centrais em ordem: Unix em 1969, GNU em 1983, Linux em 1991 e a mudança para a GPL em 1992. O GNU começou antes de o Linux existir. O Linux é semelhante ao Unix porque segue muitas ideias e padrões do Unix, inclusive POSIX; ele foi escrito de forma independente, não lançado como uma ramificação do código original do Unix.

Principais conclusões

  • O Unix forneceu ideias de projeto que o Linux segue.
  • As ferramentas GNU e o kernel Linux foram contribuições separadas para um sistema operacional utilizável.
  • O Linux começou em 1991 e adotou a GPL em 1992.
  • Linux é o nome do kernel; GNU/Linux nomeia sistemas que o combinam com o espaço de usuário GNU.
  • O Linux é semelhante ao Unix; não é uma ramificação do código original do Unix.

1.2 Veja o que o kernel e o espaço de usuário fazem

Uma área de trabalho Linux é um conjunto de partes que cooperam. O kernel gerencia o acesso à máquina, enquanto programas fora dele fornecem as ferramentas e interfaces que você usa. Uma versão do kernel informa sobre uma parte do sistema, não sobre a versão de cada aplicativo.

O kernel gerencia o hardware compartilhado

O carregador de inicialização carrega o kernel na memória ao iniciar o sistema. O kernel permanece ativo até o desligamento. Ele compartilha o tempo do processador e a memória entre programas, cuida das redes e dos sistemas de arquivos, aplica permissões e se comunica com dispositivos por meio de drivers.

O kernel é executado no espaço do kernel, com acesso privilegiado ao hardware. Aplicativos comuns são executados no espaço de usuário, com permissões limitadas. Uma chamada de sistema é uma solicitação de um programa para um serviço do kernel, como a leitura de um arquivo. Uma falha em um aplicativo comum geralmente afeta esse aplicativo; uma falha grave no kernel pode parar toda a máquina.

O Linux tem um kernel monolítico: drivers, rede e sistemas de arquivos são executados dentro dele. Muitos drivers são módulos carregáveis. O kernel pode carregar um módulo adequado quando um hardware aparece, sem recompilar todo o sistema operacional.

O espaço de usuário fornece as ferramentas de trabalho do sistema

O espaço de usuário inclui o sistema que inicia serviços, bibliotecas, utilitários, shells, software gráfico e aplicativos. Exemplos comuns incluem systemd, a biblioteca C glibc, GNU coreutils, Bash, Wayland e ambientes de área de trabalho como GNOME ou KDE Plasma. Sistemas pequenos podem usar musl e BusyBox em vez de glibc e dos utilitários GNU.

Suponha que você abra um desenho salvo em um aplicativo. Primeiro, o aplicativo solicita o arquivo por meio de uma chamada de sistema. Em seguida, o kernel verifica os direitos de acesso e usa código de sistema de arquivos e um driver de armazenamento para recuperar seus bytes. O aplicativo então interpreta esses bytes e desenha a imagem. Seus menus e ferramentas de edição pertencem ao espaço de usuário.

Mudar do GNOME para o KDE Plasma altera sua experiência na área de trabalho sem exigir outro tipo de kernel. Por outro lado, atualizar o kernel não precisa alterar a disposição da área de trabalho.

Interprete corretamente os números de versão e o suporte

Em 7.2.12, 7.2 identifica a série de lançamento do kernel e 12 é sua décima segunda atualização estável. Um primeiro número maior não indica automaticamente uma grande reformulação: a passagem de 6.19 para 7.0 em 2026 seguiu a prática de reiniciar um número secundário crescente.

O desenvolvimento da linha principal começa com uma janela de integração de cerca de duas semanas para novos recursos. Versões candidatas a lançamento semanais testam e estabilizam o trabalho em seguida. Um lançamento normalmente chega a cada 9–10 semanas. Depois, os mantenedores da versão estável aplicam correções. Kernels com manutenção de longo prazo selecionados recebem correções importantes por anos; as projeções do kernel.org de outubro de 2026 listam as versões 6.12 e 6.18 até dezembro de 2028.

As distribuições compilam seus próprios pacotes de kernel e aplicam correções a eles. Uma sequência como 6.8.0-45-generic inclui informações da compilação do Ubuntu após o hífen. O Ubuntu 24.04 originalmente usava o kernel 6.8; o Ubuntu 26.04 usa o 7.0. Um número de base mais antigo, por si só, não mostra se o kernel de uma distribuição com suporte recebeu correções. Verifique seu estado de manutenção e suas atualizações.

O desenvolvimento do kernel é um trabalho compartilhado. Mantenedores de subsistemas revisam alterações propostas para suas áreas, e Torvalds integra o trabalho aceito à linha principal. Muitos colaboradores são pagos por empresas de hardware, nuvem e software.

Principais conclusões

  • O kernel gerencia hardware, recursos e regras de acesso.
  • Aplicativos solicitam serviços do kernel por meio de chamadas de sistema.
  • A área de trabalho e os aplicativos são componentes do espaço de usuário.
  • As distribuições mantêm suas próprias compilações do kernel; o número de base, por si só, não mostra o estado das correções.

1.3 Reconheça o Linux em dispositivos e serviços

O Linux frequentemente funciona por trás de uma tela que nunca mostra seu nome. Um computador de uso pessoal, um celular, um roteador e um servidor em nuvem podem usar o kernel Linux e apresentar interfaces muito diferentes. Identifique tanto o tipo de ambiente quanto a função que ele desempenha.

Cliente e servidor descrevem funções

Um servidor fornece um serviço, como páginas web, arquivos ou um banco de dados. Um cliente solicita esse serviço. Essas palavras podem descrever programas ou computadores. Um servidor web Linux atua como cliente de banco de dados quando solicita informações a um servidor de banco de dados separado. A mesma máquina pode, portanto, desempenhar ambas as funções.

Sistemas Linux para computadores de uso pessoal incluem Ubuntu, Fedora, Debian e Linux Mint. ChromeOS e SteamOS também usam o kernel Linux. O Linux é especialmente comum em hospedagem web, bancos de dados, infraestrutura de nuvem e outros serviços de internet, embora Windows e macOS tenham maior participação em computadores de uso pessoal.

Máquinas virtuais e contêineres são diferentes

Um hipervisor fornece a uma máquina virtual processadores virtuais, memória, armazenamento e rede. Cada VM executa seu próprio sistema operacional e kernel. O KVM acrescenta recursos de virtualização ao Linux e é usado por muitas plataformas de nuvem.

Uma instância na nuvem é uma VM alugada, iniciada a partir de uma imagem de sistema operacional. Você seleciona recursos e uma região e depois se conecta pela rede, normalmente por SSH. Instâncias em execução podem gerar cobranças.

Um contêiner empacota um aplicativo com seus arquivos e bibliotecas de apoio. Contêineres no mesmo hospedeiro compartilham seu kernel, por isso geralmente iniciam mais rápido e usam menos recursos que VMs completas. Um contêiner Linux precisa de um kernel Linux. No Windows ou no macOS, o software de contêineres normalmente fornece um por meio de uma pequena VM Linux. Ter um espaço de usuário com aparência de Linux dentro de um contêiner não significa que esse contêiner tenha um kernel separado.

Dispositivos e computadores de grande porte também usam Linux

Sistemas embarcados são computadores integrados a um dispositivo para uma tarefa específica. Exemplos incluem roteadores, smart TVs, controladores industriais e sistemas de entretenimento de veículos. Muitos usam processadores ARM e um pequeno espaço de usuário, como o BusyBox. Um Raspberry Pi pode, por sua vez, executar uma distribuição completa, o Raspberry Pi OS.

O Android combina um kernel Linux modificado com seu próprio espaço de usuário, incluindo Bionic e Android Runtime. Aplicativos Android não são aplicativos comuns da área de trabalho Linux. Na computação de alto desempenho, agrupamentos dividem grandes cálculos entre muitas máquinas. Todos os sistemas da lista TOP500 usam um sistema operacional baseado em Linux desde novembro de 2017.

Gerenciamento de muitas máquinas

Administradores usam ferramentas de gerenciamento de configuração, como Ansible, Puppet, Chef ou Salt, para descrever um estado desejado do sistema e aplicá-lo repetidamente. Isso ajuda a manter software instalado, configurações e serviços consistentes em muitas máquinas.

As configurações do Linux frequentemente ficam em arquivos de texto. O nano mostra atalhos de teclado comuns na tela. O vi e o Vim separam a entrada de texto das ações de comando por meio de modos. Reconhecer esses editores ajuda a entender por que um servidor pode ser gerenciado sem uma área de trabalho gráfica.

Considere um quiosque de museu que carrega páginas de uma VM Linux alugada. O quiosque é um cliente; a VM alugada é uma instância na nuvem atuando como servidor. Se esse servidor executar vários aplicativos em contêineres, esses contêineres compartilharão seu kernel Linux. Um controlador de tela com Linux dentro do quiosque é um uso embarcado, independentemente de os visitantes verem uma área de trabalho.

Principais conclusões

  • Cliente e servidor são funções; uma máquina pode desempenhar ambas.
  • Uma VM tem seu próprio kernel, enquanto contêineres compartilham o kernel do hospedeiro.
  • Instâncias na nuvem são VMs alugadas e acessadas por uma rede.
  • O Linux é executado em computadores de uso pessoal, dispositivos embarcados, celulares Android e agrupamentos de HPC.
  • O gerenciamento de configuração aplica configurações de sistema de forma repetível.
  • nano e vi/Vim são editores de texto comumente encontrados no Linux.
2

Comparar distribuições Linux e escolher uma para uma finalidade

Uma distribuição torna o Linux instalável e fácil de manter ao escolher pacotes, configurações, ferramentas e políticas de atualização. Distribuições relacionadas compartilham convenções úteis, mas seus prazos de suporte e sua compatibilidade ainda diferem. Aprenda a reconhecer as principais famílias, acompanhe como o software é fornecido e compare versões fixas, de atualização contínua e com suporte prolongado. Depois, use as necessidades de hardware, aplicativos e manutenção para fazer uma escolha prática de sistema.

2.1 Reconheça as famílias de distribuições

Uma distribuição transforma o kernel Linux em um sistema que você pode instalar e manter. Ela reúne ferramentas, bibliotecas, pacotes, um instalador, configurações padrão e um serviço de atualização. Algumas distribuições são projetos comunitários; outras são mantidas por empresas.

Acompanhe as relações entre famílias

Uma distribuição derivada parte de outra e a modifica. O Ubuntu é baseado no Debian, e a edição principal do Linux Mint é baseada no Ubuntu. Sistemas relacionados frequentemente compartilham formatos e ferramentas de pacotes. A relação entre eles ajuda você a reconhecer softwares e instruções adequados.

Família ou distribuiçãoFerramentas de pacotesExemplos e foco
Baseada em Debiandpkg, apt; .debDebian, Ubuntu, Linux Mint, Raspberry Pi OS
Enterprise Linuxrpm, dnf; .rpmFedora, CentOS Stream, RHEL, AlmaLinux, Rocky Linux
SUSErpm, zypper; .rpmSUSE Linux Enterprise, openSUSE Leap, Tumbleweed
Alpineapk; .apkSistemas pequenos e imagens de contêineres
ArchpacmanUm sistema de atualização contínua configurado pelo usuário

O Debian é um projeto de voluntários desde 1993 e segue um Contrato Social escrito. A Canonical produz o Ubuntu. O Raspberry Pi OS é baseado no Debian e adaptado aos computadores Raspberry Pi. Uma base compartilhada não torna essas distribuições idênticas: padrões, cronogramas, suporte e versões de pacotes podem diferir.

Entenda a sequência do Enterprise Linux

O Fedora introduz novas tecnologias rapidamente. Uma futura versão principal do RHEL é criada a partir do Fedora. O CentOS Stream desenvolve alterações antes do próximo lançamento secundário do RHEL. O RHEL fornece uma plataforma comercial com suporte por assinatura. AlmaLinux e Rocky Linux fornecem sistemas comunitários gratuitos projetados para compatibilidade com o RHEL.

O CentOS Stream é diferente do CentOS Linux, uma recompilação que chegou ao fim. O CentOS Linux 7, sua última versão com suporte, chegou ao fim do ciclo de vida em junho de 2024. Escolher um nome familiar sem verificar sua função atual pode levar à escolha do sistema errado.

Reconheça outras opções

O SUSE Linux Enterprise é comercial. O openSUSE Leap fornece uma versão comunitária estável ligada aos códigos-fonte corporativos; o Tumbleweed é atualizado continuamente. Ambos usam zypper, apesar de compartilharem o formato RPM com a família Enterprise Linux.

O Alpine combina musl e BusyBox para manter sua base pequena. Ele tem ramificações estáveis numeradas e uma ramificação de desenvolvimento, edge. Ambas têm repositórios main e community; a edge também tem testing. O Arch é uma distribuição de atualização contínua configurada pelo usuário, frequentemente escolhida por usuários experientes.

Use corretamente a pista da família

Suponha que uma instrução mencione dnf e um pacote .rpm. Isso aponta para o Fedora ou o Enterprise Linux. Uma instrução que usa apt e um pacote .deb aponta para sistemas baseados em Debian. Um RPM, por si só, não distingue o SUSE do Fedora, pois ambos usam esse formato.

Depois, verifique a distribuição, a versão e a arquitetura exatas. Um pacote construído para uma versão pode depender de versões de bibliotecas ausentes em outra. Muitos programas estão disponíveis em diferentes famílias Linux, mas um único pacote baixado não é um instalador universal para Linux.

Principais conclusões

  • Uma distribuição reúne e mantém um sistema completo em torno do kernel Linux.
  • Famílias de distribuições geralmente compartilham uma base, um formato de pacotes e ferramentas.
  • Fedora, CentOS Stream e RHEL ocupam posições diferentes no desenvolvimento.
  • O RPM é usado tanto pelo Enterprise Linux quanto pelo SUSE; suas ferramentas de nível mais alto são diferentes.
  • Escolha um pacote para a distribuição, a versão e a arquitetura exatas.

2.2 Entenda pacotes, repositórios e atualizações

O software Linux normalmente é fornecido por meio de um sistema de pacotes. Ele acompanha o que um programa precisa, onde seus arquivos devem ficar e como deve ser atualizado. Isso elimina a necessidade de encontrar um instalador separado em um site para cada aplicativo.

Um pacote contém arquivos e instruções

Um pacote de software é um arquivo de armazenamento que contém arquivos do programa e metadados. Os metadados descrevem seu nome, versão, finalidade, pacotes necessários e ações de instalação ou remoção. Formatos comuns incluem .deb, .rpm e o .apk do Alpine. Pacotes Alpine e aplicativos Android usam a mesma extensão, mas são formatos diferentes.

Uma dependência é outro pacote de que um programa precisa. Um aplicativo gráfico pode exigir uma biblioteca de imagens. Se vários aplicativos compartilharem essa biblioteca, o sistema de pacotes poderá manter uma cópia compartilhada e aplicar correções de forma centralizada.

Um repositório é uma coleção de pacotes preparados para uma distribuição e uma versão. O gerenciador de pacotes verifica assinaturas criptográficas para conferir as informações e o conteúdo confiáveis dos pacotes. Isso ajuda a rejeitar arquivos alterados no caminho até sua máquina. A confiança ainda depende da escolha de um repositório legítimo e de sua chave de assinatura.

Relacione as ferramentas às suas tarefas
Nível da ferramentaTarefaExemplos
Baixo nívelInstalar um pacote local; não baixar dependências ausentesdpkg, rpm
Alto nívelBuscar pacotes, resolver dependências e gerenciar atualizaçõesapt, apt-get, dnf, zypper, apk
Interface gráficaPermitir que você busque, instale e atualize visualmenteGNOME Software, KDE Discover

Uma central gráfica de software é uma interface para sistemas de pacotes, não um tipo separado de sistema operacional. Conhecer a fonte subjacente continua sendo útil mesmo que você nunca digite um comando de pacote.

Imagine a instalação de um editor de áudio que exige duas bibliotecas. Um gerenciador de alto nível verifica a lista de dependências, busca os pacotes ausentes e os instala na ordem correta. Fornecer a uma ferramenta de baixo nível apenas o pacote do editor pode deixar dependências sem resolução.

Compare formatos universais

Flatpak, Snap e AppImage ajudam aplicativos a funcionar em diferentes distribuições ao fornecer mais de seu software de apoio. Aplicativos Flatpak geralmente vêm do Flathub. O Snap está associado à Canonical e é usado para alguns softwares do Ubuntu. Um AppImage é um único arquivo de aplicativo que pode ser executado sem a instalação normal de um pacote.

Esses formatos podem fornecer versões mais recentes de aplicativos em um sistema com suporte prolongado. Bibliotecas incluídas também podem aumentar o tamanho do download e duplicar arquivos. Um aplicativo ainda tem requisitos de hardware e de sistema; “universal” não significa que todo pacote funcione em qualquer máquina possível.

Distinga os caminhos de atualização

Para um iniciante, os repositórios da distribuição são um bom ponto de partida: seus pacotes são preparados para a versão e verificados por seu sistema de confiança. Downloads de sites aleatórios não oferecem a mesma manutenção integrada.

Se um editor veio da distribuição e outro veio pelo Flatpak, eles têm caminhos de atualização diferentes. Atualizar os pacotes da distribuição cobre aquilo que esse sistema gerencia. Verifique também as atualizações do Flatpak. Um aplicativo baixado não é mantido automaticamente só porque é executado no Linux.

Principais conclusões

  • Pacotes contêm arquivos de programas e metadados, inclusive dependências.
  • Repositórios fornecem pacotes para uma distribuição e versão por meio de um sistema de confiança.
  • Gerenciadores de alto nível buscam dependências; dpkg e rpm não as buscam.
  • Flatpak, Snap e AppImage incluem mais software de apoio para facilitar a portabilidade.
  • Aplicativos de sistemas de pacotes diferentes podem precisar de atualizações separadas.

2.3 Compare modelos de lançamento e datas de suporte

Um modelo de lançamento indica como uma distribuição muda. Sua política de suporte indica por quanto tempo as correções chegam. Escolher um sistema significa planejar tanto as mudanças que você quer agora quanto a manutenção de que precisará depois.

Lançamentos de versões fixas e atualização contínua

Um lançamento de versão fixa publica versões numeradas. As atualizações dentro de uma versão priorizam segurança e correções de erros; componentes selecionados ainda podem receber recursos. Mudanças mais amplas chegam com uma atualização de versão. Debian stable, Ubuntu, RHEL, openSUSE Leap e as ramificações estáveis do Alpine seguem esse modelo.

Uma atualização contínua atualiza constantemente os pacotes para novas versões dos projetos de origem, sem atualizações de versão principal. Arch e openSUSE Tumbleweed usam essa abordagem. Atualizações regulares mantêm o sistema atualizado, mas podem exigir mais atenção quando o comportamento muda. Debian unstable e Alpine edge também mudam continuamente, mas são ramificações de desenvolvimento.

NecessidadeDireção adequadaPrincipal questão de manutenção
Plataforma previsível por anosVersão fixa ou LTS com suportePlanejar atualizações antes do EOL
Software novo do projeto de origem rapidamenteAtualização contínuaAplicar e acompanhar mudanças frequentes
Testar versões futurasCompilação de desenvolvimento ou pré-lançamentoEsperar trabalho inacabado e erros
Interprete a promessa de suporte

Suporte de longo prazo (LTS) significa vários anos de manutenção. O Ubuntu lança versões LTS a cada dois anos, em abril dos anos pares. A manutenção de segurança padrão dura cinco anos; o Ubuntu Pro estende a cobertura para dez, e seu complemento Legacy para quinze. A cobertura depende do serviço e dos pacotes aplicáveis. Versões intermediárias têm nove meses de suporte.

O 26.04 do Ubuntu significa abril de 2026. A versão 26.10 significa outubro de 2026. O Ubuntu 24.04 é Noble Numbat, e o 26.04 é Resolute Raccoon. Em outubro de 2026, a manutenção de segurança padrão do 24.04 termina em maio de 2029; o 26.04 tem suporte até abril de 2031.

O Debian stable é a versão atual bem testada. Testing reúne pacotes para a próxima versão estável. Unstable, sempre chamada sid, recebe novos pacotes primeiro. O Debian 13, trixie, foi lançado em 9 de agosto de 2025; o suporte completo vai até 9 de agosto de 2028, seguido de LTS até 30 de junho de 2030. O LTS pode cobrir menos arquiteturas e pacotes.

Versões principais do RHEL têm um ciclo de vida de dez anos com fases de suporte completo e de manutenção. O Fedora lança versões aproximadamente a cada seis meses e oferece suporte a cada uma por cerca de 13 meses. Um download gratuito e um longo período de suporte são características diferentes.

Distinga etapas de teste de manutenção

Uma versão alfa é uma compilação inicial, possivelmente incompleta. Uma versão beta convida a testes mais amplos com os principais recursos presentes. Uma versão candidata a lançamento pode se tornar final se nenhum problema grave for encontrado. Esses nomes descrevem o progresso em direção ao lançamento, não uma promessa de suporte de longo prazo.

O fim do ciclo de vida (EOL) encerra as atualizações de segurança de uma versão. Uma máquina ainda pode iniciar após essa data, mas falhas recém-descobertas não serão corrigidas por esse serviço de suporte.

Como exemplo de planejamento, o Ubuntu 26.10 começa em outubro de 2026 e tem nove meses de suporte. Contando a partir daí, chega-se a julho de 2027. Instalá-lo em junho de 2027 não reinicia essa contagem. Planeje a atualização de versão a partir da data de EOL publicada para a versão. Da mesma forma, a palavra “stable” no Debian significa uma plataforma deliberadamente consistente e testada, não uma promessa de que o software nunca trava.

Principais conclusões

  • Lançamentos de versões fixas agrupam mudanças mais amplas em atualizações de versão; a atualização contínua as fornece continuamente.
  • LTS descreve a duração da manutenção, não uma garantia de novas versões de aplicativos.
  • Alfa, beta e versão candidata a lançamento são etapas de teste.
  • As datas de suporte pertencem às versões e não recomeçam quando você instala.
  • Planeje uma atualização de versão ou migração antes do fim do ciclo de vida.
  • Debian stable, testing e unstable têm funções distintas no desenvolvimento.

2.4 Escolha um sistema operacional adequado ao trabalho

Comece a escolha de um sistema pelo trabalho que precisa ser feito. Uma interface familiar, um download gratuito ou um número de versão alto não indica se o aplicativo e o hardware necessários funcionarão. Liste os requisitos antes de selecionar uma distribuição.

Compare os sistemas operacionais
SistemaBasePonto prático
WindowsSistema proprietário da Microsoft baseado em NTAmpla disponibilidade de software para computadores de uso pessoal; o Windows Server também atende empresas
macOSSistema proprietário da Apple, construído sobre Darwin com componentes XNU e BSDLicenciado para hardware da Apple; ferramentas no estilo Unix não o tornam Linux
Distribuições LinuxKernel Linux com espaço de usuário de código aberto e manutenção da distribuiçãoMuitos tipos de hardware, ambientes de área de trabalho e modelos de suporte

A maioria das distribuições Linux pode ser baixada gratuitamente. Assinaturas corporativas pagam por serviços como compilações testadas, suporte, certificação e manutenção prolongada. A liberdade de estudar e compartilhar software não exige que todos os serviços ao seu redor tenham custo zero.

Observe as diferenças cotidianas

O Linux organiza arquivos em uma única árvore que começa em /, sem letras de unidade do Windows. Um caminho Linux pode ser /home/ana/report.odt. Nomes de arquivos no Linux normalmente diferenciam maiúsculas de minúsculas: Report.txt e report.txt podem nomear arquivos diferentes. O software normalmente vem de repositórios.

Uma área de trabalho gráfica é uma parte substituível de um sistema Linux. GNOME, KDE Plasma, Cinnamon, Xfce e LXQt fornecem interfaces diferentes. Ambientes leves podem ajudar em máquinas com pouca memória. Servidores frequentemente dispensam uma área de trabalho e são gerenciados por um terminal.

Verifique primeiro a compatibilidade dos aplicativos

Um .exe do Windows não é um aplicativo nativo do Linux. O Wine executa muitos aplicativos Windows por meio de uma camada de compatibilidade; o Proton, baseado no Wine, oferece suporte a muitos jogos Windows pelo Steam. A compatibilidade depende do aplicativo, portanto essas ferramentas não garantem que todo programa necessário funcione.

Alguns fornecedores oferecem edições nativas para Linux. Muitos aplicativos de código aberto funcionam no Linux, Windows e macOS. Aplicativos de navegador também podem tornar um fluxo de trabalho portátil. As versões para computador do Microsoft Office e do Adobe Photoshop não têm edições nativas para Linux. O WSL executa distribuições Linux junto com o Windows, e uma VM pode executar Linux em um hospedeiro Windows ou macOS.

Analise uma escolha

Uma fotógrafa precisa do aplicativo Photoshop para computador, de um navegador e de arquivos compartilhados. Primeiro, a exigência do Photoshop aponta para Windows ou macOS no computador de trabalho. Em seguida, o aprendizado de Linux pode ocorrer em uma VM ou no WSL no Windows. Substituir o sistema de trabalho antes de verificar o aplicativo necessário interromperia o trabalho.

Para um pequeno servidor, as prioridades mudam. Verifique a arquitetura, o software de servidor necessário, a duração do suporte e se um fornecedor deve responder a solicitações de suporte. Uma versão de servidor corporativa ou LTS pode atender a essa necessidade. Para um notebook antigo, compare os requisitos de memória e as opções de áreas de trabalho mais leves; para um Raspberry Pi, escolha uma imagem compatível, como o Raspberry Pi OS.

Uma lista útil de opções registra finalidade, arquitetura do processador, memória e armazenamento disponíveis, aplicativos indispensáveis, datas de suporte, necessidades de suporte comercial e documentação. Depois, compare as distribuições com esses requisitos.

Principais conclusões

  • Verifique os aplicativos e o hardware necessários antes de substituir um sistema operacional.
  • Ambientes de área de trabalho Linux podem ser alterados independentemente do kernel.
  • Wine e Proton ajudam na compatibilidade, mas não executam todos os programas Windows.
  • Escolha distribuições considerando finalidade, recursos, software, suporte e documentação.
3

Explicar o software de código aberto e escolher uma licença adequada

Um download disponível não basta para estabelecer direitos de código aberto. As licenças de software regulam o estudo, a modificação, a cópia e o compartilhamento de código, enquanto o preço responde a outra questão. Aprenda a identificar essas liberdades e as condições que acompanham o software sob licenças permissivas e copyleft. Para fotos, textos e outros conteúdos, os elementos Creative Commons ajudam você a decidir quais usos são permitidos e quais condições de atribuição ou compartilhamento se aplicam.

3.1 Distinga as liberdades do software de seu preço

O preço de um download diz pouco sobre seus direitos. Um programa pode ser gratuito e proibir alterações ou ser vendido e permitir que os usuários o estudem, modifiquem e compartilhem. A licença determina essas liberdades.

Código-fonte e categorias de software

O código-fonte é a forma legível que os programadores escrevem. Um binário compilado é uma forma que um computador pode executar. O acesso ao código-fonte ajuda os usuários a inspecionar e modificar um programa, mas vê-lo não concede, por si só, permissão para reutilizá-lo.

CategoriaO que ela informa
ProprietárioA licença restringe uma ou mais liberdades relacionadas ao software
Software proprietário gratuitoSoftware proprietário disponível sem custo
SharewareSoftware proprietário oferecido para teste antes da compra
Software livreOs usuários têm as quatro liberdades definidas pela FSF
Código abertoA licença atende à Definição de Código Aberto da OSI
Código-fonte disponívelO código pode ser lido, mas as restrições impedem que ele atenda à definição de código aberto

O código-fonte proprietário pode ser privado ou visível sob restrições. Um repositório público sem licença também não concede um direito geral de copiar, modificar e redistribuir o código. Verifique se há uma licença antes de reutilizá-lo.

As quatro liberdades

A Fundação para o Software Livre numera as liberdades a partir de zero:

  • 0: executar o programa para qualquer finalidade.
  • 1: estudar como ele funciona e modificá-lo.
  • 2: redistribuir cópias.
  • 3: distribuir versões modificadas.

As liberdades 1 e 3 precisam de acesso ao código-fonte. “Livre” aqui diz respeito à liberdade. Uma empresa pode vender software livre, e um cliente pode pagar por suporte mantendo esses direitos.

A Open Source Initiative, fundada em 1998, aplica uma definição de dez partes derivada das Diretrizes Debian para Software Livre. Ela exige acesso ao código-fonte, redistribuição e obras modificadas. As licenças não podem discriminar pessoas, grupos ou áreas como negócios. Os direitos devem alcançar os destinatários sem um acordo separado e não podem estar vinculados a um produto, restringir software não relacionado distribuído junto ou exigir uma tecnologia específica.

O movimento do software livre enfatiza os direitos e o controle dos usuários; o movimento do código aberto enfatiza o desenvolvimento compartilhado e os benefícios práticos. Suas licenças aprovadas coincidem em grande parte. FOSS e FLOSS são termos abrangentes para essas ideias intimamente relacionadas.

Aplique a distinção

Um aplicativo de desenho gratuito para download tem código-fonte visível, mas proíbe o uso em negócios. Primeiro, ignore seu preço. Depois, examine a permissão: a restrição a negócios não atende à regra do código aberto contra discriminação por área de uso. O aplicativo tem código-fonte disponível, mas não é de código aberto no sentido da OSI. BSL e SSPL são exemplos de abordagens de licenciamento de código-fonte disponível.

Por outro lado, um editor sob a licença MIT pode ser vendido e ainda ser software livre e de código aberto. Seu preço não elimina as permissões da licença.

Controle sobre dispositivos e dados

Autonomia digital diz respeito ao controle de um indivíduo sobre dispositivos, dados e software. Soberania digital diz respeito ao controle de uma organização ou país sobre infraestrutura e dados. O código aberto apoia esses objetivos porque outro fornecedor pode inspecionar, manter ou adaptar o código. Isso reduz a dependência de fornecedor, situação em que a troca de fornecedor se torna difícil. A capacidade de manter um sistema de forma independente é diferente de uma equipe ter pessoal e recursos para fazê-lo.

Principais conclusões

  • Preço e liberdade do software são características distintas.
  • O software livre concede as liberdades de executar, estudar, modificar e compartilhar.
  • Código aberto exige permissões na licença, não apenas código-fonte público.
  • Uma restrição ao uso comercial não atende à Definição de Código Aberto.
  • Código público sem licença não concede direitos gerais de reutilização.
  • O código aberto pode apoiar a autonomia e reduzir a dependência de fornecedor.

3.2 Aplique as condições das licenças de software

Uma licença de código aberto concede direitos e mantém condições associadas ao código. Para aplicá-la, identifique a licença e sua versão, decida qual ação você pretende realizar e verifique qual parte do software as condições cobrem.

Licenças permissivas preservam avisos

A MIT e as licenças BSD de 2 e 3 cláusulas permitem reutilização, alterações e distribuição em produtos proprietários. Mantenha o aviso de direitos autorais e o texto da licença exigidos. A licença BSD de 3 cláusulas também impede o uso dos nomes dos colaboradores para endossar um produto derivado sem permissão.

A Apache 2.0 também é permissiva. Ela acrescenta uma licença explícita de patentes dos colaboradores, exige a identificação dos arquivos alterados e o repasse das informações pertinentes de NOTICE.

O copyleft mantém o código coberto aberto
LicençaPrincipal limite quando suas condições se aplicam
GPLO programa combinado coberto deve permanecer sob a GPL, com o código-fonte correspondente disponível na distribuição
LGPLA biblioteca permanece sob a LGPL; outros programas podem ser vinculados sob outras licenças se as condições de substituição e outras forem atendidas
MPL 2.0Arquivos distribuídos cobertos pela MPL permanecem sob a MPL com o código-fonte disponível; arquivos separados podem ter outras licenças
AGPLAcrescenta uma oferta de código-fonte para usuários que interagem pela rede com um programa coberto e modificado

Software GPL pode ser vendido. Executá-lo ou modificá-lo de forma privada não exige, por si só, a publicação das alterações. Distribuir cópias, inclusive em dispositivos, aciona obrigações perante os destinatários. O método permitido de fornecimento do código-fonte depende da versão da GPL e da forma de distribuição; uma oferta por escrito é permitida em casos específicos, não em todos.

A GPLv3 acrescenta proteções relativas a patentes e regras de informações de instalação para produtos de consumo cobertos. O kernel Linux usa GPL-2.0-only. Um identificador SPDX terminado em -or-later permite escolher essa versão ou uma posterior; -only não permite.

Verifique a ação e a parte coberta

Uma empresa modifica uma ferramenta GPL e a executa apenas em seus próprios computadores. Ela não distribuiu cópias, portanto essa modificação privada não cria uma obrigação de publicar o código-fonte. Se fornecer a ferramenta modificada a clientes, deverá cumprir os termos de distribuição, inclusive o acesso ao código-fonte correspondente.

Agora, uma empresa modifica um aplicativo web AGPL e permite que clientes o usem online. A interação pela rede com essa versão modificada exige que seu código-fonte seja oferecido a esses usuários. Portanto, GPL e AGPL diferem mesmo quando os clientes não baixam o programa.

Um fornecedor de roteadores que fornece um kernel Linux modificado deve disponibilizar o código-fonte correspondente do kernel sob a GPLv2 por um método válido. Programas separados no espaço de usuário que usam chamadas de sistema comuns não passam a ser cobertos pela GPL apenas por esse motivo. Documentos e imagens criados com um aplicativo GPL também não adquirem a licença do aplicativo.

Combine código com cuidado

Código MIT geralmente pode ser incorporado a um programa GPL, preservando os avisos da MIT. O programa combinado resultante deve cumprir a GPL. Código GPL não pode simplesmente ser reidentificado como MIT para eliminar as condições de copyleft. A Apache 2.0 é compatível com a GPLv3, mas não com a GPLv2-only.

Principais conclusões

  • Licenças permissivas permitem reutilização proprietária, mantendo as obrigações relativas a avisos.
  • A distribuição sob a GPL aciona obrigações de copyleft e de fornecimento do código-fonte correspondente; a modificação privada, por si só, não.
  • A LGPL e a MPL aplicam copyleft a partes mais limitadas que a GPL.
  • Programas AGPL modificados devem oferecer o código-fonte aos usuários que interagem pela rede.
  • Versões de licenças e compatibilidade são importantes ao combinar código.
  • Usar um aplicativo GPL não coloca seus próprios documentos sob a GPL.

3.3 Reutilize conteúdo Creative Commons corretamente

Licenças abertas também se aplicam a obras como imagens, textos, músicas e materiais de ensino. A Creative Commons fornece ferramentas para esse conteúdo. Leia os elementos da licença antes de decidir se um determinado uso é permitido.

Conheça os quatro elementos
ElementoSignificado para a reutilização
BY: AtribuiçãoDê crédito ao criador e forneça as informações de licença exigidas
SA: CompartilhaIgualCompartilhe adaptações sob a mesma licença ou uma licença compatível permitida
NC: NãoComercialA licença não permite uso comercial
ND: SemDerivaçõesA licença não permite compartilhar adaptações

As seis licenças são CC BY, CC BY-SA, CC BY-ND, CC BY-NC, CC BY-NC-SA e CC BY-NC-ND. Todas as seis exigem atribuição. Essas restrições não formam uma única classificação simples: ND restringe adaptações, enquanto NC restringe outra dimensão, o uso comercial.

CC0 é uma declaração separada de dedicação ao domínio público. Ela renuncia aos direitos autorais tanto quanto possível e fornece uma permissão alternativa quando necessário. Dar crédito é uma boa prática, mas não é uma condição do CC0. Entre essas ferramentas, CC BY, CC BY-SA e CC0 permitem tanto a reutilização comercial quanto adaptações e correspondem à ideia de reutilização totalmente aberta.

Decida se o uso planejado é adequado

Imagine que uma instrutora encontre uma foto CC BY-NC para um anúncio pago. O anúncio é comercial, portanto a licença NC não autoriza esse uso. Dar crédito não elimina a restrição; a instrutora precisa de permissão separada ou de outra imagem.

Para um diagrama CC BY-ND, compartilhar o original com crédito é permitido. Alterar suas cores, criando uma adaptação, e compartilhar essa adaptação não é autorizado pela condição ND. A restrição relevante da ND é o compartilhamento da adaptação; ela não proíbe fazer uma adaptação privada.

Um texto CC BY-SA pode ser adaptado, inclusive para uso comercial, com crédito e a licença exigida para o material adaptado. Isso não significa que material não relacionado colocado ao lado dele receba automaticamente a mesma licença. O texto da Wikipédia é um exemplo conhecido de BY-SA.

Faça uma atribuição útil

TASL é um lembrete prático: título, autor, fonte, licença. Inclua links para o original e para a licença sempre que possível e descreva as alterações. Um exemplo de crédito é: “'Porto pela manhã', de Lee Park, do portfólio do criador, CC BY 4.0; recortado”. Vincule o título ao original e o nome da licença aos seus termos. Use o criador, a fonte e a licença reais em seus próprios créditos.

Um link apenas para um resultado de busca não identifica o criador nem a licença. Guarde as informações de crédito ao baixar conteúdo.

Separe licenças de conteúdo e de código

A Creative Commons recomenda licenças específicas de software para código de programas porque as licenças da família BY não tratam do fornecimento de código-fonte e de questões de patentes de software da mesma maneira. Um projeto pode colocar seu código sob a MIT e seu manual sob a CC BY-SA.

Licenças da versão 4.0 não podem simplesmente ser revogadas para usuários que já receberam a obra e cumprem seus termos. Remover o download posteriormente não apaga as permissões que eles já têm. Encontrar uma imagem online, porém, não fornece, por si só, uma licença aberta.

Principais conclusões

  • BY exige crédito; SA rege adaptações compartilhadas; NC restringe o uso comercial; ND restringe o compartilhamento de adaptações.
  • As seis licenças CC têm diferentes combinações de condições.
  • CC BY, CC BY-SA e CC0 permitem uso comercial e adaptações.
  • Use TASL e identifique as alterações ao atribuir uma obra reutilizada.
  • Use licenças específicas de software para código.
4

Descrever como as comunidades de código aberto funcionam e são financiadas

O software de código aberto depende de trabalho humano organizado. Colaboradores propõem melhorias, mantenedores as revisam e projetos escolhem diferentes formas de tomar decisões. Uma participação útil pode começar com testes, documentação ou um relato de erro claro. O financiamento apoia esse trabalho por meio de serviços, assinaturas, hospedagem e patrocínio. Acompanhe como a governança, as escolhas de negócio e as bifurcações afetam o software que as pessoas podem continuar usando.

4.1 Contribua para um projeto de código aberto

Um projeto de código aberto precisa de mais do que código. Usuários identificam problemas, colaboradores propõem melhorias e mantenedores decidem o que entra no projeto oficial. A licença dá direitos sobre o software; a governança do projeto decide como a versão compartilhada se desenvolve.

Entenda as funções e decisões

Colaboradores podem escrever documentação, traduzir interfaces, testar versões, melhorar o design, responder perguntas ou relatar erros. Mantenedores revisam o trabalho de um projeto ou subsistema. Projetos maiores também têm equipes de segurança e responsáveis por lançamentos.

A governança varia. Linus Torvalds toma a decisão final sobre a linha principal do kernel Linux. O Debian elege um líder de projeto e segue uma constituição. Uma empresa pode liderar um projeto, como a Canonical lidera o Ubuntu. Fundações como a Apache Software Foundation ou a Python Software Foundation oferecem uma estrutura organizacional, cuidando de assuntos como fundos e marcas. O envolvimento de uma fundação não significa que todos os projetos usem o mesmo processo de decisão.

Qualquer pessoa pode propor uma alteração ou criar uma bifurcação. Apenas mantenedores autorizados podem aceitá-la no projeto oficial. Uma bifurcação desenvolve uma cópia de forma independente; exemplos incluem LibreOffice a partir do OpenOffice.org, Nextcloud a partir do ownCloud e MariaDB a partir do MySQL.

Conheça o projeto de origem e o projeto derivado

O projeto original que desenvolve um programa é seu projeto de origem. Distribuições que o empacotam e às vezes aplicam correções são projetos derivados ou distribuidores. Uma correção enviada ao projeto de origem pode beneficiar muitas distribuições e reduzir a necessidade de manter correções separadas.

Relate um problema de empacotamento específico de uma distribuição pelo canal dessa distribuição. Um erro geral de aplicativo pode pertencer ao projeto de origem. Leia as orientações de relato, pois os projetos podem pedir que você confirme o problema ou reúna determinadas informações primeiro.

Siga o fluxo de contribuição

O Git registra o histórico do projeto. GitHub, GitLab e Codeberg hospedam repositórios e ferramentas de colaboração. Um sistema de acompanhamento de problemas registra erros e solicitações de recursos. Uma solicitação de integração ou de mesclagem propõe alterações para revisão; testes automatizados podem verificá-las. O kernel geralmente revisa correções enviadas por e-mail.

Leia o README, o guia de contribuição e o código de conduta. Um CLA concede direitos específicos sobre a contribuição ao proprietário do projeto. Uma confirmação DCO certifica que o colaborador tem o direito de enviar o trabalho. Esses são mecanismos diferentes. Mantenha uma alteração proposta focada e responda à revisão com paciência.

Crie um relato de erro que outras pessoas possam usar

Suponha que um aplicativo seja encerrado inesperadamente quando um gráfico é exportado. Pesquise primeiro no sistema de acompanhamento. Se o problema for novo, escreva um relato como este:

  1. Título: “A exportação do gráfico fecha o aplicativo.”
  2. Ambiente: versão exata do aplicativo, distribuição e versão da distribuição.
  3. Passos: abra uma nova planilha, insira um gráfico, escolha o formato de exportação e salve.
  4. Resultado esperado: uma imagem exportada e o aplicativo aberto.
  5. Resultado obtido: o aplicativo fecha; inclua o texto exato do erro, se disponível.

Forneça uma pequena amostra que reproduza o problema quando for adequado. Remova dados pessoais e credenciais dos anexos. Um relato específico permite que outra pessoa reproduza e investigue a falha. “Está quebrado” descreve a frustração, mas não fornece um caminho repetível até o problema.

Principais conclusões

  • Contribuições incluem documentação, testes, tradução, suporte e relatos de erros.
  • Mantenedores decidem quais propostas entram no projeto oficial.
  • O projeto de origem desenvolve o software original; o projeto derivado ou distribuidor o empacota ou adapta.
  • Projetos usam diferentes regras de governança e contribuição.
  • Um relato de erro útil informa versões, passos reproduzíveis, comportamento esperado e obtido e erros relevantes.

4.2 Explique como o código aberto financia seu trabalho

A redistribuição livre muda a forma como empresas de software ganham dinheiro, mas não impede a geração de receita. Os clientes frequentemente pagam pelo trabalho necessário para executar software de maneira confiável. Projetos também podem compartilhar custos por meio de doações, subsídios, fundações e colaboradores remunerados.

Relacione o modelo ao que é vendido
ModeloPelo que o cliente ou financiador paga
Assinatura de suporteCompilações mantidas, atualizações prolongadas, certificação e ajuda técnica
ServiçosConsultoria, integração, treinamento e desenvolvimento personalizado
HospedagemOperação do software como serviço online
Modelo de núcleo abertoRecursos proprietários ao lado de um núcleo de código aberto
Licenciamento duploUma licença comercial alternativa para o mesmo código
HardwareUm dispositivo que executa o software
Patrocínio ou subsídiosTrabalho contínuo em software valorizado pelo financiador

Red Hat, SUSE e Canonical vendem serviços de suporte e manutenção. Um serviço de banco de dados gerenciado vende operação e conveniência. Um fabricante de roteadores vende um dispositivo físico e se beneficia de um sistema operacional compartilhado. Parcerias de busca podem financiar o desenvolvimento de navegadores; a Mozilla recebe uma receita significativa por meio desses acordos.

Separe modelo de núcleo aberto de licenciamento duplo

No modelo de núcleo aberto, o componente extra pago tem recursos que o núcleo aberto não inclui. Uma empresa pode oferecer uma ferramenta aberta de monitoramento e um complemento proprietário para gerenciar milhares de máquinas.

No licenciamento duplo, o mesmo código é oferecido sob licenças diferentes. Um cliente pode seguir a licença copyleft ou comprar uma alternativa comercial que permita um uso diferente. MySQL e Qt usam formas desse modelo. O titular dos direitos autorais precisa dos direitos necessários para oferecer a alternativa; um usuário não pode simplesmente mudar a licença do código de outra pessoa.

Entenda o financiamento compartilhado

Empresas pagam desenvolvedores para melhorar a infraestrutura da qual dependem. Compartilhar o custo de um kernel, biblioteca ou ferramenta pode ser mais barato do que construí-lo separadamente. Contribuições de associados de fundações, doações individuais, patrocínio e subsídios também apoiam o trabalho. O código aberto inclui profissionais remunerados e também voluntários.

Acompanhe mudanças de licença e bifurcações

Alguns fornecedores passaram novas versões para termos de código-fonte disponível para controlar serviços hospedados concorrentes. O MongoDB adotou a SSPL em 2018. O Terraform passou para a BSL em 2023; o Redis adotou a RSAL e a SSPL em 2024. Versões anteriores continuam disponíveis sob as licenças já concedidas.

Comunidades podem continuar a partir de uma versão aberta anterior. O OpenSearch deu continuidade ao Elasticsearch, o OpenTofu ao Terraform e o Valkey ao Redis. Mudanças posteriores podem voltar a acrescentar opções abertas: a Elastic acrescentou uma opção AGPL em 2024, e o Redis 8 acrescentou a AGPL em 2025. Verifique a versão e a licença exatas ao comparar produtos.

Considere uma equipe que financia um aplicativo de agendamento. Vender um serviço hospedado paga pelos servidores e pela operação. Vender suporte paga por ajuda e manutenção. Vender um módulo proprietário extra de gerenciamento é um modelo de núcleo aberto. Essas escolhas afetam o que os clientes compram sem fazer o código aberto desaparecer.

Principais conclusões

  • Empresas de código aberto vendem suporte, serviços, hospedagem, dispositivos ou recursos adicionais.
  • O modelo de núcleo aberto acrescenta recursos proprietários; o licenciamento duplo oferece o mesmo código sob licenças alternativas.
  • Empresas, doações, patrocínio, fundações e subsídios financiam o desenvolvimento.
  • Uma nova versão pode mudar de licença sem retirar direitos já concedidos para versões anteriores.
  • Bifurcações podem continuar o desenvolvimento a partir de uma versão anterior de código aberto.
5

Reconhecer os principais aplicativos de código aberto e suas finalidades

A escolha de um aplicativo começa pela tarefa que ele precisa realizar. Ferramentas para computadores de uso pessoal cuidam de documentos, gráficos, mídia e análise; plataformas web apoiam arquivos compartilhados, reuniões, cursos e colaboração. Pilhas de servidores combinam programas com funções diferentes. Aprenda essas funções e as formas básicas de execução dos programas para transformar nomes conhecidos em escolhas úteis, seja ao selecionar um editor de fotos, uma plataforma de cursos ou os componentes por trás de um site.

5.1 Associe aplicativos para computadores de uso pessoal a tarefas

Aplicativos de código aberto abrangem trabalho de escritório, navegação, gráficos, mídia, programação e análise de dados. Muitos também funcionam no Windows e no macOS. Aprenda que tipo de trabalho cada aplicativo realiza para poder escolher de acordo com a tarefa.

Trabalho de escritório e internet

O LibreOffice inclui Writer para documentos, Calc para planilhas, Impress para apresentações, Draw para diagramas, Base para bancos de dados e Math para fórmulas. Seus formatos OpenDocument padrão incluem .odt, .ods e .odp. Ele também lê e grava formatos da Microsoft, como .docx e .xlsx.

O LibreOffice começou como uma bifurcação do OpenOffice.org em 2010 e é desenvolvido sob a The Document Foundation. O Apache OpenOffice continua como um projeto separado. O Firefox é o navegador da Mozilla; o Thunderbird cuida de e-mails, calendários e contatos. O Chromium é o projeto de navegador de código aberto do Google. O Google Chrome é construído sobre ele, com acréscimos proprietários e seus próprios termos de distribuição.

Escolha o tipo certo de ferramenta gráfica
TarefaProgramaPor que é adequado
Editar uma fotografiaGIMPTrabalha com imagens matriciais baseadas em pixels; formato nativo .xcf
Desenhar um logotipo redimensionávelInkscapeCria formas vetoriais, geralmente salvas como SVG
Pintar uma ilustraçãoKritaProjetado para pintura digital
Criar uma animação 3DBlenderFornece ferramentas de modelagem 3D, animação e vídeo

Uma imagem matricial armazena pixels. Ampliá-la muito além de seu tamanho original revela essa grade. Uma imagem vetorial armazena formas definidas matematicamente, de modo que suas bordas permanecem nítidas quando redimensionadas.

Para um evento comunitário, use o Inkscape para o logotipo que deve aparecer em um pequeno crachá e em uma placa grande. Use o GIMP para ajustar a fotografia que o acompanha. Os dois arquivos podem aparecer em um mesmo projeto, mas suas necessidades de edição são diferentes.

Mídia e gravação

O VLC reproduz uma ampla variedade de formatos e transmissões de áudio e vídeo. O Kodi organiza uma biblioteca de mídia para uso em uma TV ou sistema de central de mídia. O Audacity grava e edita som. O OBS Studio grava e transmite vídeo ao vivo. Uma tarefa de edição de áudio pede o Audacity; capturar e transmitir uma aula pede o OBS Studio.

Edição de código, assinatura de arquivos e análise de dados

As compilações do Visual Studio Code da Microsoft são distribuídas sob termos proprietários. O código-fonte subjacente do Code - OSS é licenciado sob a MIT. O VSCodium fornece compilações comunitárias desse código-fonte sem a marca e os acréscimos de telemetria da Microsoft. A licença do projeto de código-fonte e a licença de uma compilação distribuída por um fornecedor podem ser diferentes.

O GPG, GNU Privacy Guard, implementa criptografia e assinaturas digitais OpenPGP. A criptografia protege o conteúdo contra leitura; uma assinatura digital verificada ajuda a estabelecer quem assinou os dados e se eles foram alterados. As distribuições usam assinaturas nos fluxos de verificação de pacotes e imagens.

O R é uma linguagem e um ambiente para estatística, análise de dados e gráficos. O Calc é útil para trabalho com planilhas, enquanto o R oferece suporte a análises expressas como programas. Escolher apenas por uma marca conhecida pode ocultar essas diferenças: um navegador não é um cliente de e-mail, um gravador de vídeo não é um editor de áudio e código-fonte público não torna automaticamente toda compilação com uma marca específica de código aberto.

Principais conclusões

  • O LibreOffice fornece aplicativos de escritório e usa formatos OpenDocument por padrão.
  • O GIMP edita imagens matriciais; o Inkscape cria gráficos vetoriais redimensionáveis.
  • O VLC reproduz mídia, o Audacity edita áudio e o OBS Studio grava ou transmite vídeo.
  • O Chromium difere do Chrome, e o Code - OSS difere das compilações do VS Code feitas pela Microsoft.
  • O GPG cuida de criptografia e assinaturas OpenPGP; o R oferece suporte à análise estatística.

5.2 Escolha plataformas web e de colaboração

Um aplicativo web é executado em um servidor e apresenta sua interface por meio de um navegador. Aplicativos web de código aberto frequentemente podem ser auto-hospedados, dando a uma organização a escolha de quem os opera e mais controle sobre seus dados. Essa escolha também traz trabalho de manutenção.

Associe plataformas a necessidades cotidianas
NecessidadeExemplosFinalidade principal
Arquivos compartilhados e sincronizaçãoNextcloud, ownCloudArmazenar, sincronizar e compartilhar arquivos
Reuniões no navegadorJitsi MeetParticipar de videoconferências por links
Ensino online ao vivoBigBlueButtonQuadros brancos, slides, enquetes, salas simultâneas e gravação
Cursos e avaliaçãoMoodlePublicar cursos, receber tarefas, aplicar questionários e acompanhar notas

O Nextcloud começou como uma bifurcação do ownCloud em 2016. Ele também oferece funções como calendários, contatos, colaboração em documentos de escritório e bate-papo. O Moodle é um sistema de gestão da aprendizagem, ou LMS, escrito em PHP. Ele frequentemente é combinado com o BigBlueButton para aulas ao vivo.

Uma plataforma de cursos e um sistema de conferência resolvem problemas diferentes. O Moodle pode armazenar tarefas e notas entre as aulas; o BigBlueButton fornece o ambiente de aula ao vivo. Um não substitui todas as funções do outro.

Acompanhe uma escolha de auto-hospedagem

Uma cooperativa de formação quer manter as atividades de seus cursos e seus arquivos em servidores que controla. Primeiro, ela seleciona o Moodle para atividades de curso, um sistema de reuniões para sessões ao vivo e o Nextcloud para arquivos compartilhados. Depois, decide quem operará os servidores Linux. Por fim, atribui a responsabilidade por atualizações, backups, acesso às contas e segurança.

O código aberto permite a auto-hospedagem, mas não realiza esse trabalho contínuo automaticamente. Um provedor de serviços local pode operar o software para a cooperativa se ela não tiver pessoal próprio.

Separe o Git de uma plataforma de desenvolvimento colaborativo

O Git é um sistema de controle de versão distribuído criado por Torvalds em 2005. Um registro de alteração registra uma mudança no histórico do projeto. Uma ramificação permite que uma linha de trabalho se desenvolva separadamente antes da mesclagem. Um clone completo comum mantém o histórico do repositório em outro computador.

Uma plataforma de desenvolvimento colaborativo acrescenta repositórios hospedados, acompanhamento de problemas, revisão de código e automação em torno do Git. GitLab Community Edition, Gitea e Forgejo são opções de código aberto. O Codeberg é um serviço de hospedagem baseado no Forgejo. O GitHub é um serviço proprietário da Microsoft, embora hospede muitos projetos de código aberto.

Uma equipe pode usar Git sem GitHub. Ela pode manter repositórios locais, usar outra plataforma ou mover seu histórico Git entre serviços de hospedagem. Os recursos extras do serviço, como seu banco de dados de problemas, são separados do histórico Git.

Escolha controle e responsabilidade juntos

Se uma equipe quiser manter seu histórico de versões ao trocar de provedor, o histórico distribuído do Git ajuda. Se também quiser executar a própria plataforma de revisão, precisará de uma plataforma de desenvolvimento colaborativo que possa ser auto-hospedada. Compare a licença, os recursos necessários e quem a manterá. Um repositório público, um aplicativo de código aberto e uma plataforma de hospedagem de código aberto são três coisas diferentes.

Principais conclusões

  • A auto-hospedagem dá controle e torna alguém responsável por atualizações, backups e segurança.
  • O Moodle gerencia cursos; o BigBlueButton apoia o ensino ao vivo; o Nextcloud compartilha arquivos.
  • O Git registra o histórico do projeto; uma plataforma de desenvolvimento colaborativo hospeda a colaboração em torno dos repositórios.
  • O GitHub é um serviço proprietário; GitLab CE, Gitea e Forgejo oferecem opções de plataformas de desenvolvimento colaborativo de código aberto.

5.3 Reconheça software de servidor e linguagens

Um aplicativo de servidor geralmente trabalha com outros programas. Um servidor web trata solicitações, um aplicativo fornece o comportamento e um banco de dados armazena dados. Reconhecer cada função ajuda você a entender uma pilha funcional sem precisar escrever os programas ainda.

Associe o servidor ao serviço

O Apache HTTP Server fornece conteúdo web e oferece suporte a módulos. O NGINX também fornece conteúdo web e comumente atua como proxy reverso, encaminhando solicitações a servidores de aplicativos, ou como balanceador de carga, distribuindo solicitações entre eles. O Apache HTTP Server é um projeto; a Apache Software Foundation abriga muitos outros.

MySQL, MariaDB e PostgreSQL são servidores de banco de dados relacionais. O MySQL tem opções de licenciamento GPL e comercial. O MariaDB começou como uma bifurcação do MySQL em 2009. O PostgreSQL é um projeto separado, conhecido por sua extensibilidade e licença permissiva. Produtos de banco de dados relacionados ainda podem desenvolver diferenças; uma história compartilhada não torna suas versões intercambiáveis para sempre.

Para compartilhamento de arquivos, o NFS é tradicional entre sistemas semelhantes ao Unix. O Samba implementa SMB para compartilhar arquivos e impressoras com clientes Windows e outros. Ele também pode fornecer serviços de domínio no estilo Windows.

Acompanhe uma solicitação LAMP

LAMP normalmente significa Linux, Apache, MySQL ou MariaDB e PHP. Em alguns usos, Perl ou Python substitui o PHP. Considere um visitante abrindo uma página de consulta de estoque:

  1. O navegador solicita a página ao Apache no Linux.
  2. O Apache encaminha a solicitação ao código PHP do aplicativo.
  3. O código solicita ao MariaDB os registros de estoque.
  4. O aplicativo constrói a resposta, e o Apache a envia ao navegador.

O banco de dados não substitui o servidor web, e o navegador não executa diretamente o código PHP do servidor. Cada componente cuida de uma parte diferente da solicitação.

Entenda como os programas são executados

Um compilador pode transformar o código-fonte em código de máquina para uma arquitetura específica. Um executável x86-64 não é executado diretamente como código de máquina ARM64. Um interpretador executa código durante a execução; o interpretador, as bibliotecas e os recursos de sistema necessários devem estar disponíveis para que um script funcione em diferentes sistemas.

O Java geralmente é compilado para bytecode executado por uma Máquina Virtual Java. O OpenJDK é uma implementação Java de código aberto. Sistemas reais de linguagens podem combinar compilação e interpretação; esses nomes explicam o caminho principal, não uma regra de que toda implementação funcione da mesma forma.

LinguagemTrabalho típico
C, C++Software de sistema e grandes aplicativos nativos
RustSoftware compilado com proteção contra muitos erros de memória; usado em partes do desenvolvimento do kernel desde o Linux 6.1
GoServiços de rede e ferramentas como Docker e Kubernetes
PythonAutomação, administração, análise e IA
PHPAplicativos web executados no servidor, incluindo Moodle, Nextcloud e WordPress
JavaAplicativos empresariais que usam a JVM
JavaScriptInteração no navegador e programas de servidor por meio do Node.js

C continua sendo a principal linguagem do kernel. Java e JavaScript têm nomes semelhantes, mas são linguagens diferentes. Escolher JavaScript para os controles interativos de um navegador não implica usar Java ou uma JVM. Escolher Python para automação ainda exige verificar as bibliotecas e os recursos do sistema operacional que o script usa.

Principais conclusões

  • Servidores web, código de aplicativos e bancos de dados têm tarefas separadas em uma pilha.
  • A LAMP geralmente combina Linux, Apache, MySQL/MariaDB e PHP.
  • O NFS compartilha diretórios entre sistemas semelhantes ao Unix; o Samba implementa SMB.
  • O código de máquina compilado se destina a uma arquitetura; scripts ainda precisam de ambientes de execução e dependências compatíveis.
  • Java usa a JVM; JavaScript é executada em navegadores e por ambientes de execução como o Node.js.
  • C, Rust, Go, Python e PHP têm usos comuns diferentes.
6

Configurar um ambiente Linux seguro para praticar

Um ambiente de prática útil deve ser adequado ao seu computador e às tarefas que você quer aprender. Uma VM completa permite conhecer a instalação e a inicialização, enquanto o WSL oferece acesso rápido ao Linux junto com o Windows. Escolha a arquitetura e os recursos adequados, verifique a imagem baixada e prepare um ponto de partida atualizado. Proteção de contas, privilégios limitados, criptografia e backups fazem parte da configuração porque a prática ainda envolve dispositivos, credenciais e dados reais.

6.1 Escolha uma configuração de prática para seu computador

Você pode aprender Linux mantendo seu sistema operacional atual. Escolha a configuração de acordo com o que precisa praticar, a quantidade de memória disponível e a necessidade de conhecer um processo completo de instalação e inicialização.

Compare as opções
ConfiguraçãoÚtil paraPrincipal limitação
Máquina virtualInstalação completa, inicialização, área de trabalho e serviçosPrecisa de memória e armazenamento no hospedeiro
WSL no WindowsAcesso rápido a ferramentas Linux e muitos serviçosOculta um instalador e um carregador de inicialização normais
Instância na nuvemPrática de servidor remotoCobranças e responsabilidades de segurança de rede
USB executável sem instalaçãoTestar o Linux em hardware realAlterações normalmente desaparecem ao desligar
Inicialização duplaAcesso completo ao hardware ao lado de outro sistemaAlterações nas partições podem danificar dados existentes
Computador dedicadoUma máquina Linux separadaExige hardware disponível

Uma VM é executada como sistema convidado junto a um sistema operacional hospedeiro. Ferramentas para computadores de uso pessoal incluem VirtualBox, VMware Workstation Pro, VMware Fusion, UTM e GNOME Boxes. A virtualização hospedada em um computador de uso pessoal é comumente chamada de tipo 2; plataformas tipo 1 como Hyper-V, ESXi, Xen e KVM fornecem virtualização no nível do hardware. Uma interface de gerenciamento para computador de uso pessoal, por si só, não informa a arquitetura de seu hipervisor.

O pacote básico do VirtualBox é GPLv3. O VMware Workstation Pro é proprietário, embora seja gratuito para todos os usos desde novembro de 2024. Como em outros softwares, preço e liberdades da licença são diferentes.

Escolha a imagem compatível com o processador

PCs de 64 bits com Intel e AMD normalmente usam x86-64, comumente identificado como amd64. Essa identificação inclui processadores Intel. Macs com Apple silicon e notebooks Windows baseados em ARM usam ARM64, identificado como arm64 ou aarch64.

Para virtualização de hardware normal, escolha arquiteturas compatíveis para o convidado e o hospedeiro. Um hospedeiro ARM64 não executa diretamente uma imagem de convidado x86-64. A emulação pode traduzir uma arquitetura diferente, mas é mais lenta. Intel VT-x ou AMD-V deve estar habilitado no firmware do PC para a virtualização de hardware usada por VMs e WSL 2.

Analise uma escolha

Uma pessoa tem um Mac com Apple silicon e quer praticar o instalador Linux, a reinicialização e uma área de trabalho. Primeiro, essas tarefas exigem um sistema convidado completo, portanto uma VM é adequada. Depois, o processador exige uma imagem ARM64. Em seguida, escolha um hipervisor com suporte a Linux ARM, como UTM ou uma versão atual adequada do VirtualBox, e deixe memória suficiente para o macOS.

Uma pessoa que usa Windows e quer principalmente praticar o shell pode começar com o WSL. Alguém que verifica o Wi-Fi e os gráficos de um notebook antes da instalação pode usar um USB executável sem instalação. Um contêiner fornece um espaço de usuário Linux, mas compartilha um kernel e normalmente dispensa um processo completo de inicialização, portanto não cobre a mesma prática que uma VM.

Conheça os limites

As alterações de uma VM normalmente permanecem nos discos virtuais, mas pastas compartilhadas com permissão de escrita expõem arquivos do hospedeiro ao sistema convidado. Um instantâneo pode desfazer um erro de prática dentro da VM. Recursos na nuvem precisam de atenção separada: excluir uma VM pode deixar discos ou outros recursos sujeitos a cobrança, portanto verifique a lista de recursos do provedor depois. Faça backup de dados importantes antes de qualquer alteração nas partições para inicialização dupla.

Principais conclusões

  • Escolha o ambiente de acordo com as tarefas que você quer praticar.
  • VMs mostram uma instalação e um processo de inicialização completos do sistema convidado; o WSL fornece acesso rápido ao Linux no Windows.
  • Associe amd64 a hardware x86-64 e arm64/aarch64 a hardware ARM64.
  • Pastas compartilhadas com permissão de escrita ampliam o acesso de uma VM aos arquivos do hospedeiro.
  • A prática na nuvem exige segurança e verificação de recursos restantes sujeitos a cobrança.

6.2 Instale e prepare uma máquina virtual Linux

Uma VM permite instalar um sistema Linux completo em um disco virtual. Siga em ordem as etapas da imagem, dos recursos, do instalador e das primeiras atualizações. Cada etapa responde a uma pergunta diferente: a imagem é confiável, os recursos são suficientes e o sistema instalado está pronto?

Baixe e verifique a imagem

Baixe uma ISO do site oficial da distribuição. Escolha a edição para computador de uso pessoal ou servidor e a arquitetura de acordo com seu plano. Uma ISO representa uma mídia de instalação; uma imagem de nuvem geralmente é um disco de sistema preparado para configuração automática.

Calcule a soma de verificação SHA-256 do download e compare o valor inteiro com a soma publicada. Exemplos de comandos para uma imagem chamada file.iso:

  • Linux: sha256sum file.iso
  • macOS: shasum -a 256 file.iso
  • Windows PowerShell: Get-FileHash file.iso

Uma diferença significa que a cópia está danificada ou foi alterada: descarte-a e baixe novamente. Uma correspondência estabelece a igualdade com o arquivo descrito por aquela soma de verificação. Ela não prova que uma soma copiada de um site não confiável seja autêntica. Verifique a assinatura da distribuição no arquivo de somas de verificação usando sua chave publicada autêntica. O GPG faz essa verificação de assinatura.

Crie uma VM adequada

Selecione a ISO na ferramenta de VM e aloque processadores, memória e um disco virtual. Para o Ubuntu Desktop 26.04, o mínimo confortável publicado é um processador de dois núcleos, 6 GB de RAM e 25 GB de armazenamento. Edições de servidor e ambientes de área de trabalho mais leves precisam de menos. Deixe também memória e armazenamento suficientes para o hospedeiro.

Por exemplo, um hospedeiro com 16 GB que aloca 6 GB para um convidado fica com 10 GB para si. Um disco virtual alocado dinamicamente de 40 GB não reserva 40 GB imediatamente; ele cresce à medida que dados são gravados, até esse máximo. Ele ainda precisa de espaço livre real em disco à medida que cresce.

Comece com rede NAT para a prática comum. O convidado pode acessar a internet por meio do hospedeiro, enquanto o acesso direto não solicitado da rede local normalmente não é oferecido. O modo ponte coloca a VM na rede local com seu próprio endereço quando outras máquinas precisam acessá-la.

Execute o instalador

Escolha idioma, teclado e fuso horário. Verifique se o destino selecionado é o novo disco virtual da VM antes de escolher uma instalação que apaga o disco. Crie um usuário e uma senha forte; habilite a criptografia de disco se for adequado. Conclua a instalação, reinicie e desconecte a ISO para que a próxima inicialização use o sistema instalado.

Se o instalador aparecer novamente após a reinicialização, a ISO frequentemente ainda está conectada e selecionada para a inicialização. Uma falha em um computador ARM64 com uma imagem amd64 exige a imagem correta, não mais memória para o convidado.

Prepare um ponto de partida limpo

Instale as atualizações disponíveis. Adicione as ferramentas do hipervisor para o sistema convidado, como VirtualBox Guest Additions ou open-vm-tools da VMware, para recursos como redimensionamento de tela. Áreas de transferência e pastas compartilhadas podem ser habilitadas por essas ferramentas; habilite o acesso apenas aos arquivos necessários.

Crie um instantâneo do sistema atualizado antes dos experimentos. Ele salva um estado ao qual retornar, mas continua vinculado ao armazenamento da VM. Mantenha um backup separado do trabalho importante. Se o disco do hospedeiro falhar, um instantâneo armazenado nele também será perdido.

Principais conclusões

  • Baixe uma imagem oficial com a edição e a arquitetura adequadas.
  • Uma soma de verificação confere a igualdade do arquivo; uma assinatura confiável autentica as informações da soma.
  • Aloque recursos deixando o suficiente para o hospedeiro.
  • O NAT é adequado para a prática comum; o modo ponte coloca o convidado como participante da rede local.
  • Desconecte a mídia de instalação após instalar, depois atualize e adicione as ferramentas para o sistema convidado.
  • Um instantâneo ajuda a reverter erros, mas não substitui um backup separado.

6.3 Instale e gerencie o WSL no Windows

O WSL executa distribuições Linux junto com aplicativos Windows. O WSL 2 usa um kernel Linux real em uma VM leve gerenciada pelo Windows. Você obtém um ambiente Linux sem criar hardware virtual manualmente nem seguir um instalador Linux normal.

Instale e crie uma conta Linux

A instalação simples exige Windows 10 versão 2004, compilação 19041 ou posterior, ou Windows 11, com virtualização de hardware habilitada. Use uma versão do Windows com suporte para continuar recebendo atualizações de segurança. Abra o PowerShell como administrador e execute:

wsl --install

Reinicie quando solicitado. Isso habilita os recursos necessários e normalmente instala o Ubuntu. Quando o Ubuntu iniciar pela primeira vez, crie seu nome de usuário e sua senha Linux. Eles pertencem àquela distribuição e não precisam ser iguais aos da sua conta do Windows.

No Ubuntu, a atualização inicial de pacotes é:

sudo apt update
sudo apt upgrade

O primeiro comando atualiza as informações dos pacotes; o segundo instala as atualizações de versão disponíveis. Se o sudo pedir uma senha, use a senha da conta Linux.

Reconheça os comandos de gerenciamento
Comando do PowerShellFinalidade
wsl --list --onlineListar distribuições disponíveis para instalação
wsl --install -d DebianInstalar especificamente o Debian
wsl --list --verbose ou wsl -l -vMostrar distribuições instaladas, estados e versões do WSL
wsl --set-default-version 2Escolher o WSL 2 para futuras instalações de distribuições
wsl --updateAtualizar o próprio WSL
wsl --shutdownEncerrar todas as distribuições e a VM do WSL

Suponha que a lista mostre * Debian Stopped 2. O Debian é a distribuição padrão por causa do asterisco. Ele está parado no momento e usa o WSL 2. O número não é o número da versão do Debian. Definir uma versão padrão do WSL não converte todas as distribuições existentes.

Distinga os locais dos arquivos

Dentro do Linux, a unidade Windows C: aparece em /mnt/c. Um arquivo Windows em C:\Users\Ana\notes.txt pode ser acessado como /mnt/c/Users/Ana/notes.txt. O Explorador de Arquivos pode acessar os arquivos Linux do Ubuntu por \\wsl.localhost\Ubuntu.

Para trabalhos realizados por ferramentas Linux no WSL 2, armazene os arquivos do projeto no sistema de arquivos Linux, como no diretório pessoal Linux. O acesso frequente entre os sistemas de arquivos Windows e Linux pode ser muito mais lento. A instalação do WSL armazena a distribuição em um arquivo de disco virtual, mas ferramentas com acesso aos arquivos Windows montados ainda podem alterá-los.

Saiba o que o WSL oferece e o que ele não oferece

O WSL 1 traduzia chamadas Linux e não fornecia um kernel Linux real. O WSL 2 fornece. O WSL atual oferece suporte ao systemd e a aplicativos gráficos Linux em janelas do Windows. A Microsoft mantém o kernel usado nesse ambiente, e o próprio WSL teve seu código aberto sob a MIT em maio de 2025.

O WSL não oferece a prática normal com um instalador Linux, carregador de inicialização ou instalação de área de trabalho completa. O acesso direto ao hardware também é diferente. Use-o para ferramentas, scripts e muitos serviços; escolha uma VM completa quando a tarefa de aprendizagem for instalação e inicialização.

Principais conclusões

  • O WSL 2 executa um kernel Linux real gerenciado pelo Windows.
  • Execute o comando de instalação no PowerShell como administrador e depois crie uma conta Linux separada.
  • A saída da lista do WSL distingue distribuição, estado de execução, escolha padrão e versão do WSL.
  • Use o sistema de arquivos Linux para projetos com ferramentas Linux, reduzindo o acesso a arquivos entre sistemas.
  • O WSL não oferece um instalador e um carregador de inicialização Linux normais.

6.4 Proteja contas, sistemas e dados

Um sistema de prática ainda está conectado a contas, arquivos e redes reais. Inclua proteção na configuração: use credenciais fortes, permissões limitadas, software atualizado e a proteção adequada para dados armazenados e em trânsito.

Dificulte a reutilização ou o roubo de credenciais

Use uma senha longa, aleatória e exclusiva para cada conta. Um gerenciador de senhas, como KeePassXC ou Bitwarden, gera e armazena essas senhas em um cofre criptografado. Proteja o cofre com uma senha mestra forte que não seja reutilizada em outro lugar.

A escolha aleatória importa. Quatro palavras escolhidas independentemente de uma lista de 7.776 geram cerca de 3,7 quatrilhões de possibilidades; seis geram cerca de 2,2 × 10²³. Uma citação conhecida não tem a mesma força porque não é uma escolha aleatória. Acrescentar um bit de incerteza dobra o espaço de busca.

A autenticação multifator (MFA) combina diferentes tipos de comprovação, como uma senha e uma chave física ou um autenticador. Duas senhas ainda são o mesmo tipo de fator. Habilite a MFA para contas importantes, especialmente contas de e-mail e de nuvem.

Uma chave de acesso usa um par de chaves criptográficas em vez de uma senha compartilhada. O serviço tem a chave pública; a chave privada permanece no seu dispositivo ou gerenciador de credenciais. Uma impressão digital, o rosto ou um PIN desbloqueia seu uso. As chaves de acesso são vinculadas ao serviço, o que protege contra a inserção de um segredo reutilizável em um site falso.

Limite permissões e mantenha o sistema

Trabalhe em uma conta de usuário comum e use sudo apenas para tarefas que precisam de direitos de administrador. Trabalhar permanentemente como root dá a cada programa e a cada erro amplo controle. Mantenha a distribuição atualizada e passe para uma versão com suporte antes do EOL.

Use fontes de software confiáveis e verifique imagens de instalação. Uma licença de código aberto permite inspeção, mas não significa que toda cópia de qualquer site seja segura.

Relacione a criptografia ao risco
RiscoProteção útilLimite
Alguém ler uma conexão do navegadorHTTPSVerifique também o domínio; a criptografia não prova honestidade
Alguém ler um login remoto ou uma transferênciaSSH ou SFTPMantenha as chaves privadas em segredo
Um notebook desligado ou disco roubadoCriptografia de disco completoMantenha informações de recuperação e backups separadamente

O Linux geralmente usa LUKS para criptografia de disco; o Windows usa BitLocker e o macOS, FileVault. A criptografia em repouso protege dados armazenados de alguém sem a chave. Ela não substitui backups nem protege uma conta que já esteja desbloqueada para um invasor. Se chaves de recuperação e senhas forem perdidas, os dados criptografados podem se tornar irrecuperáveis.

Trate dispositivos e segredos com cuidado

Não conecte dispositivos USB de origem desconhecida. Alguns contêm malware; outros podem fingir ser teclados. Criptografe unidades portáteis que contenham arquivos sensíveis, pois elas são facilmente perdidas.

Mantenha senhas, chaves de API e chaves privadas SSH fora de código público, capturas de tela compartilhadas e publicações em fóruns. Uma chave pública SSH pode ser compartilhada com um servidor; sua correspondente privada deve permanecer em segredo. Para um servidor de prática na nuvem, use chaves SSH, exponha apenas as portas de rede necessárias e remova os recursos após o uso. Proteja arquivos do hospedeiro compartilhados com uma VM ou acessíveis pelo WSL com o mesmo cuidado que os demais arquivos.

Principais conclusões

  • Use senhas aleatórias e exclusivas e um gerenciador de senhas protegido.
  • A MFA combina tipos diferentes de fatores; chaves de acesso resistem a phishing por meio de chaves vinculadas ao serviço.
  • Trabalhe com permissões de usuário comum e mantenha o sistema atualizado e com suporte.
  • HTTPS, SSH e SFTP protegem dados em trânsito; a criptografia de disco protege dados em repouso.
  • Mantenha informações de recuperação e backups; mantenha credenciais privadas fora de material compartilhado.
  • Não conecte dispositivos USB de origem desconhecida.

Exercícios resolvidos de Linux e código aberto

6 Lições Interativas

1

Acompanhe o Linux desde suas origens até um sistema funcional

12 passos
Relacione a história do Linux, a separação do kernel e as funções que o Linux desempenha em diferentes dispositivos.
  1. 1
    IntroduçãoUm nome, várias perspectivas

    Um notebook e um roteador podem executar Linux sem oferecer a mesma experiência. Para descrevê-los com clareza, separe três perguntas: de onde veio o sistema, qual parte gerencia o hardware (o kernel, que impede que programas comuns o controlem diretamente) e qual tarefa a máquina desempenha?

    Comece pela história e depois acompanhe a solicitação de um programa pelo sistema, do espaço de usuário para o kernel. Por fim, compare uma VM completa com um contêiner e identifique as funções de cliente e servidor.

  2. 2
    ExplicaçãoComece pelo Unix e pelo GNU

    O Unix começou no Bell Labs em 1969 e difundiu ideias como uma única árvore de diretórios e pequenas ferramentas que podem trabalhar juntas. O GNU começou em 1983 para construir um sistema operacional livre semelhante ao Unix.

    No início da década de 1990, o GNU tinha compiladores, bibliotecas, um shell e utilitários, mas seu kernel planejado não estava pronto para o uso cotidiano. Essas ferramentas eram uma parte importante de um sistema, mas não gerenciavam o hardware por si só como um kernel funcional faria.

  3. 3
    ExemploAcrescente o kernel Linux

    Torvalds começou o Linux em 1991, anunciou-o em agosto e publicou a versão 0.01 em setembro. O kernel passou para a GPL em 1992.

    Agora combine as contribuições: o Linux fornece o kernel, enquanto o GNU fornece grande parte do software ao redor dele. As distribuições reúnem as partes em sistemas instaláveis. É por isso que GNU/Linux pode dar crédito aos dois esforços sem tratar o GNU como um projeto acrescentado posteriormente.

  4. 4
    DesafioSitue a contribuição corretamente

    Uma colega diz: “O GNU foi criado depois do Linux para fornecer algumas ferramentas ao seu kernel.” Como você corrigiria a cronologia?

    ---reveal---

    O GNU começou em 1983; o Linux começou em 1991. Portanto, as ferramentas GNU já existiam antes do kernel Linux. A combinação do kernel com essas ferramentas ajudou a formar um sistema livre completo. A história envolve esforços separados que se uniram, não o início do GNU como resposta ao Linux.

  5. 5
    ExplicaçãoIdentifique o limite de acesso ao hardware

    O kernel gerencia tempo do processador, memória, dispositivos, arquivos, redes e permissões. Aplicativos e ambientes de área de trabalho são executados fora dele, no espaço de usuário.

    Um aplicativo usa uma chamada de sistema para solicitar um serviço do kernel. Essa separação limita o que programas comuns podem controlar diretamente. Drivers Linux são executados no kernel, frequentemente como módulos carregáveis, enquanto os menus e recursos de edição de documentos do aplicativo pertencem ao espaço de usuário.

  6. 6
    ExemploAcompanhe uma solicitação de arquivo

    Um editor de imagens precisa ler uma imagem salva.

    1. O editor solicita o arquivo por meio de uma chamada de sistema.
    2. O kernel verifica os direitos de acesso e usa código de sistema de arquivos e um driver de armazenamento para recuperar os bytes.
    3. O editor interpreta os bytes e exibe a imagem.

    O kernel não precisa saber como funciona a ferramenta de recorte do editor. Sua tarefa nessa solicitação é controlar o acesso ao recurso subjacente.

  7. 7
    DesafioExplique uma mudança de área de trabalho

    Dois computadores executam a mesma compilação do kernel. Um tem GNOME e o outro KDE Plasma, e seus menus são diferentes. Isso contradiz o fato de compartilharem o kernel?

    ---reveal---

    Não. Ambos os ambientes de área de trabalho são executados no espaço de usuário. Sua disposição e suas ferramentas podem ser diferentes enquanto o kernel cuida dos serviços de hardware para cada um. Uma atualização do kernel e uma mudança de área de trabalho são alterações separadas, portanto a aparência, por si só, não identifica a versão do kernel.

  8. 8
    ExplicaçãoDistinga uma VM de um contêiner

    Uma VM tem hardware virtual e seu próprio kernel. Um contêiner empacota processos e arquivos de aplicativos enquanto compartilha o kernel do hospedeiro. Contêineres Linux no Windows ou no macOS geralmente são executados dentro de uma pequena VM Linux.

  9. 9
    ExemploIdentifique funções em um serviço

    Um site de previsão do tempo é executado em uma VM Linux alugada. Um navegador solicita uma página de previsão, e o site solicita registros a um banco de dados separado.

    A VM alugada é uma instância na nuvem. O site atua como servidor para o navegador e como cliente para o banco de dados. “Cliente” e “servidor” descrevem essas trocas; não são rótulos permanentes para dois tipos de computador mutuamente exclusivos.

  10. 10
    DesafioClassifique um uso embarcado

    Um roteador de internet executa Linux e oferece uma página de configurações acessível pelo navegador. Que tipo de uso do Linux é esse e qual função o programa de configurações desempenha?

    ---reveal---

    O roteador é um sistema embarcado: um computador integrado a um dispositivo para uma finalidade específica. Seu programa de configurações atua como servidor ao fornecer páginas a um navegador. Ele não precisa de um ambiente de área de trabalho normal para oferecer esse serviço.

  11. 11
    DesafioConecte as partes

    Um celular Android abre um site hospedado em contêineres Linux em uma VM na nuvem. Os três ambientes precisam do mesmo software GNU de área de trabalho e qual deles tem o kernel dos contêineres?

    ---reveal---

    Eles não precisam do mesmo espaço de usuário. O Android tem seu próprio espaço de usuário, e o servidor pode funcionar sem uma área de trabalho. Os contêineres compartilham o kernel Linux da VM na nuvem; a VM executa esse kernel como seu sistema convidado.

  12. 12
    RecapitulaçãoDescreva um sistema com precisão

    Ao identificar um sistema, nomeie suas partes e funções: “Uma VM Linux na nuvem executa contêineres que fornecem páginas e solicitam registros de banco de dados.” Acrescente a distribuição ou o espaço de usuário quando for relevante. Isso descreve o ambiente sem presumir como é sua interface.

2

Escolha uma distribuição com base em requisitos reais

15 passos
Use pistas sobre famílias, fontes de pacotes, política de lançamento e requisitos de aplicativos para fazer uma escolha prática.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoComece pelos requisitos
  2. 2
    ExplicaçãoReconheça uma pista sobre a família
  3. 3
    ExemploIdentifique a família em um guia de instalação
  4. 4
    DesafioDistinga as funções na família Red Hat
  5. 5
    ExplicaçãoVeja do que um pacote precisa
  6. 6
    DicaAcompanhe mais de um caminho de atualização
  7. 7
    DesafioEscolha a fonte adequada
  8. 8
    ExplicaçãoSepare mudanças de duração
  9. 9
    ExemploCalcule um prazo de suporte
  10. 10
    DesafioEscolha uma versão para um servidor estável
  11. 11
    ExplicaçãoVerifique o aplicativo antes de mudar
  12. 12
    ExemploMantenha um aplicativo necessário funcionando
  13. 13
    DesafioAdapte a escolha a recursos limitados
  14. 14
    DesafioCombine os requisitos
  15. 15
    RecapitulaçãoRegistre o motivo da escolha
3

Decida o que uma licença permite

16 passos
Analise liberdades de software, condições de distribuição e elementos Creative Commons por meio de decisões exemplificadas.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoAnalise a ação e a permissão
  2. 2
    ExplicaçãoSepare código visível de direitos
  3. 3
    ExemploClassifique um download restrito
  4. 4
    DesafioExplique um programa aberto pago
  5. 5
    Ideia-chaveRelacione liberdade à escolha de fornecedor
  6. 6
    ExplicaçãoComece pelas condições permissivas
  7. 7
    ExemploModifique uma ferramenta GPL de forma privada
  8. 8
    ExemploDistribua a mesma ferramenta modificada
  9. 9
    DesafioCompare a condição de interação pela rede
  10. 10
    ConexãoVerifique a parte coberta e a versão
  11. 11
    ExplicaçãoLeia os elementos Creative Commons
  12. 12
    ExemploVerifique uma imagem para publicidade
  13. 13
    DesafioInterprete a condição ND sem ampliá-la
  14. 14
    DicaGuarde as informações de atribuição
  15. 15
    DesafioSepare código de conteúdo
  16. 16
    RecapitulaçãoUse uma verificação de licença repetível
4

Participe de um projeto e entenda seu financiamento

11 passos
Acompanhe uma contribuição desde o relato de um problema até a revisão e compare as formas de financiar o trabalho contínuo.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoVeja o trabalho em torno do código
  2. 2
    ExplicaçãoEncontre o canal de relato
  3. 3
    ExemploTransforme um sintoma em um relato
  4. 4
    ExplicaçãoEntenda revisão e governança
  5. 5
    DesafioMelhore o relato
  6. 6
    ExplicaçãoPague pela manutenção e operação
  7. 7
    ExemploCompare núcleo aberto e licenciamento duplo
  8. 8
    DesafioIdentifique o produto vendido
  9. 9
    ConexãoAcompanhe uma mudança de direção
  10. 10
    DesafioRelacione direitos e controle do projeto
  11. 11
    RecapitulaçãoEscolha uma primeira contribuição útil
5

Monte um conjunto de ferramentas para um curso online

13 passos
Associe o trabalho em computadores de uso pessoal, as plataformas de colaboração e os componentes de servidor às tarefas que realmente realizam.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoPlaneje as tarefas primeiro
  2. 2
    ExplicaçãoEscolha o resultado no computador
  3. 3
    ExemploPrepare um diagrama e uma gravação
  4. 4
    DesafioLeia a licença da compilação
  5. 5
    ExplicaçãoAtribua uma função a cada plataforma web
  6. 6
    ExemploMantenha as alterações no Git
  7. 7
    DesafioPreencha a função de plataforma ausente
  8. 8
    ExplicaçãoSepare os componentes do servidor
  9. 9
    ExemploAcompanhe a solicitação do aplicativo
  10. 10
    ConexãoRelacione uma linguagem ao seu ambiente de execução
  11. 11
    DesafioAnalise uma afirmação sobre portabilidade
  12. 12
    DesafioMonte o fluxo completo do curso
  13. 13
    RecapitulaçãoNomeie a função antes do produto
6

Prepare um ambiente Linux protegido para praticar

20 passos
Escolha um ambiente, verifique e instale-o e proteja as contas e os arquivos usados na prática.

Salve esta aula para seguir cada Lição Interativa passo a passo.

  1. 1
    IntroduçãoEscolha o que você precisa praticar
  2. 2
    ExplicaçãoAssocie a configuração à tarefa de aprendizagem
  3. 3
    ExemploVerifique a arquitetura e os recursos
  4. 4
    DesafioEscolha o ambiente
  5. 5
    ExplicaçãoObtenha a imagem correta
  6. 6
    ExemploSepare igualdade de origem
  7. 7
    ExemploAloque recursos e instale
  8. 8
    DicaCrie um ponto de partida recuperável
  9. 9
    DesafioDiagnostique o retorno ao instalador
  10. 10
    ExplicaçãoInstale o WSL no Windows
  11. 11
    ExemploInterprete a linha de estado do WSL
  12. 12
    DicaColoque os arquivos no local adequado
  13. 13
    DesafioEscolha o caminho de atualização correto
  14. 14
    ExplicaçãoUse credenciais exclusivas e fatores diferentes
  15. 15
    Ideia-chaveEntenda uma chave de acesso
  16. 16
    ExemploAssocie a proteção ao risco
  17. 17
    DicaReduza o alcance dos erros
  18. 18
    DesafioSepare criptografia de backup
  19. 19
    DesafioVerifique uma configuração antes de praticar
  20. 20
    RecapitulaçãoMantenha um pequeno registro de manutenção

Questões de Linux e código aberto

50 Questões de Prática em 5 conjuntos

Conjunto 1: Aplique as ideias a uma configuração funcional10 Questões de Prática

Questão 1 de 10

Um navegador solicita uma página dinâmica em um sistema LAMP baseado em PHP. Qual componente normalmente armazena os registros estruturados do aplicativo?
  1. Apache HTTP Server
  2. MySQL ou MariaDB
  3. O cache do navegador
  4. O carregador de inicialização
Mostrar respostaOcultar resposta
Resposta: B
O MySQL ou MariaDB fornece a camada de banco de dados que armazena e consulta os registros estruturados. O Apache trata as solicitações web recebidas e retorna conteúdo, enquanto o aplicativo PHP solicita ao banco de dados os dados necessários. O servidor web e o banco de dados cooperam, mas realizam partes diferentes da tarefa.

Questão 2 de 10

Um serviço Linux envia páginas a navegadores e solicita registros a um banco de dados separado. Quais funções ele desempenha?
  1. Servidor para navegadores e banco de dados
  2. Cliente para navegadores e banco de dados
  3. Servidor para navegadores e cliente do banco de dados
  4. Cliente dos navegadores e servidor para o banco de dados
Mostrar respostaOcultar resposta
Resposta: C
O serviço fornece páginas aos navegadores, portanto é o servidor deles. Ele solicita dados ao banco de dados, portanto é cliente nessa troca. Chamar a máquina inteira de servidor não impede que um programa nela atue como cliente de outro serviço.

Questão 3 de 10

Uma versão é lançada em fevereiro de 2027 com 18 meses de suporte. Ela é instalada em abril de 2028. Quando termina o período de suporte publicado?
  1. Agosto de 2028
  2. Outubro de 2029
  3. Fevereiro de 2029
  4. Julho de 2028
Mostrar respostaOcultar resposta
Resposta: A
Dezoito meses após fevereiro de 2027 é agosto de 2028: um ano chega a fevereiro de 2028 e mais seis meses chegam a agosto. Instalar em abril não reinicia a contagem da versão. Contar a partir da instalação estenderia incorretamente uma data determinada pelo ciclo de vida publicado da versão.

Questão 4 de 10

Uma pessoa depende do Adobe Photoshop para computador e quer começar a aprender Linux sem interromper esse trabalho. Qual é uma abordagem prática?
  1. Substituir o hospedeiro por Linux e executar o mesmo instalador
  2. Considerar garantido o suporte do Wine para toda versão
  3. Usar o Terminal do macOS como instalação Linux completa
  4. Manter o hospedeiro funcional e acrescentar uma VM Linux para prática
Mostrar respostaOcultar resposta
Resposta: D
Manter o hospedeiro funcional preserva o aplicativo necessário para computador enquanto uma VM oferece prática com Linux. O Photoshop não tem edição nativa para computadores Linux, e o Wine não é garantia para todo programa ou versão do Windows. Um terminal macOS no estilo Unix também não fornece um kernel Linux.

Questão 5 de 10

O que significa NC em uma licença Creative Commons?
  1. A atribuição não é necessária
  2. Novas cópias devem usar código-fonte
  3. A reutilização comercial é excluída
  4. Todas as adaptações precisam de títulos idênticos
Mostrar respostaOcultar resposta
Resposta: C
NC significa NãoComercial: a licença não autoriza o uso comercial. A atribuição é uma condição separada, representada por BY, e continua sendo exigida nas licenças NC. Dar crédito não transforma um uso comercial em um uso não comercial autorizado.

Questão 6 de 10

Um dispositivo é fornecido com um kernel Linux GPL-2.0-only modificado e um programa proprietário separado no espaço de usuário que usa chamadas de sistema comuns. O fornecedor quer manter privado o programa do espaço de usuário. Qual plano de distribuição decorre desses fatos?
  1. Lançar os dois programas sob GPLv3 com todos os códigos-fonte
  2. Fornecer o código do kernel sob GPLv2 e manter o programa separado proprietário
  3. Publicar o código do programa e manter privadas as alterações no kernel
  4. Não fornecer códigos-fonte porque os clientes recebem um dispositivo, não arquivos
Mostrar respostaOcultar resposta
Resposta: B
Fornecer o dispositivo distribui o kernel modificado, portanto seu código-fonte correspondente e os direitos da GPLv2 devem ser fornecidos por um meio válido. Chamadas de sistema comuns não colocam o programa separado do espaço de usuário sob a GPL do kernel. GPL-2.0-only também não permite simplesmente substituir a licença do kernel pela GPLv3.

Questão 7 de 10

Um fornecedor vende um complemento proprietário de relatórios junto com seu aplicativo central de código aberto. Qual é esse modelo de negócio?
  1. Modelo de núcleo aberto
  2. Licenciamento duplo
  3. Financiamento por doações
  4. Assinatura de suporte
Mostrar respostaOcultar resposta
Resposta: A
O modelo de núcleo aberto combina uma base de código aberto com recursos ou componentes proprietários pagos. O licenciamento duplo, por sua vez, oferece o mesmo código sob termos de licença alternativos. A compra descrita fornece um recurso extra de relatórios, em vez de apenas suporte ou uma licença diferente para código idêntico.

Questão 8 de 10

Que tipo de ferramenta é o Git, independentemente de serviços como o GitHub?
  1. Um aplicativo de reuniões no navegador
  2. Uma plataforma de cursos e notas
  3. Um serviço de banco de dados hospedado
  4. Um sistema de controle de versão distribuído
Mostrar respostaOcultar resposta
Resposta: D
O Git registra o histórico do projeto por meio de registros de alteração e apoia o trabalho com ramificações e mesclagens. O GitHub é um serviço de hospedagem e colaboração em torno de repositórios Git. Confundi-los facilita a suposição de que o histórico do projeto pertence a apenas um provedor de hospedagem, embora clones completos do Git também carreguem esse histórico.

Questão 9 de 10

O hash completo da ISO de uma pessoa corresponde a um valor em uma página de servidor espelho desconhecido. O instalador é para a arquitetura correta, mas ela ainda não tem informações confiáveis de soma de verificação. Qual sequência de verificação trata do risco não resolvido?
  1. Comparar apenas os primeiros caracteres do hash após instalar
  2. Verificar as somas assinadas da distribuição e comparar o hash completo da ISO
  3. Renomear a ISO e comparar novamente o mesmo valor do espelho
  4. Criar um instantâneo da VM e tratar a soma do espelho como autêntica
Mostrar respostaOcultar resposta
Resposta: B
A questão não resolvida é a origem da soma de verificação de referência, não a arquitetura ou a capacidade de reverter uma VM. Verifique as informações assinadas de somas de verificação da distribuição usando uma chave autêntica e depois compare o hash inteiro da ISO. Um instantâneo não pode autenticar um download fornecido antes da instalação.

Questão 10 de 10

Uma listagem do WSL mostra * Fedora Stopped 2. O que o asterisco identifica?
  1. O Fedora é a versão 2
  2. O Fedora está em execução
  3. O Fedora é o padrão
  4. O Fedora precisa de uma atualização
Mostrar respostaOcultar resposta
Resposta: C
O asterisco marca a distribuição iniciada por padrão quando o WSL é iniciado sem indicar outra. Stopped informa seu estado atual, e 2 identifica o WSL 2. A saída não diz que a versão do Fedora é 2 nem que há uma atualização pendente.
Conjunto 2: Primeiras decisões sobre Linux10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Um grupo de pesquisa precisa de um fluxograma cujas linhas permaneçam nítidas em uma coluna estreita de relatório e em um grande painel de exposição. Qual ferramenta e tipo de imagem são adequados para essa tarefa?
  1. GIMP com imagens matriciais
  2. Krita com pinturas
  3. Inkscape com gráficos vetoriais
  4. Blender com renderizações 3D
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Qual projeto já desenvolvia ferramentas livres para sistemas operacionais antes de o kernel Linux começar em 1991?
  1. A Linux Foundation
  2. O Projeto GNU
  3. O projeto Ubuntu
  4. O projeto Android
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Qual parte de um sistema Linux verifica as permissões de acesso a arquivos quando um aplicativo solicita um arquivo armazenado?
  1. O gerenciador de janelas
  2. O instalador de aplicativos
  3. O navegador de arquivos
  4. O kernel Linux
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Qual gerenciador de pacotes de alto nível normalmente pertence ao Ubuntu?
  1. apt
  2. zypper
  3. dnf
  4. pacman
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Falta uma biblioteca necessária para um programa após a instalação de um arquivo de pacote local. Que tipo de ferramenta pode buscar a dependência ausente nos repositórios configurados?
  1. Um instalador de pacotes de baixo nível
  2. Um utilitário de comparação de somas
  3. Um gerenciador de pacotes de alto nível
  4. Uma ferramenta de temas gráficos
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Um aplicativo proprietário é gratuito para download e sua licença proíbe modificações. Qual categoria descreve seu preço e seus direitos?
  1. Software de código aberto
  2. Software proprietário gratuito
  3. Software de domínio público
  4. Software sob copyleft
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Uma empresa inclui uma biblioteca de análise sintática licenciada sob a MIT em um aplicativo proprietário que distribui. O que ela deve manter para essa biblioteca?
  1. O aviso original de direitos autorais e o texto da licença
  2. Uma licença GPL para todo o código-fonte do aplicativo
  3. Um acordo que proíba cópias pagas da biblioteca
  4. Uma promessa de publicar cada modificação interna
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Quem normalmente decide se uma contribuição proposta entra na versão oficial de um projeto de código aberto?
  1. Todas as pessoas que baixam o código-fonte
  2. O provedor que hospeda o site público do projeto
  3. Os usuários que compraram suporte mais recentemente
  4. Os mantenedores autorizados do projeto
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Riley tem um notebook ARM64, precisa do instalador e do carregador de inicialização Linux normais e quer manter o sistema operacional atual em execução durante a prática. Qual configuração atende aos três requisitos?
  1. Uma VM convidada ARM64 em um hipervisor compatível
  2. Uma VM convidada x86-64 com virtualização ARM normal
  3. Um USB ARM64 executável no lugar do sistema atual
  4. Um contêiner ARM64 dentro do sistema hospedeiro atual
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Uma conta já usa uma senha. Qual acréscimo faz sua autenticação usar um tipo diferente de fator?
  1. Uma segunda senha com mais símbolos
  2. Uma resposta separada a uma pergunta secreta
  3. Uma versão mais longa da mesma frase secreta
  4. Uma chave física de segurança obrigatória
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Conjunto 3: Compare alternativas próximas10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Uma exposição identifica o Linux como “uma versão renomeada da árvore de código-fonte original do Unix”. Qual correção explica sua relação com o Unix?
  1. O Linux substituiu apenas o nome do BSD de Berkeley
  2. O Linux era o kernel original do GNU lançado em 1983
  3. O Linux começou como o kernel XNU da Apple com a marca GNU
  4. O Linux segue de forma independente um projeto semelhante ao Unix
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Dois contêineres Linux são executados dentro de uma VM Linux em um computador Windows. Essa é a única VM envolvida. Quantos kernels Linux permitem a execução desses contêineres e onde esse kernel é executado?
  1. Dois, um dentro de cada contêiner
  2. Um, executado como kernel convidado da VM Linux
  3. Um, instalado diretamente como kernel do Windows
  4. Três, um na VM e um em cada contêiner
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Uma distribuição usa musl, BusyBox e a ferramenta de pacotes apk. Qual distribuição é descrita?
  1. Arch Linux
  2. Alpine Linux
  3. Debian GNU/Linux
  4. openSUSE Leap
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Em janeiro de 2028, uma equipe escolhe entre o Debian 13, cujo suporte completo termina em 9 de agosto de 2028 e cujo LTS termina em 30 de junho de 2030, e uma versão intermediária cujo suporte termina em julho de 2028. Ela precisa de cobertura até dezembro de 2029 e aceita a cobertura do Debian LTS para todos os pacotes necessários. Qual plano atende à necessidade?
  1. Usar o Debian 13 e planejar sua fase LTS após agosto de 2028
  2. Usar o Debian 13 e presumir que o suporte completo dura até 2030
  3. Usar a versão intermediária porque a instalação reinicia o suporte
  4. Usar qualquer versão sem mudanças porque ambas começam o projeto com suporte
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Um repositório público de programa tem uma licença que proíbe o uso por concorrentes comerciais. Por que a visibilidade do código-fonte não estabelece que ele seja de código aberto?
  1. Licenças de código aberto devem proibir a cobrança por cópias
  2. Todo projeto de código aberto deve pertencer a uma fundação
  3. A licença restringe quem pode usar o software
  4. O código-fonte deve ficar oculto até o usuário pagar por suporte
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Uma editora quer traduzir um artigo CC BY-SA 4.0, vender a tradução e dar todos os créditos. Ela propõe uma licença que proíbe a reutilização comercial posterior. O que deve mudar?
  1. Parar a venda e manter a proibição comercial proposta
  2. Remover o crédito ao autor para permitir a venda comercial
  3. Manter a tradução privada e nunca publicá-la
  4. Usar termos CompartilhaIgual que permitam a reutilização comercial
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Um relato reproduz um erro em várias distribuições usando a mesma versão do aplicativo, e as orientações do projeto direcionam erros gerais ao projeto de origem. Para onde o relato deve ser enviado?
  1. Ao sistema de acompanhamento do projeto original do aplicativo
  2. Ao sistema de cada distribuição como erro apenas de empacotamento
  3. À página de suporte a downloads do espelho da distribuição
  4. Ao sistema de uma nova bifurcação em vez do projeto de origem ativo
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Qual aplicativo é adequado para editar e limpar uma gravação de voz?
  1. OBS Studio
  2. Kodi
  3. Audacity
  4. Inkscape
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Um hospedeiro tem 24 GB de RAM. Um sistema convidado planejado precisa de 6 GB, e a carga de trabalho do hospedeiro precisa de 12 GB disponíveis. Quanta RAM resta após reservar os dois valores necessários?
  1. 18 GB
  2. 30 GB
  3. 12 GB
  4. 6 GB
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Uma página HTTPS pede uma senha de nuvem, mas seu domínio está escrito incorretamente. Qual conclusão deve orientar a decisão de fazer login?
  1. A criptografia confirma que o site pertence ao provedor de nuvem
  2. A conexão pode ser criptografada enquanto o site é uma imitação
  3. Um domínio escrito incorretamente impede conexões criptografadas
  4. O cadeado prova que a conta solicitada está protegida por MFA
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Conjunto 4: Diagnostique decisões de configuração e reutilização10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Qual informação o L identifica no lembrete de atribuição TASL?
  1. O idioma da obra
  2. A localização da obra
  3. A duração do arquivo
  4. A licença da obra
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Uma distribuição com suporte mantém o número de base original do kernel, mas instala novas compilações de segurança. Por que o número de base, por si só, é um motivo insuficiente para dizer que ele não recebeu correções?
  1. Atualizações do espaço de usuário tornam irrelevantes todas as falhas do kernel
  2. O número de base do kernel sempre identifica o código mais recente
  3. A distribuição pode adaptar correções para essa base do kernel
  4. O ambiente de área de trabalho controla a versão de segurança do kernel
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Um editor de imagens foi instalado pelo Flatpak, enquanto o sistema operacional usa apt. O usuário executa a atualização normal com apt, mas o editor permanece inalterado. Qual caminho de manutenção deve ser verificado?
  1. Reinstalar todos os pacotes com a ferramenta de baixo nível rpm
  2. Mudar o ambiente de área de trabalho para atualizar o editor
  3. Usar o comando de soma da ISO para atualizar suas dependências
  4. Verificar também o mecanismo de atualização Flatpak do editor
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Um laboratório tem computadores ARM64, precisa de um aplicativo empacotado apenas para uma versão ARM64 baseada em Debian e quer poucas mudanças amplas. Há memória suficiente para todas as opções. Qual opção atende a esses requisitos?
  1. Uma versão fixa ARM64 baseada em Debian que ofereça suporte ao pacote
  2. Uma configuração ARM64 de atualização contínua baseada em RPM com o pacote Debian
  3. Uma ramificação ARM64 de desenvolvimento Debian escolhida para mudanças rápidas
  4. Uma versão fixa Debian x86-64 usando virtualização direta
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Uma equipe quer distribuir um único programa combinado GPLv2-only com um componente Apache-2.0 e presume que as duas licenças são compatíveis por serem de código aberto. O que precisa ser reconsiderado?
  1. Se alguma das licenças permite cobrar por cópias
  2. A combinação: Apache 2.0 não é compatível com GPLv2-only
  3. A necessidade de dar crédito aos autores, pois código aberto elimina direitos autorais
  4. Se documentos privados devem ser lançados sob Apache 2.0
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Um fornecedor muda novas versões de uma licença aberta para termos restritivos de código-fonte disponível. Uma comunidade quer continuar desenvolvendo a versão aberta que já recebeu e vender suporte para a bifurcação. O que decorre das permissões originais?
  1. Ela deve obter aprovação do fornecedor para cada futura correção da bifurcação
  2. Ela só pode bifurcar se nunca receber dinheiro por qualquer serviço
  3. Ela pode continuar a versão aberta e vender suporte conforme a licença
  4. Ela perde todos os direitos de modificação quando a nova versão é publicada
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Uma pequena organização auto-hospeda o Nextcloud para controlar seus arquivos compartilhados. Qual responsabilidade permanece com quem o opera?
  1. Manter atualizações, backups e segurança do serviço
  2. Converter todos os arquivos dos usuários em código-fonte de programas
  3. Remover todos os controles de acesso porque o código é aberto
  4. Obter uma conta GitHub para cada download de arquivo
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Uma equipe migra ferramentas do Linux x86-64 para o Linux ARM64. Uma é um executável nativo compilado em C, outra é bytecode Java e outra é um script Python que usa módulos extras. Qual plano de migração verifica os três caminhos de execução?
  1. Copiar o executável C sem alterações; instalar uma JVM e verificar os módulos Python
  2. Compilar C nativo para ARM64; verificar a JVM, o ambiente Python, as dependências e as APIs do sistema
  3. Recompilar C para ARM64; executar bytecode Java diretamente na CPU e copiar apenas o interpretador Python
  4. Copiar os três sem alterações porque toda distribuição Linux oferece suporte de execução idêntico
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Uma pessoa quer verificar o Wi-Fi e os gráficos de um notebook no Linux antes de decidir instalá-lo. Qual configuração testa melhor esse hardware sem instalar o Linux?
  1. Uma sessão USB executável sem instalação no notebook
  2. Um contêiner em uma instância remota na nuvem
  3. Uma sessão WSL em outro computador
  4. Uma VM usando apenas sua placa de rede virtual
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Uma pessoa define wsl --set-default-version 2 e espera que uma distribuição WSL 1 existente mude imediatamente. Qual é o erro?
  1. O comando escolhe qual nome de usuário Linux é padrão
  2. O comando altera a arquitetura do processador do hospedeiro Windows
  3. O comando define a versão para futuras instalações de distribuições
  4. O comando atualiza todos os pacotes de aplicativos Linux instalados
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Conjunto 5: Relacione escolhas de Linux, direitos e proteção10 Questões de Prática

Salve esta aula para ver todas as respostas e praticar cada conjunto.

Questão 1 de 10

Uma pessoa instala o KDE Plasma ao lado do GNOME, mas mantém o mesmo kernel. Qual mudança deve ser esperada ao escolher o KDE Plasma no login?
  1. Uma atualização automática para uma distribuição mais recente
  2. Uma nova área de trabalho que não executa programas do espaço de usuário
  3. Um espaço de trabalho gráfico diferente no espaço de usuário
  4. Um kernel convidado separado para a nova área de trabalho
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 2 de 10

Qual software de integração da VM geralmente habilita o redimensionamento automático da tela após a instalação do Linux?
  1. Uma assinatura de arquivo de soma de verificação
  2. As ferramentas do hipervisor para o sistema convidado
  3. Uma imagem para outro processador
  4. A versão candidata a lançamento da distribuição
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 3 de 10

Um hospedeiro Linux com suporte tem um navegador instalado pelo repositório e um aplicativo de desenho Flatpak. Uma atualização de alto nível da distribuição atualiza o navegador, mas não o aplicativo. O ambiente de execução do aplicativo é mais antigo que as bibliotecas do hospedeiro. Qual conclusão de manutenção decorre disso?
  1. Atualizar também pelo Flatpak, pois o ambiente incluído segue esse sistema
  2. Substituir o aplicativo por um RPM, pois todo pacote Linux usa bibliotecas do hospedeiro
  3. Ignorar o aplicativo porque atualizar uma biblioteca do hospedeiro corrige toda cópia incluída
  4. Executar o instalador de pacotes de baixo nível para buscar todas as dependências Flatpak
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 4 de 10

Um serviço deve funcionar até março de 2030. Sua versão atual tem suporte completo até agosto de 2028 e LTS até junho de 2030, mas um pacote necessário está excluído desse serviço LTS. Não há suporte separado para esse pacote. Qual plano decorre disso?
  1. Mantê-lo sem alterações até o fim do LTS em junho de 2030
  2. Reinstalar a mesma versão em 2029 para reiniciar o suporte
  3. Mudar para sua ramificação beta para obter um novo período de suporte
  4. Substituir o pacote sem suporte antes de agosto de 2028
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 5 de 10

Uma organização modifica de forma privada uma ferramenta GPL e um aplicativo web AGPL separado. Ela não distribui nenhum dos dois, mas permite que usuários externos interajam online com o aplicativo AGPL modificado. Qual obrigação relativa ao código-fonte decorre dessas ações?
  1. Oferecer o código-fonte dos dois programas modificados, inclusive da ferramenta GPL usada privadamente
  2. Não oferecer o código-fonte de nenhum dos programas porque nenhum binário sai da organização
  3. Oferecer o código-fonte AGPL aos usuários da rede; o uso privado da GPL não exige oferta
  4. Oferecer o código-fonte da ferramenta GPL, mas não do aplicativo AGPL usado apenas pela rede
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 6 de 10

Uma colaboradora não consegue que uma alteração seja aceita e, em vez disso, desenvolve uma bifurcação permitida. Quem decide se essa alteração aparece no projeto original?
  1. As pessoas autorizadas a decidir no projeto original
  2. A empresa que hospeda a página de download da bifurcação
  3. Todos os usuários que baixaram qualquer uma das versões
  4. A colaboradora, porque uma bifurcação substitui a autoridade do projeto de origem
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 7 de 10

Um fornecedor oferece código idêntico de uma biblioteca sob a GPL ou uma licença comercial paga e depois acrescenta recursos proprietários a uma edição mais recente. Uma comunidade continua uma versão GPL anterior e vende suporte. Quais modelos descrevem a escolha de licença, os recursos acrescentados e a receita da comunidade?
  1. Núcleo aberto; licenciamento duplo; hospedagem
  2. Licenciamento duplo; núcleo aberto; serviços de suporte
  3. Serviços de suporte; hospedagem; licenciamento duplo
  4. Licenciamento duplo; serviços de suporte; núcleo aberto
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 8 de 10

Um servidor de arquivos Linux deve atender clientes Windows por SMB. Qual software atende a esse requisito?
  1. Fornecimento de arquivos pelo servidor web NGINX
  2. Compartilhamento de diretórios por NFS
  3. Compartilhamento de arquivos web pelo Nextcloud
  4. Samba implementando compartilhamento de arquivos por SMB
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 9 de 10

Um hospedeiro Intel de 64 bits tem 12 GB de RAM. Um sistema convidado com área de trabalho precisa de 6 GB, e a carga de trabalho do hospedeiro precisa de 8 GB. A ISO baixada é ARM64. Quais mudanças resolvem os dois problemas de configuração sem emulação entre arquiteturas?
  1. Usar uma imagem amd64 e um convidado mais leve que precise de no máximo 4 GB de RAM
  2. Usar uma imagem amd64 e reservar 6 GB de RAM para o convidado com área de trabalho planejado
  3. Usar uma imagem ARM64 e um convidado mais leve que precise de no máximo 4 GB de RAM
  4. Usar uma imagem amd64 e executar a área de trabalho de 6 GB sem alterações com apenas 4 GB de RAM
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Questão 10 de 10

Uma pessoa planeja publicar uma captura de tela da configuração contendo uma chave de API de nuvem e uma chave pública SSH. Qual item deve ser removido por ser uma credencial secreta?
  1. A chave pública, deixando a chave de API visível
  2. As duas chaves, porque chaves públicas nunca devem chegar a servidores
  3. A chave de API, enquanto uma chave pública SSH pode ser compartilhada
  4. Nenhuma das chaves, porque uma captura de tela não pode conceder acesso
Mostrar respostaOcultar resposta

Salve esta aula para ver esta resposta.

Travou em uma questão sua? Ajuda com Tarefas

Termos-Chave

108 Termos-Chave, cada um com sua definição

A

Alpine Linux
O Alpine Linux é uma pequena distribuição construída com musl e BusyBox, que usa apk e oferece ramificações estáveis e a ramificação de desenvolvimento edge.
Uma desenvolvedora pode escolher o Alpine como uma base pequena para contêineres, verificando se as bibliotecas necessárias são compatíveis.
Ambiente de área de trabalho
Um ambiente de área de trabalho é um software do espaço de usuário que fornece o espaço gráfico de trabalho, incluindo janelas, menus, painéis e ferramentas relacionadas.
Uma pessoa que usa Linux pode escolher o Xfce para ter uma interface mais leve sem escolher outro tipo de kernel.
Aplicativo nativo
Um aplicativo nativo é construído para funcionar em um sistema operacional e uma arquitetura específicos usando as interfaces oferecidas por esse ambiente.
Uma edição Linux de um programa difere da execução de seu arquivo executável Windows por meio do Wine.
Arquitetura do processador
Uma arquitetura do processador é o projeto do conjunto de instruções ao qual o código de máquina se destina, como x86-64 ou ARM64, que afeta a compatibilidade das imagens.
Um notebook ARM64 precisa de uma imagem convidada compatível para a virtualização comum, em vez de uma ISO x86-64.
Assinatura de suporte
Uma assinatura de suporte vende serviços contínuos relacionados ao software, como compilações mantidas, cobertura de segurança, certificação e ajuda técnica.
Uma empresa paga por um compromisso de resposta e manutenção prolongada mesmo quando pode obter o código-fonte aberto.
Assinatura digital
Uma assinatura digital vincula dados a uma chave de assinatura para que quem verifica, com uma chave pública autêntica, possa conferir o signatário e detectar alterações.
Verificar a assinatura de um arquivo de somas de verificação acrescenta uma verificação de origem que uma simples correspondência de hash não oferece.
Atribuição
Atribuição é o crédito que identifica uma obra reutilizada, seu criador, sua fonte e sua licença, com as informações exigidas sobre alterações.
O crédito de uma foto inclui links para o original e para a licença e informa que a versão publicada foi recortada.
Atualização contínua (rolling release)
A atualização contínua atualiza constantemente os pacotes para versões mais recentes dos projetos de origem sem exigir atualizações entre versões principais numeradas.
Uma pessoa que usa Arch mantém o sistema atualizado por meio de atualizações regulares e acompanha mudanças que podem exigir atenção.
Autenticação multifator
A autenticação multifator exige comprovação de diferentes tipos de fatores, como o conhecimento de uma senha e a posse de uma chave de segurança.
Uma senha mais uma segunda senha ainda são um único tipo de fator; uma chave física acrescenta o fator de posse.
Auto-hospedagem
Auto-hospedagem significa executar um aplicativo em servidores que você escolhe e gerencia, assumindo a responsabilidade pela manutenção, segurança e backups.
Uma cooperativa executa seu próprio serviço Nextcloud e designa alguém para mantê-lo e restaurar arquivos perdidos.

B

Banco de dados relacional
Um banco de dados relacional armazena dados estruturados em tabelas relacionadas e oferece suporte a consultas, geralmente por SQL, para recuperá-los ou alterá-los.
O código de um aplicativo web solicita registros ao MariaDB antes de criar a página enviada ao navegador.
Bifurcação de projeto (fork)
Uma bifurcação de projeto é uma cópia de um projeto de software desenvolvida de forma independente, permitindo que uma comunidade continue o trabalho em outra direção.
O LibreOffice começou como uma bifurcação do OpenOffice.org e desenvolveu sua própria organização de projeto.
Binário
Um binário é uma forma compilada de programa destinada à execução, geralmente contendo código de máquina para uma arquitetura de processador específica.
Um binário x86-64 compilado não se torna diretamente um programa ARM64 ao ser copiado para outro computador.
BSD
BSD é a Berkeley Software Distribution, uma ramificação do Unix cujos descendentes incluem FreeBSD, OpenBSD e NetBSD.
Interfaces semelhantes no estilo Unix não significam que o FreeBSD e uma distribuição Linux usem o mesmo kernel.
Bytecode
Bytecode é uma representação intermediária de programa executada por uma máquina virtual adequada em vez de diretamente pelo processador como código nativo.
Um aplicativo Java geralmente usa bytecode e uma JVM, diferentemente do JavaScript executado em um mecanismo de navegador.

C

Camada de compatibilidade
Uma camada de compatibilidade implementa interfaces esperadas por software de outro sistema para que os aplicativos compatíveis possam ser executados.
O Wine pode executar muitos aplicativos Windows no Linux, mas a compatibilidade de um aplicativo necessário deve ser verificada.
CC0
CC0 é uma declaração de dedicação ao domínio público e uma permissão alternativa que busca eliminar restrições de direitos autorais até onde a lei permite.
Uma imagem CC0 de um criador pode ser reutilizada sem condição de crédito, embora reconhecer o criador continue sendo uma boa prática.
CentOS Stream
O CentOS Stream é uma distribuição desenvolvida continuamente que mostra alterações previstas para o próximo lançamento secundário do Red Hat Enterprise Linux.
Uma equipe que testa futuras atualizações do RHEL distingue o CentOS Stream da recompilação CentOS Linux, que foi descontinuada.
Certificado de Origem do Desenvolvedor (DCO)
O Certificado de Origem do Desenvolvedor é uma confirmação de contribuição que certifica que quem envia o trabalho tem o direito de oferecê-lo.
Uma colaboradora do kernel acrescenta uma linha Signed-off-by em vez de presumir que uma correção pública não precisa de verificação de direitos.
Chamada de sistema
Uma chamada de sistema é uma solicitação controlada de um programa no espaço de usuário para um serviço do kernel, como ler um arquivo ou enviar dados pela rede.
Um navegador solicita operações de rede por meio de serviços do kernel em vez de controlar diretamente a placa de rede.
Chave de acesso (passkey)
Uma chave de acesso é uma credencial criptográfica vinculada a um serviço cuja chave privada é desbloqueada localmente para assinar um login sem compartilhar uma senha.
Um site falso não pode coletar um segredo de chave de acesso digitado e reutilizável como poderia coletar uma senha.
Cliente
Um cliente é um programa ou dispositivo que solicita um serviço a outro sistema, como um navegador que solicita uma página a um servidor web.
Um servidor web torna-se cliente de banco de dados quando pede informações de produtos a outro servidor.
Código-fonte
Código-fonte é a forma legível de um programa escrita por desenvolvedores, que pode ser estudada e editada antes de ser compilada ou executada.
Ver o código-fonte em um site ajuda na inspeção, mas a licença determina se você pode reutilizá-lo.
CompartilhaIgual
CompartilhaIgual exige que uma adaptação compartilhada use a mesma licença ou uma licença compatível permitida, preservando os termos de reutilização especificados.
Uma tradução de um texto CC BY-SA deve manter os termos de compartilhamento exigidos quando for publicada.
Compilador
Um compilador traduz o código-fonte de um programa para outra forma executável, geralmente código de máquina destinado a uma arquitetura de processador.
Compilar um programa C para x86-64 não produz ao mesmo tempo um executável ARM64 nativo.
Conta Linux
Uma conta Linux identifica um usuário dentro de uma instalação Linux, com suas próprias permissões e uma senha separada da conta do Windows.
Uma nova conta Ubuntu no WSL pode ter nome e senha diferentes dos usados no login Windows do hospedeiro.
Contêiner
Um contêiner é um grupo isolado de processos empacotado com arquivos e bibliotecas de um aplicativo que compartilha o kernel do sistema operacional hospedeiro.
Vários contêineres Linux podem executar aplicativos separados usando o mesmo kernel Linux subjacente.
Copyleft
Copyleft usa condições de licença para manter o código coberto e seu código-fonte exigido disponíveis com liberdades contínuas quando ocorrem usos que acionam essas condições.
Distribuir uma ferramenta GPL modificada exige preservar os direitos da GPL e fornecer o código-fonte correspondente por um método válido.
Creative Commons
A Creative Commons fornece licenças e ferramentas de domínio público para compartilhar conteúdo como textos, imagens, músicas e materiais educacionais.
Um projeto pode licenciar seu manual sob CC BY enquanto escolhe uma licença específica de software para seu código.

D

Dados em repouso
Dados em repouso são informações armazenadas em um disco ou outra mídia que a criptografia pode proteger caso alguém obtenha o dispositivo sem sua chave.
O LUKS protege um disco Linux perdido, mas ainda são necessários backups separados e informações de recuperação guardadas com segurança.
Dados em trânsito
Dados em trânsito são informações que se movem entre sistemas, protegidas contra interceptação e alteração por protocolos como HTTPS e SSH.
O SFTP protege uma transferência de arquivos pela rede, enquanto a criptografia de disco trata de um risco diferente para arquivos armazenados.
Debian testing
O Debian testing é a ramificação em que pacotes são reunidos e testados como candidatos à próxima versão estável do Debian.
Uma pessoa que testa o sistema distingue essa ramificação da stable, para implantações atuais, e da unstable, para pacotes que acabam de entrar.
Dependência
Uma dependência é outro pacote de que um programa precisa para funcionar, como uma biblioteca compartilhada usada para ler imagens ou conectar-se a um banco de dados.
Um gerenciador de alto nível busca uma biblioteca de imagens ausente quando o aplicativo solicitado depende dela.
Disco alocado dinamicamente
Um disco alocado dinamicamente usa o armazenamento do hospedeiro à medida que dados do convidado são gravados, crescendo até um máximo definido em vez de ocupar tudo imediatamente.
Um novo disco virtual de 40 GB pode começar pequeno, mas ainda precisa de armazenamento livre no hospedeiro à medida que os arquivos se acumulam.
Distribuição
Uma distribuição Linux é um sistema operacional instalável que reúne o kernel, o espaço de usuário, ferramentas de pacotes, configurações e manutenção.
Ubuntu e Debian empacotam muitos dos mesmos programas dos projetos de origem, mas fazem escolhas diferentes de lançamento e suporte.
Distribuição derivada
Uma distribuição derivada parte de outra distribuição e a adapta por meio de alterações no software, nas configurações, no suporte ou no uso pretendido.
O Ubuntu deriva do Debian, enquanto a edição principal do Linux Mint é construída sobre a base do Ubuntu.
Distribuição padrão
Uma distribuição padrão do WSL é a distribuição Linux instalada que inicia quando o WSL é iniciado sem selecionar outra distribuição.
Quando o WSL lista as distribuições instaladas em formato detalhado, um asterisco ao lado do Debian identifica a distribuição padrão, independentemente de seu estado de execução.
Driver de dispositivo
Um driver de dispositivo é um software que permite ao sistema operacional comunicar-se com um tipo específico de hardware, como um dispositivo de armazenamento ou de exibição.
O kernel usa o driver de armazenamento adequado quando lê bytes do disco do computador.

E

Espaço de usuário (userspace)
O espaço de usuário é a parte de um sistema fora do kernel, incluindo bibliotecas, utilitários, shells, ambientes de área de trabalho e aplicativos.
Mudar do GNOME para o KDE Plasma altera o espaço de usuário, enquanto a máquina pode manter o mesmo kernel.

F

Família de distribuições
Uma família de distribuições agrupa sistemas relacionados que geralmente compartilham uma base, um formato de pacotes e ferramentas, mantendo suas próprias versões.
Reconhecer a família Debian ajuda uma pessoa a esperar pacotes .deb e gerenciamento baseado em apt.
Fim do ciclo de vida (EOL)
O fim do ciclo de vida é o momento em que o serviço de suporte de uma versão deixa de fornecer atualizações, deixando falhas de segurança recém-descobertas sem essa cobertura.
Uma máquina instalada pouco antes do EOL ainda precisa de uma atualização de versão porque a data de instalação não estende o suporte.
Formato OpenDocument (ODF)
O Formato OpenDocument é um padrão internacional para arquivos de escritório, usado pelo LibreOffice com extensões como .odt, .ods e .odp.
O Writer salva um documento como .odt por padrão, mas também oferece formatos usados por outras suítes de escritório.
Formato universal de pacotes
Um formato universal de pacotes reúne um aplicativo com mais software de apoio para ajudá-lo a funcionar em várias distribuições Linux.
Um Flatpak pode oferecer um aplicativo de computador mais recente em um sistema LTS, com downloads maiores e seu próprio caminho de atualização.

G

Gerenciador de pacotes
Um gerenciador de pacotes acompanha os pacotes de software instalados; gerenciadores de alto nível também baixam pacotes, resolvem dependências e cuidam das atualizações.
O apt pode buscar um programa e suas dependências ausentes, enquanto o dpkg, sozinho, trabalha com arquivos de pacote locais.
Gerenciador de senhas
Um gerenciador de senhas gera e armazena credenciais fortes e exclusivas em um cofre criptografado, reduzindo a necessidade de lembrar cada senha.
Uma pessoa usa senhas diferentes para suas contas e protege o cofre com uma senha mestra forte e não reutilizada.
Gerenciamento de configuração
O gerenciamento de configuração aplica repetidamente um estado desejado de sistema descrito, ajudando a manter software, configurações e serviços consistentes.
Uma administradora pode aplicar uma configuração de serviço testada a um conjunto de máquinas com o Ansible.
Git
O Git é um sistema de controle de versão distribuído que registra o histórico do projeto por meio de registros de alteração e oferece suporte a ramificações, mesclagens e repositórios clonados.
Uma desenvolvedora pode manter o histórico do projeto localmente e depois enviar alterações a um serviço de hospedagem escolhido.
GNU
GNU é um projeto anunciado em 1983 para criar um sistema operacional livre semelhante ao Unix, fornecendo ferramentas, bibliotecas e outros softwares do espaço de usuário.
Bash e GCC são contribuições do GNU que podem funcionar junto ao kernel Linux, desenvolvido de forma independente.
GNU/Linux
GNU/Linux é o nome de um sistema operacional que combina o kernel Linux com o espaço de usuário GNU, dando crédito às duas contribuições.
O Debian usa o nome GNU/Linux, enquanto o Android tem um kernel Linux com um espaço de usuário diferente.
Gráfico vetorial
Um gráfico vetorial representa formas matematicamente, permitindo redimensioná-las enquanto preserva bordas bem definidas.
O Inkscape é adequado para um símbolo que precisa ser impresso com nitidez tanto em uma pequena etiqueta quanto em uma placa grande.

H

Hipervisor
Um hipervisor fornece e gerencia hardware virtual para que vários sistemas operacionais convidados possam ser executados em uma máquina física.
A ferramenta de VM atribui CPUs virtuais, memória, discos e rede ao novo sistema Linux convidado.

I

Identificador SPDX
Um identificador SPDX é uma identificação curta e padronizada de uma licença ou escolha de licença, como MIT, Apache-2.0 ou GPL-2.0-only.
Ler GPL-2.0-only evita confundir essa permissão com a possibilidade de escolher distribuir sob GPLv3.
Imagem ISO
Uma imagem ISO é um único arquivo que representa o conteúdo de um disco de instalação, geralmente conectado como mídia virtual para iniciar um instalador Linux.
Uma VM inicia a partir da ISO conectada para a instalação e depois inicializa pelo novo disco virtual.
Imagem matricial (raster)
Uma imagem matricial representa uma imagem como uma grade de pixels, fazendo com que seus detalhes visíveis dependam da resolução de pixels disponível.
O GIMP retoca uma fotografia, mas ampliá-la muito pode revelar a estrutura de pixels subjacente.
Inicialização dupla (dual boot)
A inicialização dupla instala dois sistemas operacionais em um computador e apresenta uma escolha na inicialização, com apenas o sistema selecionado sendo executado normalmente.
Uma pessoa faz backup de dados importantes antes de alterar as partições do disco para acrescentar o Linux ao lado de um sistema existente.
Instância na nuvem
Uma instância na nuvem é uma máquina virtual alugada de um provedor, iniciada a partir de uma imagem de sistema operacional e acessada por uma rede.
Uma pequena empresa pode executar seu serviço web Linux em uma instância alugada em vez de comprar um servidor físico.
Instantâneo (snapshot)
Um instantâneo salva um estado da VM para reversão posterior, ajudando a desfazer experimentos, mas permanecendo dependente do armazenamento da VM.
Um instantâneo restaura uma configuração de prática limpa após um erro, enquanto backups separados protegem contra falhas de disco.
Interpretador
Um interpretador executa o código de um programa durante a execução usando uma implementação da linguagem e as bibliotecas e os serviços de sistema de que o programa precisa.
Um script Python ainda precisa de seus módulos e interfaces do sistema operacional necessários na máquina de destino.

K

Kernel com manutenção de longo prazo (longterm)
Um kernel com manutenção de longo prazo pertence a uma série de lançamentos Linux selecionada para receber correções importantes de erros por anos além do ciclo estável normal.
Uma distribuição pode basear um sistema com suporte em uma série com manutenção de longo prazo e manter suas próprias compilações corrigidas.

L

Lançamento de versões fixas (fixed release)
Um lançamento de versão fixa é uma versão numerada de distribuição que enfatiza correções durante seu ciclo e agrupa mudanças mais amplas em versões posteriores.
Uma equipe de servidores pode testar a atualização para uma nova versão numerada antes de substituir sua plataforma atual com suporte.
Licença de software
Uma licença de software concede permissões de direitos autorais sob condições estabelecidas, definindo como um programa pode ser usado, copiado, modificado ou distribuído.
A licença de um projeto informa a uma desenvolvedora quais avisos e obrigações relativas ao código-fonte se aplicam ao distribuir código reutilizado.
Licença permissiva
Uma licença permissiva permite ampla reutilização, inclusive em produtos proprietários, mantendo condições como avisos de direitos autorais e de licença.
Um aplicativo proprietário pode incluir uma biblioteca MIT mantendo o aviso e o texto da licença exigidos.
Licença Pública Geral Affero GNU (GNU AGPL)
A Licença Pública Geral Affero GNU acrescenta uma exigência de oferta de código-fonte para usuários que interagem pela rede com um programa coberto e modificado.
Um aplicativo web AGPL modificado deve oferecer seu código-fonte aos usuários da rede mesmo sem lhes enviar binários.
Licença Pública Geral GNU (GNU GPL)
A Licença Pública Geral GNU é uma licença de software com copyleft forte que exige os direitos da GPL e o código-fonte correspondente para programas cobertos quando distribuídos.
Uma empresa pode modificar uma ferramenta GPL de forma privada sem que esse ato, por si só, exija a publicação das alterações.
Licença Pública Geral Menor GNU (GNU LGPL)
A Licença Pública Geral Menor GNU é uma licença copyleft voltada a bibliotecas que permite a vinculação por programas sob outras licenças quando suas condições, incluindo a substituição, são atendidas.
Um programa proprietário pode ser vinculado a uma biblioteca LGPL enquanto as alterações na própria biblioteca permanecem sob a LGPL.
Licença Pública Mozilla (MPL)
A Licença Pública Mozilla é uma licença copyleft por arquivo que exige a disponibilidade do código-fonte dos arquivos cobertos distribuídos, permitindo arquivos separados sob outras licenças.
Um aplicativo pode combinar arquivos-fonte cobertos pela MPL com arquivos proprietários separados, respeitando cada licença.
Licenciamento duplo
O licenciamento duplo oferece o mesmo código sob licenças alternativas, frequentemente uma opção copyleft e uma opção comercial paga com permissões diferentes.
Um cliente escolhe entre cumprir os termos copyleft de uma biblioteca e comprar a licença comercial do fornecedor.

M

Mantenedor
Um mantenedor revisa e gerencia contribuições para um projeto ou subsistema, decidindo o que é aceito segundo o processo de decisão do projeto.
Uma colaboradora pode propor uma correção, mas o mantenedor decide se ela entra no projeto oficial.
Máquina virtual
Uma máquina virtual é um computador convidado que recebe hardware virtual de um hipervisor e executa seu próprio sistema operacional e kernel.
Duas VMs em um hospedeiro podem executar kernels diferentes sem substituir o sistema operacional do hospedeiro.
Modelo de núcleo aberto (open core)
O modelo de núcleo aberto combina um produto central de código aberto com recursos, edições ou complementos proprietários pagos.
Uma ferramenta aberta de monitoramento pode vender um módulo proprietário para gerenciar muitas instalações de empresas.
Módulo do kernel
Um módulo do kernel é um componente que pode ser carregado no kernel em execução, frequentemente para acrescentar um driver sem recompilar o kernel.
Conectar um hardware compatível pode fazer com que o Linux carregue automaticamente um módulo de driver adequado.

N

NãoComercial
NãoComercial é uma restrição Creative Commons que exclui usos destinados principalmente a obter vantagem comercial ou compensação monetária.
Uma empresa não pode usar a permissão CC BY-NC para colocar uma fotografia em sua campanha publicitária paga.
Núcleo (kernel)
Um kernel é o programa central do sistema operacional que gerencia hardware, memória, tempo do processador, rede, sistemas de arquivos e regras de acesso.
Quando um aplicativo abre um arquivo armazenado, o kernel verifica o acesso e recupera os dados por meio de um driver.

O

OpenPGP
OpenPGP é um padrão de criptografia por chave pública e assinaturas digitais implementado por ferramentas como o GNU Privacy Guard, ou GPG.
Uma distribuição pode assinar informações de somas de verificação para que os usuários as verifiquem com a chave pública autêntica.

P

Pacote de software
Um pacote de software é um arquivo de armazenamento com arquivos de programa e metadados que descrevem sua identidade, versão, dependências e ações de instalação.
A instalação de um editor pode exigir seu pacote e vários pacotes de bibliotecas listados em seus metadados.
Patrocínio
Patrocínio financia um projeto ou colaborador porque o patrocinador valoriza seu desenvolvimento contínuo, sua manutenção ou seu benefício público mais amplo.
Uma empresa pode patrocinar uma biblioteca compartilhada da qual seus produtos dependem em vez de construir um substituto privado.
Pilha LAMP
Uma pilha LAMP geralmente combina Linux, Apache, MySQL ou MariaDB e PHP para fornecer um sistema operacional, um servidor web, um banco de dados e uma camada de aplicativo.
Uma solicitação de página dinâmica passa por vários componentes, cada um cuidando de sua parte do trabalho.
Plataforma de desenvolvimento colaborativo (forge)
Uma plataforma de desenvolvimento colaborativo é uma plataforma de colaboração em torno de repositórios de código que acrescenta recursos como acompanhamento de problemas, revisão e automação.
GitLab e Forgejo podem fornecer colaboração auto-hospedada enquanto o Git continua gerenciando o histórico do repositório.
Ponto de montagem
Um ponto de montagem é um diretório no qual outro sistema de arquivos se torna acessível dentro da árvore única de diretórios do Linux.
O WSL normalmente disponibiliza a unidade Windows C: no ponto de montagem /mnt/c, permitindo que ferramentas Linux acessem seus arquivos.
Princípio do menor privilégio
O princípio do menor privilégio concede a usuários e programas apenas a autoridade necessária para uma tarefa, limitando os efeitos de erros ou software malicioso.
Uma pessoa trabalha como usuário comum e usa sudo para uma tarefa administrativa individual.
Projeto de origem (upstream)
O projeto de origem é o projeto original onde o software é desenvolvido antes de outros projetos o empacotarem, adaptarem ou distribuírem.
Uma correção geral do Firefox enviada ao projeto de origem pode chegar posteriormente a usuários de muitas distribuições Linux.
Projeto derivado ou distribuidor (downstream)
Um projeto derivado ou distribuidor recebe software do projeto de origem e o empacota ou adapta, frequentemente acrescentando alterações específicas de uma versão.
Uma distribuição pode manter uma correção temporariamente enquanto trabalha para que a mesma correção seja aceita no projeto de origem.
Proxy reverso
Um proxy reverso recebe solicitações em nome de servidores de aplicativos e as encaminha a um servidor adequado por trás dele.
O NGINX pode ficar à frente de um aplicativo para que os navegadores contatem o proxy em vez do aplicativo diretamente.

R

Rede em modo ponte (bridge)
A rede em modo ponte conecta uma VM como participante da rede local, normalmente dando a ela seu próprio endereço acessível por outras máquinas locais.
Uma pessoa seleciona o modo ponte quando outro computador precisa acessar diretamente o serviço de teste do sistema convidado.
Registro de alteração (commit)
Um registro de alteração registra uma mudança de projeto no controle de versão, preservando um ponto do histórico que pode ser revisado e relacionado a outras alterações.
Uma colaboradora faz um registro de alteração focado na documentação para que os revisores possam entender a finalidade da mudança.
Repositório
Um repositório de software é uma coleção de pacotes mantidos para uma distribuição ou outro sistema de pacotes e disponibilizados para instalação.
O gerenciador de pacotes procura nos repositórios configurados uma versão preparada para a versão instalada da distribuição.

S

SemDerivações
SemDerivações é uma condição Creative Commons que exclui o compartilhamento de adaptações, permitindo que a obra inalterada seja compartilhada com crédito.
Um diagrama CC BY-ND pode ser compartilhado como foi recebido, mas essa licença não autoriza a publicação de uma adaptação com cores alteradas.
Servidor
Um servidor é um programa ou computador que fornece serviços a clientes por uma rede, como arquivos, páginas web, e-mail ou consultas a bancos de dados.
Um computador pode fornecer arquivos a colegas e também solicitar atualizações como cliente de rede.
Servidor web
Um servidor web aceita solicitações de navegadores e fornece conteúdo web ou encaminha o trabalho ao software de aplicativo que constrói a resposta.
O Apache recebe uma solicitação de página de loja antes de o código do aplicativo consultar o banco de dados de produtos.
Sistema convidado (guest)
Um sistema convidado é o sistema operacional executado dentro de uma máquina virtual, usando o hardware virtual fornecido por sua plataforma de virtualização.
O Ubuntu pode ser o sistema convidado enquanto o macOS permanece como hospedeiro, no qual a pessoa realiza seu trabalho cotidiano.
Sistema de gestão da aprendizagem (LMS)
Um sistema de gestão da aprendizagem organiza cursos, tarefas, questionários, notas e atividades de aprendizagem relacionadas por meio de um aplicativo.
Uma instrutora usa o Moodle para receber tarefas entre aulas ao vivo realizadas em um sistema de reuniões separado.
Sistema embarcado
Um sistema embarcado é um computador integrado a um dispositivo maior para uma função específica, frequentemente com memória limitada e um espaço de usuário pequeno.
O sistema Linux de um roteador cuida da rede sem apresentar uma área de trabalho normal à casa.
Sistema executável sem instalação (live)
Um sistema executável sem instalação executa um sistema operacional a partir de mídia removível sem instalá-lo, normalmente perdendo as alterações ao desligar, a menos que a persistência seja configurada.
Uma pessoa inicia o sistema por um USB executável sem instalação para testar o adaptador sem fio de um notebook antes de considerar a instalação.
Sistema hospedeiro (host)
Um sistema hospedeiro é o computador físico e seu ambiente operacional que fornecem os recursos usados para executar uma ou mais máquinas virtuais.
Uma pessoa deixa memória suficiente para o hospedeiro ao atribuir RAM a um sistema Linux convidado com área de trabalho.
Soberania digital
Soberania digital é a capacidade de uma organização ou país de controlar sua infraestrutura digital e seus dados sob suas próprias regras.
Uma organização pode reduzir a dependência de um fornecedor ao escolher software que outro fornecedor possa manter.
Software com código-fonte disponível (source-available)
Software com código-fonte disponível expõe seu código-fonte, mas usa restrições que impedem sua licença de atender à definição de código aberto.
Um banco de dados que proíbe serviços hospedados concorrentes pode ter código-fonte disponível, embora seu código seja público.
Software como serviço (SaaS)
Software como serviço fornece um aplicativo hospedado e operado para clientes, que pagam pelo acesso e pela operação em vez de executá-lo por conta própria.
Um serviço de banco de dados gerenciado inclui trabalho de administração além do preço de download do código do banco de dados.
Software de código aberto
Software de código aberto tem uma licença que atende à definição da OSI, incluindo acesso ao código-fonte, redistribuição e permissão para obras modificadas.
Uma licença que proíbe o uso em negócios não atende à regra do código aberto contra discriminação por área de uso.
Software livre
Software livre concede aos usuários as liberdades de executar o programa para qualquer finalidade, estudá-lo, modificá-lo e compartilhar o programa e suas versões modificadas.
Um fornecedor pode cobrar por uma cópia de software livre enquanto o comprador mantém as liberdades concedidas por sua licença.
Software proprietário gratuito (freeware)
Software proprietário gratuito é software proprietário disponível sem custo, sem conceder todos os direitos de estudar, modificar e compartilhar do software livre.
Um aplicativo gratuito para download ainda pode proibir modificações, portanto o preço, por si só, não estabelece que ele seja de código aberto.
Solicitação de integração (pull request)
Uma solicitação de integração é uma proposta para mesclar um conjunto de alterações em um projeto, oferecendo um espaço para revisão, discussão e verificações automatizadas.
Uma colaboradora de documentação abre uma solicitação de integração e a revisa após a análise de um mantenedor.
Soma de verificação (checksum)
Uma soma de verificação é um valor calculado usado para comparar o conteúdo de arquivos; SHA-256 é comumente usado para verificar imagens de instalação Linux baixadas.
Uma diferença entre os valores SHA-256 completos publicado e local significa que a ISO baixada deve ser rejeitada.
Subsistema do Windows para Linux (WSL)
O Subsistema do Windows para Linux executa distribuições Linux junto com o Windows; o WSL 2 fornece um kernel real em uma VM leve gerenciada.
Uma pessoa que usa Windows inicia o Ubuntu pelo WSL sem passar por um instalador normal de disco Linux.
Suporte de longo prazo (LTS)
O suporte de longo prazo é uma política de manutenção que fornece correções para uma versão por vários anos, frequentemente escolhida para reduzir atualizações frequentes de sistema.
Uma empresa verifica quais pacotes e serviços de suporte estão incluídos antes de escolher uma versão LTS.

T

Tradução de endereços de rede (NAT)
A tradução de endereços de rede traduz o tráfego de rede para que uma VM possa se conectar à rede externa por meio do hospedeiro sem normalmente ser acessível diretamente pela rede local.
Uma pessoa iniciante usa o modo NAT padrão para baixar atualizações sem tornar o convidado um participante separado da rede local.

U

Unix
Unix é um sistema operacional desenvolvido no Bell Labs a partir de 1969, cujo projeto multiusuário e cuja abordagem de pequenas ferramentas influenciaram o Linux.
Uma administradora Linux encontra ideias do Unix ao trabalhar com uma única árvore de diretórios e ferramentas que podem ser combinadas.

V

Versão candidata a lançamento (release candidate)
Uma versão candidata a lançamento é uma compilação de teste próxima do lançamento final que pode se tornar definitiva se os testes não encontrarem problemas graves restantes.
Testar uma versão candidata a lançamento ajuda a encontrar os últimos erros; isso não cria uma promessa de manutenção de longo prazo.
VSCodium
O VSCodium fornece compilações comunitárias do editor Code - OSS, licenciado sob a MIT, sem a marca e os acréscimos de telemetria da Microsoft.
Uma pessoa distingue o VSCodium da distribuição proprietária do Visual Studio Code feita pela Microsoft.

Sobre esta aula

Por StudeliRelatar um erro

Crie seus próprios Materiais de Estudo

Transforme suas anotações, slides e documentos em Guias de Estudo, Questões de Prática, Flashcards e mais 6 ferramentas.

Começar