- Aprender
- Computação e TI
- TI, redes e nuvem
- Fundamentos de Linux
- Linux e código aberto
Linux e código aberto
BásicoAula 1 de 7 do curso Curso de Fundamentos de Linux
O que você vai aprender
- 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 LinuxAcompanhar 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 kernelDescrever 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 é utilizadoIdentificar 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.
- Traçar a história do Unix, do GNU e do Linux
- 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çõesExplicar 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 pacotesDescrever 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 suporteDistinguir 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 sistemaDescrever 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.
- Reconhecer distribuições e as principais famílias de distribuições
- 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árioDefinir 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 permissivasExplicar 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 CommonsExplicar 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.
- Distinguir software livre, de código aberto e proprietário
- 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 delasDescrever 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 abertoDescrever como empresas e projetos ganham dinheiro com software de código aberto, por que alguns fornecedores mudaram licenças e como as comunidades responderam.
- Explicar como as comunidades de código aberto se organizam e como participar delas
- 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 pessoalDescrever 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 desenvolvimentoDescrever 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 abertoDescrever 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.
- Reconhecer aplicativos de código aberto para computadores de uso pessoal
- 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 praticarComparar 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 virtualBaixar 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 LinuxInstalar 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 dadosUsar 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.
- Escolher uma forma de executar o Linux para praticar
Guia de estudo de Linux e código aberto
1Explicar 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.
2Comparar 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ção | Ferramentas de pacotes | Exemplos e foco |
|---|---|---|
| Baseada em Debian | dpkg, apt; .deb | Debian, Ubuntu, Linux Mint, Raspberry Pi OS |
| Enterprise Linux | rpm, dnf; .rpm | Fedora, CentOS Stream, RHEL, AlmaLinux, Rocky Linux |
| SUSE | rpm, zypper; .rpm | SUSE Linux Enterprise, openSUSE Leap, Tumbleweed |
| Alpine | apk; .apk | Sistemas pequenos e imagens de contêineres |
| Arch | pacman | Um 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 ferramenta | Tarefa | Exemplos |
|---|---|---|
| Baixo nível | Instalar um pacote local; não baixar dependências ausentes | dpkg, rpm |
| Alto nível | Buscar pacotes, resolver dependências e gerenciar atualizações | apt, apt-get, dnf, zypper, apk |
| Interface gráfica | Permitir que você busque, instale e atualize visualmente | GNOME 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;
dpkgerpmnã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.
| Necessidade | Direção adequada | Principal questão de manutenção |
|---|---|---|
| Plataforma previsível por anos | Versão fixa ou LTS com suporte | Planejar atualizações antes do EOL |
| Software novo do projeto de origem rapidamente | Atualização contínua | Aplicar e acompanhar mudanças frequentes |
| Testar versões futuras | Compilação de desenvolvimento ou pré-lançamento | Esperar 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
| Sistema | Base | Ponto prático |
|---|---|---|
| Windows | Sistema proprietário da Microsoft baseado em NT | Ampla disponibilidade de software para computadores de uso pessoal; o Windows Server também atende empresas |
| macOS | Sistema proprietário da Apple, construído sobre Darwin com componentes XNU e BSD | Licenciado para hardware da Apple; ferramentas no estilo Unix não o tornam Linux |
| Distribuições Linux | Kernel Linux com espaço de usuário de código aberto e manutenção da distribuição | Muitos 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.
3Explicar 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.
| Categoria | O que ela informa |
|---|---|
| Proprietário | A licença restringe uma ou mais liberdades relacionadas ao software |
| Software proprietário gratuito | Software proprietário disponível sem custo |
| Shareware | Software proprietário oferecido para teste antes da compra |
| Software livre | Os usuários têm as quatro liberdades definidas pela FSF |
| Código aberto | A licença atende à Definição de Código Aberto da OSI |
| Código-fonte disponível | O 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ça | Principal limite quando suas condições se aplicam |
|---|---|
| GPL | O programa combinado coberto deve permanecer sob a GPL, com o código-fonte correspondente disponível na distribuição |
| LGPL | A 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.0 | Arquivos distribuídos cobertos pela MPL permanecem sob a MPL com o código-fonte disponível; arquivos separados podem ter outras licenças |
| AGPL | Acrescenta 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
| Elemento | Significado para a reutilização |
|---|---|
| BY: Atribuição | Dê crédito ao criador e forneça as informações de licença exigidas |
| SA: CompartilhaIgual | Compartilhe adaptações sob a mesma licença ou uma licença compatível permitida |
| NC: NãoComercial | A licença não permite uso comercial |
| ND: SemDerivações | A 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.
4Descrever 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:
- Título: “A exportação do gráfico fecha o aplicativo.”
- Ambiente: versão exata do aplicativo, distribuição e versão da distribuição.
- Passos: abra uma nova planilha, insira um gráfico, escolha o formato de exportação e salve.
- Resultado esperado: uma imagem exportada e o aplicativo aberto.
- 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
| Modelo | Pelo que o cliente ou financiador paga |
|---|---|
| Assinatura de suporte | Compilações mantidas, atualizações prolongadas, certificação e ajuda técnica |
| Serviços | Consultoria, integração, treinamento e desenvolvimento personalizado |
| Hospedagem | Operação do software como serviço online |
| Modelo de núcleo aberto | Recursos proprietários ao lado de um núcleo de código aberto |
| Licenciamento duplo | Uma licença comercial alternativa para o mesmo código |
| Hardware | Um dispositivo que executa o software |
| Patrocínio ou subsídios | Trabalho 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.
5Reconhecer 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
| Tarefa | Programa | Por que é adequado |
|---|---|---|
| Editar uma fotografia | GIMP | Trabalha com imagens matriciais baseadas em pixels; formato nativo .xcf |
| Desenhar um logotipo redimensionável | Inkscape | Cria formas vetoriais, geralmente salvas como SVG |
| Pintar uma ilustração | Krita | Projetado para pintura digital |
| Criar uma animação 3D | Blender | Fornece 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
| Necessidade | Exemplos | Finalidade principal |
|---|---|---|
| Arquivos compartilhados e sincronização | Nextcloud, ownCloud | Armazenar, sincronizar e compartilhar arquivos |
| Reuniões no navegador | Jitsi Meet | Participar de videoconferências por links |
| Ensino online ao vivo | BigBlueButton | Quadros brancos, slides, enquetes, salas simultâneas e gravação |
| Cursos e avaliação | Moodle | Publicar 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:
- O navegador solicita a página ao Apache no Linux.
- O Apache encaminha a solicitação ao código PHP do aplicativo.
- O código solicita ao MariaDB os registros de estoque.
- 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.
| Linguagem | Trabalho típico |
|---|---|
| C, C++ | Software de sistema e grandes aplicativos nativos |
| Rust | Software compilado com proteção contra muitos erros de memória; usado em partes do desenvolvimento do kernel desde o Linux 6.1 |
| Go | Serviços de rede e ferramentas como Docker e Kubernetes |
| Python | Automação, administração, análise e IA |
| PHP | Aplicativos web executados no servidor, incluindo Moodle, Nextcloud e WordPress |
| Java | Aplicativos empresariais que usam a JVM |
| JavaScript | Interaçã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.
6Configurar 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 para | Principal limitação |
|---|---|---|
| Máquina virtual | Instalação completa, inicialização, área de trabalho e serviços | Precisa de memória e armazenamento no hospedeiro |
| WSL no Windows | Acesso rápido a ferramentas Linux e muitos serviços | Oculta um instalador e um carregador de inicialização normais |
| Instância na nuvem | Prática de servidor remoto | Cobranças e responsabilidades de segurança de rede |
| USB executável sem instalação | Testar o Linux em hardware real | Alterações normalmente desaparecem ao desligar |
| Inicialização dupla | Acesso completo ao hardware ao lado de outro sistema | Alterações nas partições podem danificar dados existentes |
| Computador dedicado | Uma máquina Linux separada | Exige 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
amd64a hardware x86-64 earm64/aarch64a 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 PowerShell | Finalidade |
|---|---|
wsl --list --online | Listar distribuições disponíveis para instalação |
wsl --install -d Debian | Instalar especificamente o Debian |
wsl --list --verbose ou wsl -l -v | Mostrar distribuições instaladas, estados e versões do WSL |
wsl --set-default-version 2 | Escolher o WSL 2 para futuras instalações de distribuições |
wsl --update | Atualizar o próprio WSL |
wsl --shutdown | Encerrar 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
| Risco | Proteção útil | Limite |
|---|---|---|
| Alguém ler uma conexão do navegador | HTTPS | Verifique também o domínio; a criptografia não prova honestidade |
| Alguém ler um login remoto ou uma transferência | SSH ou SFTP | Mantenha as chaves privadas em segredo |
| Um notebook desligado ou disco roubado | Criptografia de disco completo | Mantenha 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
1Acompanhe o Linux desde suas origens até um sistema funcional
12 passos
- 1Introduçã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.
- 2Explicaçã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.
- 3ExemploAcrescente 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.
- 4DesafioSitue 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.
- 5Explicaçã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.
- 6ExemploAcompanhe uma solicitação de arquivo
Um editor de imagens precisa ler uma imagem salva.
- O editor solicita o arquivo por meio de uma chamada de sistema.
- O kernel verifica os direitos de acesso e usa código de sistema de arquivos e um driver de armazenamento para recuperar os bytes.
- 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.
- 7DesafioExplique 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.
- 8Explicaçã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.
- 9ExemploIdentifique 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.
- 10DesafioClassifique 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.
- 11DesafioConecte 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.
- 12Recapitulaçã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.
2Escolha uma distribuição com base em requisitos reais
15 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoComece pelos requisitos
- 2ExplicaçãoReconheça uma pista sobre a família
- 3ExemploIdentifique a família em um guia de instalação
- 4DesafioDistinga as funções na família Red Hat
- 5ExplicaçãoVeja do que um pacote precisa
- 6DicaAcompanhe mais de um caminho de atualização
- 7DesafioEscolha a fonte adequada
- 8ExplicaçãoSepare mudanças de duração
- 9ExemploCalcule um prazo de suporte
- 10DesafioEscolha uma versão para um servidor estável
- 11ExplicaçãoVerifique o aplicativo antes de mudar
- 12ExemploMantenha um aplicativo necessário funcionando
- 13DesafioAdapte a escolha a recursos limitados
- 14DesafioCombine os requisitos
- 15RecapitulaçãoRegistre o motivo da escolha
3Decida o que uma licença permite
16 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoAnalise a ação e a permissão
- 2ExplicaçãoSepare código visível de direitos
- 3ExemploClassifique um download restrito
- 4DesafioExplique um programa aberto pago
- 5Ideia-chaveRelacione liberdade à escolha de fornecedor
- 6ExplicaçãoComece pelas condições permissivas
- 7ExemploModifique uma ferramenta GPL de forma privada
- 8ExemploDistribua a mesma ferramenta modificada
- 9DesafioCompare a condição de interação pela rede
- 10ConexãoVerifique a parte coberta e a versão
- 11ExplicaçãoLeia os elementos Creative Commons
- 12ExemploVerifique uma imagem para publicidade
- 13DesafioInterprete a condição ND sem ampliá-la
- 14DicaGuarde as informações de atribuição
- 15DesafioSepare código de conteúdo
- 16RecapitulaçãoUse uma verificação de licença repetível
4Participe de um projeto e entenda seu financiamento
11 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoVeja o trabalho em torno do código
- 2ExplicaçãoEncontre o canal de relato
- 3ExemploTransforme um sintoma em um relato
- 4ExplicaçãoEntenda revisão e governança
- 5DesafioMelhore o relato
- 6ExplicaçãoPague pela manutenção e operação
- 7ExemploCompare núcleo aberto e licenciamento duplo
- 8DesafioIdentifique o produto vendido
- 9ConexãoAcompanhe uma mudança de direção
- 10DesafioRelacione direitos e controle do projeto
- 11RecapitulaçãoEscolha uma primeira contribuição útil
5Monte um conjunto de ferramentas para um curso online
13 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoPlaneje as tarefas primeiro
- 2ExplicaçãoEscolha o resultado no computador
- 3ExemploPrepare um diagrama e uma gravação
- 4DesafioLeia a licença da compilação
- 5ExplicaçãoAtribua uma função a cada plataforma web
- 6ExemploMantenha as alterações no Git
- 7DesafioPreencha a função de plataforma ausente
- 8ExplicaçãoSepare os componentes do servidor
- 9ExemploAcompanhe a solicitação do aplicativo
- 10ConexãoRelacione uma linguagem ao seu ambiente de execução
- 11DesafioAnalise uma afirmação sobre portabilidade
- 12DesafioMonte o fluxo completo do curso
- 13RecapitulaçãoNomeie a função antes do produto
6Prepare um ambiente Linux protegido para praticar
20 passos
Salve esta aula para seguir cada Lição Interativa passo a passo.
- 1IntroduçãoEscolha o que você precisa praticar
- 2ExplicaçãoAssocie a configuração à tarefa de aprendizagem
- 3ExemploVerifique a arquitetura e os recursos
- 4DesafioEscolha o ambiente
- 5ExplicaçãoObtenha a imagem correta
- 6ExemploSepare igualdade de origem
- 7ExemploAloque recursos e instale
- 8DicaCrie um ponto de partida recuperável
- 9DesafioDiagnostique o retorno ao instalador
- 10ExplicaçãoInstale o WSL no Windows
- 11ExemploInterprete a linha de estado do WSL
- 12DicaColoque os arquivos no local adequado
- 13DesafioEscolha o caminho de atualização correto
- 14ExplicaçãoUse credenciais exclusivas e fatores diferentes
- 15Ideia-chaveEntenda uma chave de acesso
- 16ExemploAssocie a proteção ao risco
- 17DicaReduza o alcance dos erros
- 18DesafioSepare criptografia de backup
- 19DesafioVerifique uma configuração antes de praticar
- 20RecapitulaçãoMantenha um pequeno registro de manutenção
Questões de Linux e código aberto
Conjunto 1: Aplique as ideias a uma configuração funcional10 Questões de Prática
Questão 1 de 10
Mostrar respostaOcultar resposta
Questão 2 de 10
Mostrar respostaOcultar resposta
Questão 3 de 10
Mostrar respostaOcultar resposta
Questão 4 de 10
Mostrar respostaOcultar resposta
Questão 5 de 10
Mostrar respostaOcultar resposta
Questão 6 de 10
Mostrar respostaOcultar resposta
Questão 7 de 10
Mostrar respostaOcultar resposta
Questão 8 de 10
Mostrar respostaOcultar resposta
Questão 9 de 10
Mostrar respostaOcultar resposta
Questão 10 de 10
* Fedora Stopped 2. O que o asterisco identifica?Mostrar respostaOcultar resposta
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
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
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
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
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
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
wsl --set-default-version 2 e espera que uma distribuição WSL 1 existente mude imediatamente. Qual é o erro?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
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 2 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 3 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 4 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 5 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 6 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 7 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 8 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 9 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Questão 10 de 10
Mostrar respostaOcultar resposta
Salve esta aula para ver esta resposta.
Travou em uma questão sua? Ajuda com Tarefas
Termos-Chave
A
Alpine Linux
Ambiente de área de trabalho
Aplicativo nativo
Arquitetura do processador
Assinatura de suporte
Assinatura digital
Atribuição
Atualização contínua (rolling release)
Autenticação multifator
Auto-hospedagem
B
Banco de dados relacional
Bifurcação de projeto (fork)
Binário
BSD
Bytecode
C
Camada de compatibilidade
CC0
CentOS Stream
Certificado de Origem do Desenvolvedor (DCO)
Chamada de sistema
Chave de acesso (passkey)
Cliente
Código-fonte
CompartilhaIgual
Compilador
Conta Linux
Contêiner
Copyleft
Creative Commons
D
Dados em repouso
Dados em trânsito
Debian testing
Dependência
Disco alocado dinamicamente
Distribuição
Distribuição derivada
Distribuição padrão
Driver de dispositivo
E
Espaço de usuário (userspace)
F
Família de distribuições
Fim do ciclo de vida (EOL)
Formato OpenDocument (ODF)
Formato universal de pacotes
G
Gerenciador de pacotes
Gerenciador de senhas
Gerenciamento de configuração
Git
GNU
GNU/Linux
Gráfico vetorial
H
Hipervisor
I
Identificador SPDX
Imagem ISO
Imagem matricial (raster)
Inicialização dupla (dual boot)
Instância na nuvem
Instantâneo (snapshot)
Interpretador
K
Kernel com manutenção de longo prazo (longterm)
L
Lançamento de versões fixas (fixed release)
Licença de software
Licença permissiva
Licença Pública Geral Affero GNU (GNU AGPL)
Licença Pública Geral GNU (GNU GPL)
Licença Pública Geral Menor GNU (GNU LGPL)
Licença Pública Mozilla (MPL)
Licenciamento duplo
M
Mantenedor
Máquina virtual
Modelo de núcleo aberto (open core)
Módulo do kernel
N
NãoComercial
Núcleo (kernel)
O
OpenPGP
P
Pacote de software
Patrocínio
Pilha LAMP
Plataforma de desenvolvimento colaborativo (forge)
Ponto de montagem
/mnt/c, permitindo que ferramentas Linux acessem seus arquivos.Princípio do menor privilégio
sudo para uma tarefa administrativa individual.Projeto de origem (upstream)
Projeto derivado ou distribuidor (downstream)
Proxy reverso
R
Rede em modo ponte (bridge)
Registro de alteração (commit)
Repositório
S
SemDerivações
Servidor
Servidor web
Sistema convidado (guest)
Sistema de gestão da aprendizagem (LMS)
Sistema embarcado
Sistema executável sem instalação (live)
Sistema hospedeiro (host)
Soberania digital
Software com código-fonte disponível (source-available)
Software como serviço (SaaS)
Software de código aberto
Software livre
Software proprietário gratuito (freeware)
Solicitação de integração (pull request)
Soma de verificação (checksum)
Subsistema do Windows para Linux (WSL)
Suporte de longo prazo (LTS)
T
Tradução de endereços de rede (NAT)
U
Unix
V
Versão candidata a lançamento (release candidate)
VSCodium
Sobre esta aula
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.