Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Termos Chave
Capítulo 3 - Trabalhando no Linux
Apache HTTPD
O Apache HTTPD é um programa de aplicativo de servidor, ou daemon, que gerencia solicitações de páginas da web em um servidor da web Apache.
Seção 3.2.2.1
C
Uma linguagem de programação de computador compilada. C é a linguagem na qual o Linux é escrito.
Seção 3.5
Raposa de fogo
Um navegador da Web multiplataforma e de código aberto desenvolvido pela Mozilla Foundation.
Seção 3.2.3.4
GIMP
Um aplicativo de código aberto que lida com a manipulação de imagens 2D.
Seção 3.2.3.2
Java
Uma linguagem de programação compilada e orientada a objetos de propriedade da Oracle.
Seção 3.5
JavaScript
Uma linguagem de script de plataforma cruzada para adicionar elementos interativos a páginas da Web, amplamente utilizada na Internet.
Seção 3.5
LibreOfficeName
Uma suíte de escritório de código aberto derivada do Open Office. Inclui ferramentas que visam a compatibilidade com o Microsoft Office em recursos e formatos de arquivo.
Seção 3.2.3.3
MariaDB
Um aplicativo de banco de dados de código aberto derivado do MySQL. Ele registra os dados gravados por aplicativos da Web dinâmicos.
Seção 3.2.2.3
MySQL
Um sistema de gerenciamento de banco de dados relacional usado para desenvolvimento web.
Seção 3.2.2.3
NFS
O protocolo nativo de compartilhamento de arquivos para Unix e Linux. Abreviação de Network File System.
Seção 3.2.2.5
NGINXGenericName
Um servidor web de código aberto baseado na Rússia focado no uso de kernels UNIX mais modernos.
Seção 3.2.2.1
próxima nuvem
Um software de servidor de nuvem privada de código aberto derivado do ownCloud. Ele é fornecido sob um GNU AGPLv3 que pode ser implantado e administrado internamente por uma organização.
Seção 3.2.2.2
OpenOffice.org
Uma suíte de escritório de código aberto que foi descontinuada.
Seção 3.2.3.3
PHP
Uma linguagem de script projetada para criar páginas da Web dinâmicas.
Seção 3.5
perl
Uma linguagem de programação interpretada popular entre os administradores de sistema. Foi originalmente desenvolvido para realizar manipulação de texto.
Seção 3.5
Pitão
Uma linguagem de script que simplifica tarefas complexas, possui excelente processamento estatístico e é popular na academia.
Seção 3.5
Samba
Um aplicativo de compartilhamento de arquivos ideal para uso com sistemas Windows.
Seção 3.2.2.5
Thunderbird
Um cliente de e-mail de desktop de código aberto com todos os recursos desenvolvido pela Mozilla Foundation.
Seção 3.2.3.1
apt-get
Um programa front-end para gerenciamento de pacotes Debian.
Seção 3.4.1
console
Tradicionalmente usado para se referir a um terminal físico.
Seção 3.1.1
dpkg
O sistema de gerenciamento de pacotes usado em distribuições Linux derivadas do Debian.
Seção 3.4.1
própria nuvem
Um serviço de hospedagem de arquivos de código aberto. O projeto foi lançado em 2010 por Frank Karlitschek para fornecer software para armazenar, sincronizar e compartilhar dados de servidores de nuvem privada.
Seção 3.2.2.2
problemas de senha
Seção 3.6.1
questões de privacidade e ferramentas
Seção 3.6.2
rpm
O sistema de gerenciamento de pacotes usado em distribuições Linux derivadas da Red Hat. De acordo com o Linux Standards Base, o sistema padrão de gerenciamento de pacotes é o RPM.
Seção 3.4.2
concha
A interface do usuário de um sistema Linux. Ele interage com o usuário aceitando comandos, passando-os para o kernel para execução e exibindo qualquer saída para o terminal.
Seção 3.3.1
terminal
O ambiente ou dispositivo no qual o usuário interage com o software. Também pode se referir a um programa gráfico que emula um console.
Seção 3.1.1
uso de aplicativos comuns de código aberto em apresentações e projetos
Seção 3.2.3.3
usando um navegador, questões de privacidade, opções de configuração, pesquisando na web e salvando conteúdo
Seção 3.6.2
yum
Uma ferramenta front-end para gerenciamento de pacotes RPM.
Seção 3.4.2
Objetivos
Capítulo 3 - Trabalhando no Linux
Este capítulo cobrirá os seguintes objetivos do exame:
1.1: Evolução do Linux e Sistemas Operacionais Populares
Peso: 2
Conhecimento de desenvolvimento Linux e principais distribuições.
Principais Áreas de Conhecimento:
· Linux nas nuvens
Seção 3.7.1
1.2: Principais aplicativos de código aberto
Peso: 2
Consciência das principais aplicações, bem como seus usos e desenvolvimento.
Principais Áreas de Conhecimento:
· Aplicativos de área de trabalho
Seção 3.2.3
· Aplicativos de servidor
Seção 3.2.2
· Linguagens de desenvolvimento
Seção 3.5
· Ferramentas de gerenciamento de pacotes e repositórios
Seção 3.4
1.4: Habilidades de TIC e Trabalho em Linux
Peso: 2
Habilidades básicas em Tecnologia da Informação e Comunicação (TIC) e trabalho em Linux.
Principais Áreas de Conhecimento:
· Habilidades de área de trabalho
Seção 3.1
· Chegando à linha de comando
Seção 3.1.1
· Usos da indústria de Linux, computação em nuvem e virtualização
Seção 3.7
Contente
3.1 Navegando na área de trabalho do Linux
Para ser um administrador de sistemas Linux, é necessário estar familiarizado com o Linux como um sistema operacional de desktop e ter proficiência nas habilidades básicas de Tecnologia da Informação e Comunicação (TIC). Usar o Linux para tarefas de produtividade, em vez de depender dos sistemas Windows ou Macintosh, acelera o aprendizado ao trabalhar diariamente com as ferramentas do Linux. Os administradores de sistemas fazem muito mais do que gerenciar servidores; eles geralmente são chamados para ajudar os usuários com problemas de configuração, recomendar novos softwares e atualizar a documentação, entre outras tarefas.
A maioria das distribuições Linux permite que os usuários baixem um pacote de instalação “desktop” que pode ser carregado em uma chave USB. Esta é uma das primeiras coisas que aspirantes a administradores de sistema devem fazer; baixe uma distribuição principal e carregue-a em um PC antigo. Este processo é bastante simples e os tutoriais estão disponíveis online. A área de trabalho do Linux deve ser familiar para qualquer um que tenha usado um PC ou Macintosh com ícones para selecionar diferentes programas e um aplicativo de “configurações” para configurar coisas como contas de usuário, redes Wi-Fi e dispositivos de entrada. Depois de se familiarizar com a Interface Gráfica do Usuário (GUI) do Linux , ou desktop, o próximo passo é aprender a executar tarefas a partir da linha de comando.
3.1.1 Chegando à linha de comando
A interface de linha de comando (CLI) é um sistema de entrada de texto simples para inserir qualquer coisa, desde comandos de uma única palavra até scripts complicados. A maioria dos sistemas operacionais possui uma CLI que fornece uma maneira direta de acessar e controlar o computador.
Em sistemas que inicializam em uma GUI, há duas maneiras comuns de acessar a linha de comando - um terminal baseado em GUI e um terminal virtual:
· Um terminal GUI é um programa dentro do ambiente GUI que emula uma janela de terminal. Os terminais GUI podem ser acessados ​​através do sistema de menus. Por exemplo, em uma máquina CentOS, você pode clicar em Aplicativos na barra de menu, em Ferramentas do sistema > e, finalmente, Terminal . Se você tiver ferramentas de pesquisa, poderá pesquisar terminal , conforme mostrado aqui.
· Um terminal virtual pode ser executado ao mesmo tempo que uma GUI, mas exige que o usuário faça login por meio do terminal virtual antes de poder executar comandos (como faria antes de acessar a interface GUI).
Cada distribuição de desktop Linux é um pouco diferente, mas o terminal de aplicativo ou x-term abrirá uma janela de terminal na GUI. Embora existam diferenças sutis entre os termos console e sessões de janela de terminal , eles são todos iguais do ponto de vista do administrador e exigem o mesmo conhecimento dos comandos a serem usados.
Tarefas comuns de linha de comando são iniciar programas, analisar scripts e editar arquivos de texto usados ​​para configuração de sistema ou aplicativo. A maioria dos servidores inicializa diretamente em um terminal, pois uma GUI pode consumir muitos recursos e geralmente não é necessáriapara executar operações baseadas em servidor.‌⁠​​
3.2 Aplicações
O kernel do sistema operacional é como um controlador de tráfego aéreo em um aeroporto, e os aplicativos são os aviões sob seu controle. O kernel decide qual programa obtém quais blocos de memória, inicia e encerra aplicativos e lida com a exibição de texto ou gráficos em um monitor.
Os aplicativos fazem solicitações ao kernel e, em troca, recebem recursos, como memória, CPU e espaço em disco. Se dois aplicativos solicitam o mesmo recurso, o kernel decide qual deles o obtém e, em alguns casos, encerra outro aplicativo para salvar o restante do sistema e evitar uma falha.
O kernel também abstrai alguns detalhes complicados do aplicativo. Por exemplo, o aplicativo não sabe se um bloco de armazenamento em disco está em uma unidade de estado sólido, em um disco rígido de metal giratório ou mesmo em um compartilhamento de arquivo de rede. Os aplicativos precisam apenas seguir a Application Programming Interface (API) do kernel e, portanto, não precisam se preocupar com os detalhes da implementação. Cada aplicativo se comporta como se tivesse um grande bloco de memória no sistema; o kernel mantém essa ilusão remapeando blocos menores de memória, compartilhando blocos de memória com outros aplicativos ou até mesmo trocando blocos intocados para o disco.
O kernel também lida com a troca de aplicativos, um processo conhecido como multitarefa . Um sistema de computador tem um pequeno número de unidades centrais de processamento (CPUs) e uma quantidade finita de memória. O kernel se encarrega de descarregar uma tarefa e carregar uma nova se houver mais demanda do que recursos disponíveis. Quando uma tarefa é executada por um período de tempo especificado, a CPU a pausa para que outra possa ser executada. Se o computador estiver executando várias tarefas ao mesmo tempo, o kernel está decidindo quando alternar o foco entre as tarefas. Com as tarefas mudando rapidamente, parece que o computador está fazendo muitas coisas ao mesmo tempo.
Quando nós, como usuários, pensamos em aplicativos, tendemos a pensar em processadores de texto, navegadores da Web e clientes de e-mail; no entanto, há uma grande variedade de tipos de aplicativos. O kernel não diferencia entre um aplicativo voltado para o usuário, um serviço de rede que se comunica com um computador remoto ou uma tarefa interna. A partir disso, obtemos uma abstração chamada processo . Um processo é apenas uma tarefa que é carregada e rastreada pelo kernel. Um aplicativo pode até precisar de vários processos para funcionar, então o kernel se encarrega de executar os processos, iniciá-los e interrompê-los conforme solicitado e distribuir os recursos do sistema.
3.2.1 Principais Aplicações
O kernel do Linux pode executar uma ampla variedade de software em várias plataformas de hardware. Um computador pode atuar como um servidor , o que significa que ele lida principalmente com dados em nome de terceiros, ou como um desktop , o que significa que um usuário interage diretamente com ele. A máquina pode executar software ou ser usada como uma máquina de desenvolvimento no processo de criação de software. Uma máquina pode até adotar várias funções, pois o Linux não faz distinção; é apenas uma questão de configurar quais aplicativos serão executados.
Uma vantagem resultante é que o Linux pode simular quase todos os aspectos de um ambiente de produção, do desenvolvimento ao teste, à verificação em hardware reduzido, o que economiza custos e tempo. Um administrador Linux pode executar os mesmos aplicativos de servidor em um desktop ou servidor virtual barato executado por grandes provedores de serviços de Internet. É claro que um desktop não seria capaz de lidar com o mesmo volume que um grande provedor faria, mas quase qualquer configuração pode ser simulada sem a necessidade de hardware poderoso ou licenciamento de servidor.
O software Linux geralmente se enquadra em uma das três categorias:
· Aplicativos de servidor
Software que não tem interação direta com o monitor e o teclado da máquina em que é executado. Sua finalidade é servir informações para outros computadores, chamados clientes . Às vezes, os aplicativos de servidor podem não se comunicar com outros computadores, mas apenas ficar lá e analisar os dados.
· Aplicativos de área de trabalho
Navegadores da Web, editores de texto, tocadores de música ou outros aplicativos com os quais os usuários interagem diretamente. Em muitos casos, como em um navegador da Web, o aplicativo está se comunicando com um servidor na outra extremidade e interpretando os dados. Este é o lado “cliente” de um aplicativo cliente/servidor.
· Ferramentas
Uma categoria solta de software que existe para facilitar o gerenciamento de sistemas de computador. As ferramentas podem ajudar a configurar exibições, fornecer um shell Linux no qual os usuários digitam comandos ou ferramentas ainda mais sofisticadas, chamadas de compiladores, que convertem o código-fonte em programas aplicativos que o computador pode executar.
A disponibilidade de aplicativos varia de acordo com a distribuição. Freqüentemente, os fornecedores de aplicativos escolhem um subconjunto de distribuições para oferecer suporte. Distribuições diferentes têm versões diferentes de bibliotecas de chaves e é difícil para uma empresa oferecer suporte a todas essas versões diferentes. Alguns aplicativos, no entanto, como Firefox e LibreOffice são amplamente suportados e estão disponíveis para todas as principais distribuições.
A comunidade Linux criou muitas soluções criativas para aplicativos de desktop e servidor. Esses aplicativos, muitos dos quais constituem a espinha dorsal da Internet, são essenciais para entender e utilizar o poder do Linux.
A maioria das tarefas de computação pode ser realizada por qualquer número de aplicativos no Linux. Existem muitos navegadores da web, servidores da web, servidores de banco de dados e editores de texto para escolher. Avaliar o software aplicativo é uma habilidade importante a ser aprendida pelo aspirante a administrador do Linux. Determinar os requisitos de desempenho, estabilidade e custo são apenas algumas das considerações necessárias para uma análise abrangente.
3.2.2 Aplicativos de servidor
O Linux se destaca na execução de aplicativos de servidor por causa de sua confiabilidade e eficiência. A capacidade de otimizar sistemas operacionais de servidor apenas com os componentes necessários permite que os administradores façam mais com menos, um recurso apreciado por startups e grandes empresas.
3.2.2.1 Servidores Web
Um dos primeiros usos do Linux foi para servidores web. Um servidor da Web hospeda conteúdo para páginas da Web, que são visualizadas por um navegador da Web usando o HyperText Transfer Protocol (HTTP) ou seu tipo criptografado, HTTPS . A própria página da Web pode ser estática ou dinâmica. Quando o navegador da Web solicita uma página estática, o servidor da Web envia o arquivo conforme ele aparece no disco. No caso de um site dinâmico, a requisição é enviada pelo servidor web para uma aplicação, que gera o conteúdo.
O WordPress é um exemplo popular. Os usuários podem desenvolver conteúdo por meio de seu navegador no aplicativo WordPress, e o software o transforma em um site dinâmico totalmente funcional.
Apache é o servidor web dominante em uso hoje. O Apache era originalmente um projeto independente, mas o grupo formou a Apache Software Foundation e mantém mais de cem projetos de software de código aberto. Apache HTTPD é o daemon, ou programa de aplicativo do servidor, que “atende” às solicitações de páginas da web.
Outro servidor web é o NGINX , baseado na Rússia. Ele se concentra no desempenho, fazendo uso de kernels UNIX mais modernos e faz apenas um subconjunto do que o Apache pode fazer. Mais de 65% dos sites são alimentados por NGINX ou Apache.
3.2.2.2 Servidores de nuvem privada
À medida que indivíduos, organizações e empresas começam a mover seus dados para a nuvem, há uma demanda crescente por software de servidor de nuvem privada que pode serimplantado e administrado internamente.
O projeto ownCloud foi lançado em 2010 por Frank Karlitschek para fornecer software para armazenar, sincronizar e compartilhar dados de servidores de nuvem privada. Ele está disponível em uma licença GNU AGPLv3 de código aberto padrão e em uma versão corporativa que carrega uma licença comercial.
O projeto Nextcloud foi derivado do ownCloud em 2016 por Karlitschek e tem crescido constantemente desde então. Ele é fornecido sob um GNU AGPLv3 e visa “um processo de desenvolvimento aberto e transparente”.
Ambos os projetos se concentram no fornecimento de software de nuvem privada que atende às necessidades de organizações grandes e pequenas que exigem segurança, privacidade e conformidade regulamentar. Enquanto vários outros projetos visam atender os mesmos usuários, esses dois são de longe os maiores em termos de implantação e membros do projeto.
3.2.2.3 Servidores de Banco de Dados
Os aplicativos de servidor de banco de dados formam a espinha dorsal da maioria dos serviços online. Aplicativos da Web dinâmicos extraem dados e gravam dados nesses aplicativos. Por exemplo, um programa da Web para rastrear alunos on-line pode consistir em um servidor front-end que apresenta um formulário da Web. Quando os dados são inseridos no formulário, eles são gravados em um aplicativo de banco de dados como o MariaDB . Quando os instrutores precisam acessar as informações do aluno, o aplicativo da web consulta o banco de dados e retorna os resultados por meio do aplicativo da web.
MariaDB é um fork desenvolvido pela comunidade do sistema de gerenciamento de banco de dados relacional MySQL . É apenas um dos muitos servidores de banco de dados usados ​​para desenvolvimento da Web, pois diferentes requisitos determinam o melhor aplicativo para as tarefas necessárias.
Um banco de dados armazena informações e também permite uma fácil recuperação e consulta. Alguns outros bancos de dados populares são Firebird e PostgreSQL . Você pode inserir números brutos de vendas no banco de dados e, em seguida, usar uma linguagem chamada Linguagem de Consulta Estruturada (SQL) para agregar vendas por produto e data para produzir um relatório.
3.2.2.4 Servidores de E-mail
O e-mail sempre foi um uso generalizado para servidores Linux. Ao discutir servidores de e-mail, é sempre útil observar as 3 tarefas diferentes necessárias para enviar e-mail entre as pessoas:
· Agente de Transferência de Correio (MTA)
O MTA (software usado para transferir mensagens eletrônicas para outros sistemas) mais conhecido é o Sendmail . O Postfix é outro popular e visa ser mais simples e seguro que o Sendmail.
· Agente de entrega de correspondência (MDA)
Também chamado de Local Delivery Agent , ele se encarrega de armazenar o e-mail na caixa postal do usuário. Normalmente invocado a partir do MTA final na cadeia.
· Servidor POP/IMAP
O Post Office Protocol (POP) e o Internet Message Access Protocol (IMAP) são dois protocolos de comunicação que permitem que um cliente de e-mail executado em seu computador converse com um servidor remoto para receber o e-mail.
O Dovecot é um servidor POP/IMAP popular devido à sua facilidade de uso e baixa manutenção. Cyrus IMAP é outra opção. Alguns servidores POP/IMAP implementam seu próprio formato de banco de dados de correio para desempenho e incluem o MDA se o banco de dados personalizado for desejado. As pessoas que usam formatos de arquivo padrão (como todos os e-mails em um arquivo de texto) podem escolher qualquer MDA.
Existem várias diferenças significativas entre os mundos de software de código fechado e de código aberto, sendo uma delas a inclusão de outros projetos como componentes de um projeto ou pacote . todos os componentes necessários ou aprovados, todos da Microsoft, portanto, há poucas ou nenhuma opção para fazer seleções individuais. No mundo do código aberto, muitas opções podem ser incluídas modularmente ou trocadas por componentes de pacote e, de fato, alguns pacotes ou suítes de software são apenas um conjunto bem empacotado de componentes individuais, todos funcionando harmoniosamente juntos.
3.2.2.5 Compartilhamento de Arquivos
Para compartilhamento de arquivos centrado no Windows, o Samba é o vencedor claro. O Samba permite que uma máquina Linux pareça e se comporte como uma máquina Windows para que ela possa compartilhar arquivos e participar de um domínio Windows. O Samba implementa os componentes do servidor, como disponibilizar arquivos para compartilhamento e certas funções do servidor Windows, e também a extremidade do cliente para que uma máquina Linux possa consumir um compartilhamento de arquivo Windows.
O projeto Netatalk permite que uma máquina Linux funcione como um servidor de arquivos Apple Macintosh. O protocolo nativo de compartilhamento de arquivos para UNIX/Linux é chamado de Network File System (NFS) . O NFS geralmente faz parte do kernel, o que significa que um sistema de arquivos remoto pode ser montado (tornado acessível) como um disco comum, tornando o acesso ao arquivo transparente para outros aplicativos.
À medida que uma rede de computadores se torna mais substancial, a necessidade de um diretório aumenta. Um dos sistemas de diretório de rede mais antigos é o Domain Name System (DNS) . Ele é usado para converter um nome como https://www.icann.org/ em um endereço IP como 192.0.43.7, que é um identificador exclusivo de um computador na Internet. O DNS também contém informações globais como o endereço do MTA para um determinado nome de domínio. Uma organização pode querer executar seu próprio servidor DNS para hospedar seus nomes voltados para o público e também para servir como um diretório interno de serviços. O Internet Software Consortium mantém o servidor DNS mais popular, chamado simplesmente de bind devido ao nome do processo que executa o serviço.
O DNS concentra-se principalmente em nomes de computador e endereços IP e não é facilmente pesquisável. Outros diretórios surgiram para armazenar informações como contas de usuário e funções de segurança. O Lightweight Directory Access Protocol (LDAP) é um sistema de diretório comum que também alimenta o Active Directory da Microsoft. No LDAP, um objeto é armazenado em uma árvore e a posição desse objeto na árvore pode ser usada para derivar informações sobre o objeto e o que ele armazena. Por exemplo, um administrador Linux pode ser armazenado em uma ramificação da árvore chamada “Departamento de TI”, que está sob uma ramificação chamada “Operações”. Assim, pode-se encontrar todo o corpo técnico pesquisando no ramo “Departamento de TI”. O OpenLDAP é o programa dominante usado na infraestrutura do Linux.
Uma parte final da infraestrutura de rede a ser discutida aqui é chamada de Protocolo de Configuração de Host Dinâmico (DHCP) . Quando um computador inicializa, ele precisa de um endereço IP para a rede local para que possa ser identificado exclusivamente. O trabalho do DHCP é ouvir solicitações e atribuir um endereço livre do pool DHCP. O Internet Systems Consortium (conhecido até janeiro de 2004 como Internet Software Consortium) também mantém o servidor DHCP ISC , que é o servidor DHCP de código aberto mais comum.
3.2.3 Aplicativos de Área de Trabalho
O ecossistema Linux possui uma ampla variedade de aplicativos de desktop. Existem jogos, aplicativos de produtividade, ferramentas criativas, navegadores da web e muito mais.
3.2.3.1 E-mail
A Mozilla Foundation lançou o Thunderbird , um cliente de e-mail para desktop com todos os recursos. O Thunderbird se conecta a um servidor POP ou IMAP, exibe e-mail localmente e envia e-mail por meio de um servidor SMTP externo.
Outros clientes de e-mail notáveis ​​são o Evolution e o KMail , que são os clientes de e-mail dos projetos GNOME e KDE. A padronização por meio de POP e IMAP e formatos de e-mail locais significa que é fácil alternar entre clientes de e-mail sem perder dados.
3.2.3.2 Criativo
Para os tipos criativos, há o Blender , o GIMP (GNU Image Manipulation Program) e o Audacity , que lidam com a criação de filmes 3D, manipulaçãode imagens 2D e edição de áudio, respectivamente. Eles tiveram vários graus de sucesso nos mercados profissionais. O Blender é usado para tudo, desde filmes independentes até filmes de Hollywood, por exemplo. O GIMP oferece suporte à manipulação de fotos de alta qualidade, criação de arte original, elementos de design gráfico e é extensível por meio de scripts em vários idiomas. O Audacity é uma ferramenta de edição de áudio gratuita e de código aberto disponível em vários sistemas operacionais.
3.2.3.3 Produtividade
O uso de aplicativos comuns de código aberto em apresentações e projetos é uma forma de fortalecer as habilidades em Linux. Os aplicativos básicos de produtividade, como processador de texto, planilha e pacote de apresentação são recursos valiosos. Coletivamente, eles são conhecidos como uma suíte de escritório , principalmente devido ao Microsoft Office, o player dominante no mercado.
O LibreOffice é uma bifurcação do pacote de aplicativos OpenOffice (às vezes chamado de OpenOffice.org ). Ambos oferecem um pacote de escritório completo, incluindo ferramentas que visam a compatibilidade com o Microsoft Office em recursos e formatos de arquivo.
Abaixo está a planilha e o editor de documentos do LibreOffice. Observe como a planilha, LibreOffice Calc , não se limita a linhas e colunas de números. Os números podem ser a fonte de um gráfico e fórmulas podem ser escritas para calcular valores com base em informações, como reunir taxas de juros e valores de empréstimos para ajudar a comparar diferentes opções de empréstimos.
Usando o LibreOffice Writer , um documento pode conter texto, gráficos, tabelas de dados e muito mais. Você pode vincular documentos e planilhas juntos, por exemplo, para poder resumir os dados em um formulário escrito e saber que quaisquer alterações na planilha serão refletidas no documento.
O LibreOffice também pode trabalhar com outros formatos de arquivo, como arquivos do Microsoft Office ou Adobe Portable Document Format (PDF) . Além disso, através do uso de extensões, o LibreOffice pode ser integrado ao software Wiki para fornecer uma poderosa solução de intranet.
3.2.3.4 Navegadores da Web
O Linux é um cidadão de primeira classe para os navegadores Mozilla Firefox e Google Chrome . Ambos são navegadores da web de código aberto que são rápidos, ricos em recursos e têm excelente suporte para desenvolvedores da web. Esses pacotes são um excelente exemplo de como a concorrência ajuda a impulsionar o desenvolvimento de código aberto – as melhorias feitas em um navegador estimulam o desenvolvimento do outro navegador. Como resultado, a Internet tem dois navegadores excelentes que ultrapassam os limites do que pode ser feito na web e funcionam em várias plataformas. Usar um navegador, embora seja uma segunda natureza para muitos, pode levar a preocupações com a privacidade. Ao entender e modificar as opções de configuração, pode-se limitar a quantidade de informações que eles compartilham enquanto pesquisam na web e salvam o conteúdo.
3.3 Ferramentas do Console
Historicamente, o desenvolvimento do UNIX mostra considerável sobreposição entre as habilidades de desenvolvimento de software e administração de sistemas. As ferramentas para gerenciamento de sistemas possuem características de linguagens de computador como loops (que permitem que comandos sejam executados repetidamente), e algumas linguagens de programação de computadores são amplamente utilizadas na automatização de tarefas de administração de sistemas. Assim, deve-se considerar essas habilidades complementares, e pelo menos uma familiaridade básica com programação é necessária para administradores de sistemas competentes.
3.3.1 Cascos
No nível básico, os usuários interagem com um sistema Linux por meio de um shell , conectando-se ao sistema remotamente ou a partir de um teclado conectado. O trabalho do shell é aceitar comandos, como manipulação de arquivos e iniciar aplicativos, e passá-los para o kernel do Linux para execução. ‌⁠​​⁠​ O shell Linux fornece uma linguagem rica para iterar arquivos e personalizar o ambiente, tudo sem sair do shell. Por exemplo, é possível escrever uma única linha de comando que encontre arquivos com conteúdo correspondente a um padrão específico, extraia informações úteis do arquivo e copie as novas informações para um novo arquivo.
O Linux oferece uma variedade de shells para escolher, diferindo principalmente em como e o que pode ser personalizado e na sintaxe da linguagem de script integrada. As duas famílias principais são o shell Bourne e o shell C. O shell Bourne recebeu o nome de seu criador, Stephen Bourne, da Bell Labs. O shell C recebeu esse nome porque sua sintaxe é fortemente emprestada da linguagem C. Como esses dois shells foram inventados na década de 1970, existem versões mais modernas, o Bourne Again Shell (Bash) e o tcsh (pronunciado como tee-cee-shell). Bash é o shell padrão na maioria dos sistemas, embora o tcsh também esteja normalmente disponível.
Os programadores pegaram recursos favoritos do Bash e do tcsh e criaram outros shells, como o Korn shell (ksh) e o Z shell (zsh) . A escolha das conchas é principalmente pessoal; os usuários que se sentem confortáveis ​​com o Bash podem operar efetivamente na maioria dos sistemas Linux. Outros shells podem oferecer recursos que aumentam a produtividade em casos de uso específicos.
3.3.2 Editores de Texto
A maioria dos sistemas Linux fornece uma escolha de editores de texto que são comumente usados ​​no console para editar arquivos de configuração. As duas aplicações principais são Vi (ou o mais moderno Vim ) e Emacs . Ambos são ferramentas notavelmente poderosas para editar arquivos de texto; eles diferem no formato dos comandos e como os plugins são escritos para eles. Os plug-ins podem ser qualquer coisa, desde realce de sintaxe de projetos de software até calendários integrados.
Tanto o Vi quanto o Emacs são complexos e têm uma curva de aprendizado acentuada, o que não é útil para a edição simples de um pequeno arquivo de texto. Portanto, Pico e Nano estão disponíveis na maioria dos sistemas e fornecem edição de texto muito básica.
Considere isto
O editor Nano foi desenvolvido como um editor de código aberto totalmente baseado no Pico, pois a licença do Pico não é uma licença de código aberto e proíbe fazer alterações e distribuí-lo.
Embora o Nano seja simples e fácil de usar, ele não oferece o amplo conjunto de recursos de edição e vinculação de teclas mais avançados que um editor como o Vi oferece. Os administradores devem se esforçar para obter alguma familiaridade básica com o Vi, porque ele está disponível em quase todos os sistemas Linux existentes. Ao restaurar um sistema Linux quebrado executando no modo de recuperação da distribuição, o Vi pode ser uma ferramenta crítica, e o melhor momento para aprender o Vim ou qualquer editor é antes de precisar desesperadamente dele para consertar um sistema quebrado.
3.4 Gerenciamento de Pacotes
Todo sistema Linux precisa adicionar, remover e atualizar software. No passado, isso significava baixar o código-fonte, configurá-lo, compilá-lo e copiar os arquivos em cada sistema que exigisse atualização. Felizmente, as distribuições modernas usam pacotes , que são arquivos compactados que agrupam um aplicativo e suas dependências (ou arquivos necessários), simplificando bastante a instalação criando os diretórios corretos, copiando os arquivos apropriados para eles e criando os itens necessários como links simbólicos .
Um gerenciador de pacotes cuida de acompanhar quais arquivos pertencem a qual pacote e até mesmo baixar atualizações de repositórios, normalmente um servidor remoto compartilhando as atualizações apropriadas para uma distribuição. No Linux, existem muitos sistemas de gerenciamento de pacotes de software diferentes, mas os dois mais populares são os do Debian e do Red Hat.
3.4.1 Gerenciamento de Pacotes Debian
A distribuição Debian e seus derivados, como Ubuntu e Mint, usam o sistema de gerenciamento de pacotes Debian. No centro do gerenciamento de pacotesDebian estão os pacotes de software que são distribuídos como arquivos que terminam na .debextensão.
A ferramenta de nível mais baixo para gerenciar esses arquivos é o dpkg comando. Esse comando pode ser complicado para usuários novatos do Linux, portanto, a Advanced Package Tool , apt-get(um programa front-end para a dpkg ferramenta), facilita o gerenciamento de pacotes. Ferramentas de linha de comando adicionais que servem como front-ends para dpkg incluir aptitude e front-ends de GUI como Synaptic e Software Center .
3.4.2 Gerenciamento de pacotes RPM
O Linux Standards Base , que é um projeto da Linux Foundation , é projetado para especificar (por meio de um consenso) um conjunto de padrões que aumentam a compatibilidade entre os sistemas Linux em conformidade. De acordo com o Linux Standards Base, o sistema padrão de gerenciamento de pacotes é o RPM.
O RPM utiliza um .rpmarquivo para cada pacote de software. Este sistema é o que as distribuições derivadas da Red Hat, incluindo Centos e Fedora, usam para gerenciar software. Várias outras distribuições que não são derivadas da Red Hat, como SUSE, OpenSUSE e Arch, também usam RPM.
‌⁠​​⁠​ Como o sistema Debian, os sistemas de gerenciamento de pacotes RPM rastreiam as dependências entre os pacotes. O rastreamento de dependências garante que, quando um pacote for instalado, o sistema também instale todos os pacotes necessários para que esse pacote funcione corretamente. As dependências também garantem que as atualizações e remoções de software sejam executadas corretamente.
A ferramenta de back-end mais comumente usada para gerenciamento de pacotes RPM é o rpmcomando. Embora o rpmcomando possa instalar, atualizar, consultar e remover pacotes, as ferramentas front-end da linha de comando, como yume up2dateautomatizar o processo de resolução de problemas de dependência.
Observação
Um programa ou aplicativo de back-end interage diretamente com um programa de front-end ou é "chamado" por um programa intermediário. Os programas de back-end não interagem diretamente com o usuário. Basicamente, existem programas que interagem com pessoas (front-end) e programas que interagem com outros programas (back-end).
Há também ferramentas front-end baseadas em GUI, como Yumex e Gnome PackageKit , que também facilitam o gerenciamento de pacotes RPM.
Algumas distribuições baseadas em RPM implementaram o estilo de gerenciamento de pacotes ZYpp (ou libzypp ), principalmente openSUSE e SUSE Linux Enterprise, mas também distribuições móveis MeeGo, Tizen e Sailfish.
O zyppercomando é a base do método ZYpp e apresenta comandos curtos e longos em inglês para executar funções, como instalar um pacote incluindo quaisquer dependências necessárias.zypper in packagename
A maioria dos comandos associados ao gerenciamento de pacotes requer privilégios de root. A regra geral é que, se um comando afetar o estado de um pacote, será necessário acesso administrativo. Em outras palavras, um usuário comum pode realizar uma consulta ou uma pesquisa, mas para adicionar, atualizar ou remover um pacote é necessário que o comando seja executado como usuário root.
3.5 Linguagens de Desenvolvimento
Não deveria ser nenhuma surpresa que, como software construído a partir de contribuições de programadores, o Linux tenha excelente suporte para desenvolvimento de software. Os shells são construídos para serem programáveis ​​e existem editores poderosos incluídos em todos os sistemas. Há também muitas ferramentas de desenvolvimento disponíveis, e muitas linguagens de programação modernas tratam o Linux como um cidadão de primeira classe.
As linguagens de programação de computador fornecem uma maneira para um programador inserir instruções em um formato mais legível por humanos e para que essas instruções sejam eventualmente traduzidas em algo que o computador entenda. As linguagens se enquadram em um dos dois campos: interpretadas ou compiladas . Uma linguagem interpretada traduz o código escrito em código de computador enquanto o programa é executado, e uma linguagem compilada é traduzida de uma só vez.
O próprio Linux foi escrito em uma linguagem compilada chamada C . O principal benefício do C é que a própria linguagem mapeia de perto o código de máquina gerado para que um programador habilidoso possa escrever um código pequeno e eficiente. Quando a memória do computador era medida em kilobytes, isso era muito importante. Mesmo com grandes tamanhos de memória hoje, C ainda é útil para escrever código que deve ser executado rapidamente, como um sistema operacional.
C foi ampliado ao longo dos anos. Existe o C++ , que adiciona suporte a objetos ao C (um estilo diferente de programação), e o Objective C , que tomou outra direção e é muito usado nos produtos da Apple.
A linguagem Java dá um toque diferente à abordagem compilada. Em vez de compilar para o código de máquina, o Java primeiro imagina uma CPU hipotética chamada Java Virtual Machine (JVM) e, em seguida, compila todo o código para isso. Cada computador host executa o software JVM para traduzir as instruções JVM (chamadas bytecode) em instruções nativas.
A tradução adicional com Java pode fazer você pensar que seria lento. No entanto, a JVM é relativamente simples, portanto pode ser implementada de forma rápida e confiável em qualquer coisa, desde um computador poderoso até um dispositivo de baixo consumo de energia que se conecta a uma televisão. Um arquivo Java compilado também pode ser executado em qualquer computador que implemente a JVM!
Outro benefício de compilar para um destino intermediário é que a JVM pode fornecer serviços ao aplicativo que normalmente não estariam disponíveis em uma CPU. Alocar memória para um programa é um problema complexo, mas está embutido na JVM. Como resultado, os fabricantes de JVM podem focar suas melhorias na JVM como um todo, de modo que qualquer progresso que eles façam esteja instantaneamente disponível para os aplicativos.
As linguagens interpretadas, por outro lado, são traduzidas para código de máquina à medida que são executadas. A energia extra do computador gasta para fazer isso geralmente pode ser recuperada pelo aumento da produtividade que o programador ganha por não ter que parar de trabalhar para compilar. Linguagens interpretadas também tendem a oferecer mais recursos do que linguagens compiladas, o que significa que muitas vezes menos código é necessário. O próprio interpretador de linguagem geralmente é escrito em outra linguagem, como C e, às vezes, até em Java! Isso significa que uma linguagem interpretada está sendo executada na JVM, que é traduzida no tempo de execução em código de máquina real.
JavaScript é uma linguagem de programação interpretada de alto nível que é uma das principais tecnologias da rede mundial de computadores. É semelhante, mas fundamentalmente diferente do Java, que é uma linguagem de programação totalmente orientada a objetos de propriedade da Oracle. JavaScript é uma linguagem de script de plataforma cruzada para adicionar elementos interativos a páginas da Web, amplamente utilizada na Internet. Usando bibliotecas JavaScript, os programadores da Web podem adicionar tudo, desde animações simples até aplicativos complexos do lado do servidor para usuários da Internet. O JavaScript está evoluindo continuamente para atender às necessidades de funcionalidade e segurança dos usuários da Internet e pode ser lançado sob uma licença GNU GPL.
Considere isto
O termo orientado a objetos refere-se à programação que abstrai ações e processos complexos para que o usuário final lide apenas com tarefas básicas. Para visualizar esse conceito, pense em uma máquina que executa um conjunto complexo de tarefas simplesmente apertando um botão.
Perl é uma linguagem interpretada. Perl foi originalmente desenvolvido para realizar manipulação de texto. Ao longo dos anos, ganhou o favor dos administradores de sistemas e continua a ser aprimorado e usado em tudo, desde a automação até a criação de aplicativos da web.
PHP é uma linguagem que foi inicialmente construída para criar páginasweb dinâmicas. Um arquivo PHP é lido por um servidor web como o Apache. Marcas especiais no arquivo indicam que partes do código devem ser interpretadas como instruções. O servidor da Web reúne todas as diferentes partes do arquivo e as envia para o navegador da Web. As principais vantagens do PHP são que ele é fácil de aprender e está disponível em quase todos os sistemas. Por causa disso, muitos projetos populares são construídos em PHP. Exemplos notáveis ​​incluem WordPress (para blogging), cacti (para monitoramento) e até mesmo partes do Facebook.
Ruby é outra linguagem que foi influenciada por Perl e Shell, juntamente com muitas outras linguagens. Ele torna as tarefas de programação complexas relativamente fáceis e, com a inclusão da estrutura Ruby on Rails, é uma escolha popular para a criação de aplicativos da Web complexos. Ruby também é a linguagem que alimenta muitas das principais ferramentas de automação, como Chef e Puppet , que tornam o gerenciamento de um grande número de sistemas Linux muito mais simples.
Python é outra linguagem de script que é de uso geral. Muito parecido com o Ruby, ele facilita tarefas complexas e possui uma estrutura chamada Django que torna a construção de aplicativos da Web muito fácil. Python tem excelentes habilidades de processamento estatístico e é um favorito na academia.
Uma linguagem de programação de computador é apenas uma ferramenta que torna mais fácil dizer ao computador o que você quer que ele faça. Uma biblioteca agrupa tarefas comuns em um pacote distinto que pode ser usado pelo desenvolvedor. ImageMagick é uma dessas bibliotecas que permite aos programadores manipular imagens no código. O ImageMagick também vem com algumas ferramentas de linha de comando que permitem aos programadores processar imagens de um shell e aproveitar os recursos de script existentes.
OpenSSL é uma biblioteca criptográfica usada em tudo, desde servidores da Web até a linha de comando. Ele fornece uma interface padrão para adicionar criptografia em um script Perl, por exemplo.
Em um nível muito inferior está a biblioteca C. A biblioteca C fornece um conjunto básico de funções para leitura e gravação em arquivos e exibições e é usada por aplicativos e outras linguagens semelhantes.
3.6 Segurança
Administradores e usuários de computador estão cada vez mais conscientes das questões de privacidade em suas vidas pessoais e profissionais. Violações de dados de alto perfil têm estado nas notícias com muita frequência recentemente, e o custo dessas invasões pode chegar a milhões de dólares para as instituições que são vítimas de hackers e ataques de ransomware. Muitas vezes, a causa dessas violações é simplesmente um erro humano, como abrir um e-mail suspeito ou inserir senhas em uma página de login falsa.
Os cookies são o principal mecanismo que os sites usam para rastreá-lo. Às vezes, esse rastreamento é bom, como para acompanhar o que está em seu carrinho de compras ou para mantê-lo conectado ao retornar ao site.
Conforme você navega na web, um servidor da web pode enviar de volta o cookie, que é um pequeno pedaço de texto, junto com a página da web. Seu navegador armazena essas informações e as envia de volta a cada solicitação para o mesmo site. Os cookies normalmente são enviados apenas de volta ao site de onde se originaram, portanto, um cookie de example.com não seria enviado para example.org.
No entanto, muitos sites possuem scripts incorporados provenientes de terceiros, como um anúncio em banner ou pixel de análise do Google. Se example.com e example.org tiverem um pixel de rastreamento, como um de um anunciante, esse mesmo cookie será enviado ao navegar em ambos os sites. O anunciante saberá que você visitou example.com e example.org.
Com um alcance amplo o suficiente, como posicionamento em sites de redes sociais com botões “Curtir” e outros, um site pode obter uma compreensão de quais sites você frequenta e descobrir seus interesses e dados demográficos.
Existem várias estratégias para lidar com isso. Uma delas é ignorá-lo. A outra é limitar os pixels de rastreamento que você aceita, bloqueando-os totalmente ou limpando-os periodicamente.
Os navegadores normalmente oferecem configurações relacionadas a cookies; os usuários podem optar por fazer com que o navegador diga ao site para não rastrear. Essa tag voluntária é enviada na solicitação e alguns sites a honrarão. O navegador também pode ser configurado para nunca se lembrar de cookies de terceiros e remover cookies comuns (como do site em que você está navegando) depois de fechado.
Ajustar as configurações de privacidade pode torná-lo mais anônimo na Internet, mas também pode causar problemas em alguns sites que dependem de cookies de terceiros. Se isso acontecer, talvez seja necessário permitir explicitamente que alguns cookies sejam salvos.
Os navegadores também oferecem um modo privado ou anônimo em que cookies e pixels de rastreamento são excluídos ao sair da janela. Este modo pode ser útil se você quiser pesquisar algo sem deixar que outros sites saibam o que você está procurando.
3.6.1 Problemas de senha
Um bom gerenciamento de senhas é essencial para a segurança em qualquer ambiente de computação. O administrador de sistemas Linux geralmente é a pessoa responsável por definir e impor políticas de senha para usuários em todos os níveis. O usuário mais privilegiado em qualquer sistema Linux é o root ; esta conta é o administrador principal e é criada quando o sistema operacional é instalado. Freqüentemente, os administradores desativam o acesso root como a primeira linha de defesa contra invasões, pois os hackers de computador tentarão obter acesso root para assumir o controle do sistema.
Existem muitos níveis de acesso e vários meios de gerenciamento de senha em um sistema Linux. Quando os usuários são criados, eles recebem diferentes permissões de login, dependendo de quais grupos são atribuídos. Por exemplo, os administradores podem criar e gerenciar usuários enquanto os usuários comuns não podem. Os serviços executados em sistemas como bancos de dados também podem ter permissões de login com suas próprias senhas e privilégios. Além disso, existem senhas específicas para acessar os sistemas remotamente por meio de SSH, FTP ou outros programas de gerenciamento.
Gerenciar todas essas contas e suas respectivas senhas é uma parte complicada e necessária da função de administrador de sistemas. As senhas precisam ser complexas o suficiente para não serem facilmente adivinhadas por hackers, mas fáceis de lembrar para os usuários. Cada vez mais usuários e administradores estão recorrendo a programas gerenciadores de senhas para armazenar credenciais de login em formato criptografado. Outra tendência é a autenticação de dois fatores (2FA) , uma técnica em que uma senha é complementada por um segundo “fator”, geralmente uma senha enviada ao telefone ou a outros dispositivos do usuário. Manter-se atualizado com as tendências de segurança atuais e, ao mesmo tempo, garantir a facilidade de acesso dos usuários autorizados é um desafio contínuo que deve ser enfrentado.
3.6.2 Protegendo-se
Ao navegar na web, você deixa uma pegada digital. Muitas dessas informações são ignoradas; algumas delas são coletadas para coletar estatísticas para publicidade e outras podem ser usadas para fins maliciosos.
A coisa mais fácil que você pode fazer é usar uma senha boa e exclusiva onde quer que vá, especialmente em sua máquina local. Uma boa senha tem pelo menos 10 caracteres e contém uma mistura de números, letras (maiúsculas e minúsculas) e símbolos especiais. Use um gerenciador de senhas como KeePassX para gerar senhas, e então você só precisa ter uma senha de login para sua máquina e uma senha para abrir seu arquivo KeePassX.
Além disso, limite as informações fornecidas aos sites apenas ao necessário. Embora fornecer o nome de solteira e a data de nascimento de sua mãe possa ajudar a desbloquear seu login de rede social se você perder sua senha, as mesmas informações podem ser usadas para se passar por você em seu banco.
Depoisdisso, certifique-se de verificar as atualizações periodicamente. O sistema pode ser configurado para verificar atualizações regularmente. Se houver atualizações relacionadas à segurança, você pode ser solicitado a instalá-las imediatamente.
Finalmente, você deve proteger seu computador de aceitar conexões de entrada. Um firewall é um dispositivo que filtra o tráfego de rede e o Linux possui um integrado. Se você estiver usando o Ubuntu, o Gufw é uma interface gráfica para o Uncomplicated Firewall (UFW) do Ubuntu .
Nos bastidores, você está usando iptables , que é o sistema de firewall integrado. Em vez de inserir comandos iptables complicados, você usa uma GUI. Embora essa GUI permita criar uma política eficaz para um desktop, ela mal arranha a superfície do que o iptables pode fazer.
3.6.3 Ferramentas de Privacidade
O uso de ferramentas modernas de privacidade, tanto no nível do servidor quanto do usuário, pode ajudar a prevenir invasões do sistema e acesso não autorizado aos dados.
A boa notícia é que o Linux é, por padrão, um dos sistemas operacionais mais seguros já criados. Muitas das explorações que afligem outros sistemas operacionais simplesmente não funcionam no Linux devido à arquitetura subjacente. No entanto, ainda existem muitos pontos fracos conhecidos dos quais os hackers podem tirar proveito, portanto, o administrador de sistemas proativo é sábio para implantar ferramentas de privacidade que protejam seus usuários, bem como os sistemas que eles usam.
A criptografia é provavelmente a ferramenta de privacidade mais conhecida e amplamente implantada em uso atualmente. Os administradores implantam criptografia com chaves de autenticação em quase todos os sistemas que se comunicam com o mundo externo. Um exemplo bem conhecido é o padrão HyperText Transfer Protocol Secure (HTTPS) usado em servidores da Web para garantir que os dados transmitidos entre usuários e recursos online não possam ser interceptados enquanto trafegam na Internet aberta.
As redes privadas virtuais (VPN) têm sido usadas por empresas para conectar seus servidores remotos e funcionários por muitos anos. Agora eles estão ganhando popularidade entre os usuários comuns que procuram proteger sua privacidade online. Eles funcionam criando um canal criptografado de comunicação entre dois sistemas, de modo que os dados transmitidos entre eles são embaralhados por um algoritmo que apenas os sistemas conhecem.
O projeto Tor está envolvido há muito tempo na criação de ferramentas de privacidade, como o Tor Browser , que funciona retransmitindo solicitações da Internet por meio de uma rede de servidores que impede que sites e outros saibam a identidade da pessoa que faz a solicitação.
Essas ferramentas estão em constante evolução e escolher quais são as mais adequadas para os usuários e sistemas envolvidos é parte essencial do papel do administrador de sistemas.
3.7 A Nuvem
Sem dúvida você já ouviu falar da nuvem . Esteja você usando o Google Docs para sua lição de casa ou armazenando músicas e fotos no iCloud, provavelmente tem pelo menos parte de seu conteúdo digital hospedado em um servidor de nuvem em algum lugar.
A computação em nuvem revolucionou a forma como acessamos a tecnologia. À medida que a conectividade e as velocidades da Internet aumentaram, ficou mais fácil mover recursos de computação para locais remotos onde o conteúdo pode ser acessado, manipulado e compartilhado em todo o mundo. As organizações estão cada vez mais olhando para a nuvem como essencial para seus negócios e operações. A migração dos aplicativos e processos de TI de uma organização para serviços em nuvem, conhecida como adoção da nuvem, está rapidamente se tornando uma decisão comercial estratégica para muitos. Com a adoção da nuvem aumentando significativamente em todo o mundo, a computação em nuvem não é mais o slogan de antes. A computação em nuvem é vista como uma das principais tecnologias disruptivas da próxima década, que transformará significativamente negócios, economias e vidas globalmente.
Fisicamente, uma nuvem pode ser descrita como recursos de computação de um ou vários centros de dados externos que podem ser acessados ​​pela Internet. A nuvem aproveita os benefícios de um data center e fornece soluções de computação para organizações que precisam armazenar e processar dados, além de permitir que eles deleguem o gerenciamento da infraestrutura de TI a terceiros. Os dados e recursos que as organizações armazenam na nuvem podem incluir dados, servidores, armazenamento, hospedagem de aplicativos, análises e uma infinidade de outros serviços.
Um modelo de implantação de nuvem fornece uma base para como a infraestrutura de nuvem é criada, gerenciada e acessada. Existem quatro modelos principais de implantação de nuvem:
· Nuvem pública : uma nuvem pública é uma infraestrutura de nuvem implantada por um provedor para oferecer serviços de nuvem ao público em geral e organizações pela Internet. No modelo de nuvem pública, pode haver vários locatários (consumidores) que compartilham recursos de nuvem comuns. Muito provavelmente, muitos de nós acessamos recursos de nuvem pública em algum momento por meio de provedores como Amazon, Google e outros provedores populares de nuvem pública.
· Nuvem Privada : Uma nuvem privada é uma infraestrutura de nuvem configurada para uso exclusivo de uma organização específica. Quando comparada a uma nuvem pública, uma nuvem privada oferece às organizações um maior grau de privacidade e controle sobre a infraestrutura, aplicativos e dados da nuvem. Ele pode ser hospedado em servidores gerenciados pela empresa que o está usando ou por meio de um provedor de nuvem privada gerenciado, como Rackspace ou IBM.
· Nuvem comunitária : Uma nuvem comunitária é uma infraestrutura de nuvem configurada para uso exclusivo por um grupo de organizações com objetivos ou requisitos comuns. As organizações que participam da comunidade geralmente compartilham o custo do serviço de nuvem da comunidade. Essa opção pode ser mais cara que a nuvem pública; no entanto, pode oferecer um nível mais alto de controle e proteção contra ameaças externas do que uma nuvem pública.
· Nuvem Híbrida : Uma nuvem híbrida é composta por duas ou mais nuvens individuais, cada uma das quais pode ser privada, comunitária ou pública. Uma nuvem híbrida pode mudar ao longo do tempo conforme as nuvens de componentes entram e saem. O uso dessa tecnologia possibilita a portabilidade de dados e aplicativos. Ele também permite que as empresas alavanquem recursos externos, mantendo o controle de recursos sensíveis.
3.7.1 Linux na nuvem
O Linux desempenha um papel fundamental na computação em nuvem. Ele alimenta 90% da carga de trabalho da nuvem pública, a maioria dos servidores virtuais é baseada em alguma versão do kernel do Linux e o Linux é frequentemente usado para hospedar os aplicativos por trás dos serviços de computação em nuvem. Então, o que torna o Linux especialmente adequado para habilitar a computação em nuvem?
Flexibilidade
A computação em nuvem fornece a capacidade de provisionar recursos de TI rapidamente e a qualquer momento. Essa agilidade permite um rápido desenvolvimento e experimentação que, por sua vez, facilita a inovação, essencial para pesquisa e desenvolvimento, descoberta de novos mercados e oportunidades de receita, criação de novos segmentos de clientes e desenvolvimento de novos produtos.
Como resultado, a computação em nuvem deve compensar o fato de que cada organização tem um conjunto exclusivo e em evolução de requisitos de recursos.
O Linux se destaca aqui porque é altamente adaptável. Para iniciantes, o Linux é modular por design e está no centro de um enorme ecossistema de aplicativos de código aberto, oferecendo infinitas opções de configuração para atender a vários sistemas e casos de uso. Além disso, o Linux escala com eficiência, permitindo que ele execute qualquer coisa, desde um pequeno sensor remoto até um farm de servidores inteiro.
Acessibilidade
Em um ambiente tradicional, os recursos de TI são acessados ​​a partirde dispositivos dedicados, como um desktop ou laptop. Na computação em nuvem, os aplicativos e dados residem centralmente e são acessados ​​de qualquer lugar em uma rede de qualquer dispositivo, como desktop, móvel ou thin client, e há uma versão do Linux para cada um desses dispositivos.
Custo-beneficio
A computação em nuvem é atraente, pois tem o potencial para os consumidores reduzirem seus custos de TI. Na computação em nuvem, os consumidores podem escalar de forma unilateral e automática os recursos de TI para atender à demanda de carga de trabalho, eliminando assim a sobrecarga de recursos subutilizados. Além disso, as despesas associadas à configuração, gerenciamento, espaço físico, energia e resfriamento de TI são reduzidas.
Os provedores de nuvem absorvem esses custos de infraestrutura, mas devem permanecer como uma alternativa de baixo custo. A escolha do Linux é uma das soluções mais econômicas que os provedores podem implantar. O Linux é um dos sistemas operacionais com maior eficiência de energia, e o kernel do Linux é totalmente gratuito, assim como muitos aplicativos, utilitários e componentes de software adicionais associados.
Organizações empresariais e governamentais podem optar por pagar por distribuições com suporte comercial, que ainda são mais econômicas quando comparadas aos concorrentes licenciados. As distribuições não comerciais que oferecem suporte à computação em nuvem também são uma opção viável para muitas organizações.
Os fornecedores não apenas podem repassar essas economias para os clientes, mas também oferecer soluções baseadas em Linux pode ser mais barato para o cliente implementar. A configuração do Linux em seus próprios sistemas elimina as caras taxas de licenciamento de usuários potencialmente associadas a sistemas operacionais concorrentes.
Gerenciabilidade
Embora o Linux tenha começado como um sistema operacional de nicho, sua ampla presença no setor de TI tornou o uso e a administração do Linux uma habilidade necessária para profissionais de TI. Está se tornando cada vez mais fácil para os fornecedores e consumidores de nuvem adquirir o talento necessário ou realocar os membros da equipe existente.
A natureza do Linux, construída na linguagem de programação C, também se presta a ferramentas de gerenciamento automatizadas. Uma parte significativa dos servidores Linux operando na nuvem é criada e gerenciada por programas de gerenciamento automatizados, e não por operadores humanos. Esse processo libera os administradores para monitorar as operações de computação em vez de configurar e atualizar manualmente os sistemas.
Segurança
Ao usar uma solução em nuvem, especialmente uma nuvem pública, uma organização pode ter preocupações relacionadas à privacidade, ameaças externas e falta de controle sobre os recursos e dados de TI.
O Linux pode ajudar a compensar esses problemas porque é um dos sistemas operacionais mais seguros e confiáveis ​​disponíveis. O Linux é de código aberto, o que significa que seu código-fonte está disponível para qualquer pessoa obter, revisar e modificar. Isso também significa que o código pode ser inspecionado quanto a vulnerabilidades e problemas de compatibilidade, resultando em um amplo esforço da comunidade para corrigir esses problemas e manter a sólida reputação do Linux.
virtualização
A virtualização é um dos avanços mais significativos que contribuíram para a habilitação da computação em nuvem.
O Linux é um sistema operacional multiusuário , o que significa que muitos usuários diferentes podem trabalhar no mesmo sistema simultaneamente e, na maioria das vezes, não podem fazer coisas que prejudiquem outros usuários. No entanto, isso tem limitações - os usuários podem monopolizar espaço em disco ou ocupar muita memória ou recursos da CPU e tornar o sistema lento para todos. Compartilhar o sistema no modo multiusuário também requer que todos executem como usuários sem privilégios, portanto, permitir que cada usuário execute seu próprio servidor da Web, por exemplo, é um desafio.
A virtualização é o processo em que um computador físico, chamado de host , executa várias cópias de um sistema operacional, cada cópia chamada de convidado . Essas imagens de convidados podem ser pré-configuradas para funções específicas para permitir uma implantação rápida, geralmente automática, quando necessário. O sistema host executa um software chamado hipervisor que alterna recursos entre os vários convidados, assim como o kernel do Linux faz para processos individuais. Com hipervisores bare metal, o hipervisor é executado diretamente no hardware do computador, em vez de sobre um sistema operacional, liberando mais recursos para imagens de convidados.
A virtualização funciona porque os servidores passam a maior parte do tempo ociosos e não precisam de recursos físicos como monitor e teclado. Com software de empresas como VMWare e Openbox , agora você pode usar uma CPU poderosa e, ao usá-la para executar várias máquinas virtuais, os administradores podem otimizar o uso de recursos físicos e reduzir drasticamente os custos em relação ao modelo anterior de data center de uma máquina e um sistema operacional. A principal limitação geralmente é a memória, no entanto, com os avanços na tecnologia de hipervisor e CPUs, é possível colocar mais máquinas virtuais em um host do que nunca.
Em um ambiente virtualizado, um host pode executar dezenas de sistemas operacionais convidados e, com o suporte da própria CPU, os convidados nem sabem que estão sendo executados em uma máquina virtual. Cada convidado obtém seus próprios recursos virtuais e se comunica com a rede por conta própria. Nem é necessário rodar o mesmo sistema operacional em todos os convidados, o que reduz ainda mais o número de servidores físicos necessários.
A virtualização oferece uma maneira de uma empresa diminuir o uso de energia e reduzir o espaço do data center em uma frota equivalente de servidores físicos. Os convidados agora são apenas configurações de software, por isso é fácil ativar uma nova máquina para teste e destruí-la quando sua utilidade passar.
Como é possível executar várias instâncias de um sistema operacional em uma máquina física e conectar-se a ela pela rede, a localização da máquina não importa. A computação em nuvem adota essa abordagem e permite que os administradores tenham máquinas virtuais em um data center remoto de propriedade de outra empresa e paguem apenas pelos recursos utilizados. Os fornecedores de computação em nuvem podem aproveitar as escalas de economia para oferecer recursos de computação a preços muito mais baixos do que operar um data center no local.
Implantações de contêineres e Bare Metal
Com o surgimento de tecnologias de conteinerização, como Docker e Kubernetes , o software de aplicativo agora está sendo escrito para ser executado em um ambiente sem servidor . Essencialmente, os programadores estão criando software que executa uma única função de um sistema (como processamento ou armazenamento de banco de dados) que é executado em um contêiner. Esses contêineres são organizados em pods que são executados em um nó e podem se comunicar entre si e com o mundo externo, se necessário. Os nós, por sua vez, são organizados e controlados por um nó mestreque fornece serviços para cada componente dentro da estrutura. A criação de aplicativos dessa maneira separa cada um dos componentes dos outros e da sobrecarga de executar um sistema operacional. Como cada peça do quebra-cabeça pode ser destruída e recriada automaticamente pelo nó mestre, elas não precisam mais ser tão robustas quanto um software executado em um sistema operacional. Embora essas novas arquiteturas de programação estejam, de muitas maneiras, contornando a necessidade de um sistema operacional tradicional, a tecnologia subjacente que as faz funcionar ainda é o Linux. Portanto, trabalhar no Linux será cada vez mais trabalhar dentro de uma equipe de desenvolvimento que se baseia nas disciplinas de programação, design de banco de dados, rede e administração de sistemas para criar os sistemasdo futuro.

Mais conteúdos dessa disciplina