Introdução ao Sistema Operacional Linux
Conteudista: Prof. Me. Antonio Eduardo Marques da Silva
Revisão Textual: Prof.a Dra. Selma Aparecida Cesarin
Objetivo da Unidade:
Introdução sobre os sistemas operacionais Linux, distribuições e suas evoluções,
aplicações OpenSource e suas habilidades;
📄 Material Teórico
📄 Material Complementar
📄 Referências
📄 Material Teórico
Página 1 de 3
Introdução ao Sistema Operacional Linux
O Linux, um dos sistemas operacionais mais populares, foi criado em 1991 por Linus Torvalds,
inspirado no Unix, desenvolvido nos anos 1970 pelos Laboratórios AT&T. O Unix foi inicialmente
projetado para computadores pequenos que, na época, eram definidos como aqueles que
custavam menos de um milhão de dólares e não exigiam um cômodo inteiro com ar-
condicionado. Posteriormente, o termo foi utilizado para descrever máquinas que podiam ser
erguidas por duas pessoas. No entanto, o Unix não estava disponível para pequenos
computadores, como os baseados na plataforma x86. Foi então que Linus, um estudante na
época, decidiu criar um sistema operacional semelhante ao Unix, mas capaz de rodar nessa
Plataforma.
Figura 1 – Linus Torvalds
Fonte: Wikimedia Commons
#ParaTodosVerem: imagem que mostra o rosto de Linus Torvalds, criador do
Linux, com os dedos das mãos entrelaçados, em fundo branco. Fim da descrição.
O Linux é amplamente baseado nos mesmos princípios e ideias básicas do Unix, embora não
possua código Unix, já que é um projeto independente. Ao contrário de outros sistemas
operacionais, o Linux é suportado por uma comunidade internacional de programadores, em vez
de uma única Empresa. Como resultado, o Linux é disponibilizado gratuitamente e pode ser
utilizado por qualquer pessoa sem restrições.
Distribuições
Uma distribuição Linux é composta de um kernel Linux e uma seleção de aplicativos mantidos por
uma Empresa ou comunidade de usuários. O objetivo de uma distribuição é otimizar o kernel e os
aplicativos para um determinado tipo de uso ou grupo de usuários. As distribuições geralmente
incluem ferramentas próprias para a instalação de software e administração do sistema.
Algumas distribuições são mais adequadas para ambientes desktop, pois são mais fáceis de usar,
enquanto outras são mais comumente usadas em servidores para maximizar a eficiência dos
recursos disponíveis.
Figura 2 – Símbolo do Linux
Fonte: Wikimedia Commons
#ParaTodosVerem: imagem que apresenta um pinguim, que é o símbolo
clássico da maioria dos sistemas operacionais Linux, nas cores preta, branca e
amarela, em fundo branco. Fim da descrição.
A classificação das distribuições também pode ser feita de acordo com a família de distribuições
a que pertencem. As distribuições da família Debian, por exemplo, usam o gerenciador de
pacotes dpkg para gerenciar o software do sistema operacional. Os pacotes disponíveis para
instalação são mantidos por membros voluntários da comunidade da distribuição, que utilizam
o formato deb para especificar como o software deve ser instalado e configurado por padrão.
Cada pacote contém um conjunto de programas, além de configurações e documentações
correspondentes, o que facilita a instalação, a atualização e a utilização do software pelo usuário.
O Debian GNU/Linux é a maior distribuição dentro da família Debian. Criado por Ian Murdock, em
1993, o projeto conta com uma comunidade ativa de voluntários que trabalham em melhorias e
atualizações constantes. O principal objetivo do Debian GNU/Linux é fornecer um sistema
operacional altamente confiável e seguro, que respeite as liberdades do usuário, como a
capacidade de executar, estudar, distribuir e aprimorar o software. Por essa razão, o sistema não
inclui por padrão nenhum programa proprietário, em conformidade com a visão de Richard
Stallman.
O Ubuntu, uma distribuição baseada no Debian, é uma das mais populares e acessíveis do
Mercado. Criado por Mark Shuttleworth e sua equipe, em 2004, o Ubuntu tem como missão
proporcionar um ambiente desktop fácil de usar e acessível a todas as pessoas do mundo. Além
de oferecer software livre, o Ubuntu também tem como objetivo reduzir o custo de serviços
profissionais. A distribuição lança uma nova versão a cada seis meses, e uma versão com
suporte de longo prazo a cada dois anos, garantindo suporte contínuo e atualizações de
segurança para seus usuários.
O Red Hat é uma distribuição Linux mantida pela Red Hat, uma Empresa de software adquirida
pela IBM, em 2019. A distribuição foi iniciada em 1994 e renomeada em 2003 como Red Hat
Enterprise Linux (RHEL). É uma solução empresarial confiável com suporte da Red Hat e vem com
software projetado para facilitar o uso do Linux em ambientes profissionais de servidor. No
entanto, alguns de seus componentes requerem assinaturas ou licenças pagas. O projeto CentOS
é uma distribuição gratuita que usa o código-fonte livre do RHEL, mas não tem suporte
comercial.
Figura 3 – Símbolo da Red Hat
Fonte: Reprodução
#ParaTodosVerem: imagem que mostra uma cabeça com chapéu vermelho,
símbolo da distribuição Linux Hed hat, em fundo branco. Fim da descrição.
As distribuições Linux, como o RHEL e o CentOS, são projetadas para uso em ambientes de
servidor, enquanto o Fedora foi criado em 2003, com o intuito de fornecer uma distribuição
voltada para computadores desktop. A Red Hat, por sua vez, iniciou e ainda mantém o
desenvolvimento dessa distribuição. O Fedora é conhecido por ser uma plataforma progressista
e adota rapidamente novas tecnologias, sendo frequentemente considerado um banco de testes
para futuras atualizações do RHEL. Todas as distribuições baseadas em Red Hat usam o formato
de pacote rpm.
A Empresa SUSE foi fundada em 1992, na Alemanha, como um provedor de serviços Unix. A
primeira versão do SUSE Linux foi lançada em 1994 e, ao longo dos anos, tornou-se mais
conhecida por sua ferramenta de configuração YaST. O YaST permite aos administradores
instalar e configurar software e hardware, servidores e Redes de forma fácil e intuitiva. Similar ao
RHEL, o SUSE oferece o SUSE Linux Enterprise Server, sua edição comercial, com lançamentos
menos frequentes e adequados para a implantação em ambientes empresariais e de produção. O
SUSE é disponibilizado como um servidor e ambiente desktop, com pacotes personalizados para
atender a necessidades específicas. Em 2004, a SUSE lançou o projeto openSUSE, permitindo que
desenvolvedores e usuários testassem e desenvolvessem ainda mais o sistema. A distribuição
openSUSE é gratuita e pode ser baixada facilmente.
Figura 4 – Símbolo do Linux SUSE
Fonte: Wikimedia Commons
#ParaTodosVerem: imagem que mostra um camaleão na cor verde, símbolo da
distribuição Linux Suse, em fundo em branco. Fim da descrição.
Ao longo dos anos, muitas distribuições independentes foram lançadas, algumas baseadas em
Red Hat ou Ubuntu, enquanto outras foram projetadas para aprimorar uma propriedade
específica de um sistema ou hardware. Algumas distribuições foram criadas com recursos
específicos, como o QubesOS, que fornece um ambiente de desktop altamente seguro, e o Kali
Linux, que é usado, principalmente, para testes de intrusão e para explorar vulnerabilidades de
softwares. Recentemente, várias distribuições de Linux minúsculas foram projetadas para rodar
em containers Linux, como o Docker. Além disso, existem distribuições construídas
especificamente para componentes de sistemas embarcados e dispositivos inteligentes.
Principais Aplicações Open Source
Uma aplicação é um programa de computador que não está diretamente relacionado ao
funcionamento interno da máquina, mas sim às tarefas executadas pelo usuário. As
distribuições Linux oferecem ampla gama de aplicativos para realizar diversas tarefas, como
programas de escritório, navegadores da web, programas de reprodução e edição de mídia, entre
outros. Geralmente, existem várias opções de aplicativos ou ferramentas para realizar a mesma
tarefa, e cabe ao usuário escolher aquela que melhor se adapta às suas necessidades.
Pacotes de Software
As distribuições Linux incluem um conjunto padrão de aplicativos pré-instalados, além de um
vasto repositório de pacotes disponíveis para instalação por meio de um gerenciador de pacotes.
Embora existam muitos aplicativos comuns entre as distribuições, cada uma possui seu próprio
sistema de gerenciamento de pacotes. Por exemplo, o Debian, Ubuntu e Linux Mint utilizam
ferramentas como dpkg, apt-get e apt para instalar pacotes DEB, enquanto o Red Hat, Fedora e
CentOS usam comandos como rpm, yum e dnf para pacotes RPM. É importante escolher a
distribuição que ofereça os aplicativos e o sistema de gerenciamento de pacotes mais adequados
às suas necessidades.
O empacotamento de aplicativos varia entre as diferentes famílias de distribuições Linux,
tornando crucial a instalação de pacotes do repositório correto de cada distribuição. No entanto,
o gerenciador de pacotes da distribuição é responsável por escolher os pacotes adequados,
gerenciar dependências e realizar atualizações futuras, reduzindo a necessidade de o usuário
final se preocupar com esses detalhes. As dependências são pacotes auxiliares necessários para
o funcionamento de determinado programa. Por exemplo, uma biblioteca que fornece funções
para gerenciar imagens no formato JPEG provavelmente estará em um pacote próprio, e todos
os programas que usarem essa biblioteca dependerão desse pacote.
Os comandos dpkg e rpm são utilizados para operar em arquivos de pacotes individuais. No
entanto, na maioria dos sistemas que utilizam pacotes DEB, as tarefas de gerenciamento de
pacotes são executadas por meio dos comandos apt-get ou apt. Já em sistemas que usam
pacotes RPM, as tarefas são executadas por meio do yum ou dnf. Esses comandos operam com
catálogos de pacotes, permitindo o download de novos pacotes e suas dependências, além de
verificar se há novas versões dos pacotes já instalados.
Instalação do Pacote
Suponha que você tenha ouvido falar do comando "figlet", que amplia o texto no terminal, e
queira experimentá-lo. No entanto, ao executá-lo, aparece a seguinte mensagem de erro:
$ figlet
-bash: figlet: command not found
Certamente, acreditamos que podemos melhorar o texto para deixá-lo mais claro e conciso.
Veja só: se você recebeu uma mensagem indicando que o pacote não está instalado em seu
sistema, é possível que ele ainda não tenha sido baixado. Para verificar se ele está disponível em
seus repositórios, você pode utilizar o comando apt-cache search package_name ou apt search
package_name, dependendo da distribuição Linux que você está utilizando. O apt-cache é
utilizado para procurar por pacotes e exibir informações sobre eles. Por exemplo, para procurar
pelo pacote "figlet" nos nomes e descrições dos pacotes disponíveis, você pode utilizar o
comando a seguir:
$ apt-cache search figlet
figlet – Make large character ASCII banners out of ordinary text
A pesquisa identificou o pacote "figlet" como correspondente ao comando ausente. No entanto,
a instalação e a remoção de pacotes requerem permissões especiais que somente o
administrador do sistema, conhecido como root, possui. Em sistemas desktop, usuários comuns
podem instalar ou remover pacotes usando o comando "sudo" antes dos comandos de
instalação ou remoção. Esse comando solicita a senha do usuário para ser executado. Para
instalar pacotes DEB, pode-se usar o comando "apt-get install package_name" ou "apt install
package_name".
$ sudo apt-get install figlet
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
figlet
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Durante esse processo, o pacote será baixado e instalado em seu sistema. Além disso, quaisquer
dependências necessárias para o pacote também serão baixadas e instaladas automaticamente.
Seguem mensagens:
Need to get 184 kB of archives.
After this operation, 741 kB of additional disk space will be used.
Get:1 [Link] stretch/
main armhf figlet armhf 2.2.5-
[184 kB]
Fetched 184 kB in 0s (213 kB/s)
Selecting previously unselected package figlet.
(Reading database... 115701 files and directories currently installed.)
Preparing to unpack.../figlet_2.2.5-2_armhf.deb...
Unpacking figlet(2.2.5-2)...
Setting up figlet(2.2.5-2)...
update-alternatives: using /usr/bin/figlet-figlet to provide /usr/bin/figle
(figlet) in auto mode
Processing triggers for man-db ([Link]-2)...
Após o término do download, os arquivos são copiados para seus respectivos diretórios e
quaisquer configurações adicionais são realizadas. Dessa forma, o comando estará disponível
para ser executado.
$ figlet Awesome!
Figura 5 – Término do Download
Fonte: Reprodução
#ParaTodosVerem: imagem que apresenta o término do processo de download,
apresentando a frase em Inglês “Awesome!” escrita em caracteres de traço
preto em fundo branco. Fim da descrição.
Nas distribuições baseadas em pacotes RPM, é possível realizar pesquisas utilizando os
comandos "yum search package_name" ou "dnf search package_name". Por exemplo,
suponha que você queira exibir um texto de forma mais irreverente, seguido por um desenho de
uma vaquinha, mas não sabe qual pacote oferece essa funcionalidade. Assim como nos pacotes
DEB, é possível realizar pesquisas descritivas utilizando os comandos de busca RPM.
$ yum search speaking cow
Last metadata expiration check: 1:30:49 ago on Tue 23
Apr 2019 11:02:33 PM -03.
============= Name & Summary Matched: speaking, cow
====================
[Link] : Configurable speaking/thinking cow
Quando você encontra o pacote desejado em seu repositório, é possível instalá-lo usando os
comandos "yum install package_name" ou "dnf install package_name", dependendo da
distribuição baseada em pacotes RPM que você está utilizando. No entanto, é importante lembrar
que a instalação de pacotes requer permissões especiais que somente o administrador do
sistema, conhecido como root tem. Durante o processo de instalação, o pacote será baixado e
instalado em seu sistema, juntamente com quaisquer dependências necessárias. Após o término
do download, os arquivos são copiados para seus respectivos diretórios e quaisquer
configurações adicionais são realizadas.
$ sudo yum install cowsay
Last metadata expiration check: 2:41:02 ago on Tue 23
Apr 2019 11:02:33 PM -03.
Dependencies resolved.
========================================================================
Package Arch Version Repository Size
========================================================================
Installing:
cowsay noarch 3.04-10.fc28 fedora 46 k
Transaction Summary
========================================================================
Install 1 Package
Total download size: 46 k
Installed size: 76 k
Is this ok [y/N]: y
Mais uma vez, o pacote desejado e todas as suas possíveis dependências
serão baixados e instalados.
Downloading Packages:
[Link] 490 kB/s | 46 kB 00:00
========================================================================
Total 53 kB/s | 46 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing: 1/1
Installing: [Link] 1/1
Running scriptlet: [Link] 1/1
Verifying: [Link] 1/1
Installed:
[Link] 3.04-10.fc28
Complete!
O comando cowsay faz exatamente o que seu nome implica.
$ cowsay "Brought to you by yum"
_______________________
< Brought to you by yum >
-----------------------
Embora possam parecer simples, os comandos figlet e cowsay oferecem uma maneira criativa e
divertida de destacar informações importantes para outros usuários. Com suas opções de
personalização, esses comandos podem dar vida a mensagens que, de outra forma, passariam
despercebidas. Além disso, essas ferramentas são fáceis de usar e podem ser uma maneira
interessante de adicionar uma pitada de humor aos seus projetos.
Remoção de Pacotes
Para desinstalar pacotes, os mesmos comandos utilizados para instalá-los são empregados. É
possível utilizar a palavra-chave "remove" para desinstalar pacotes já instalados. Nos pacotes
DEB, utiliza-se o comando "apt-get remove package_name" ou "apt remove package_name",
e nos pacotes RPM, "yum remove package_name" ou "dnf remove package_name". É
importante lembrar-se de que a remoção de pacotes requer permissões especiais. Por isso, é
necessário utilizar o comando "sudo". Por exemplo, para desinstalar o pacote "figlet" em uma
distribuição baseada em DEB, basta utilizar o comando "sudo apt-get remove figlet".
É importante ressaltar que a busca de pacotes em distribuições RPM pode ser realizada usando
comandos de pesquisa descritivos, como "yum search" ou "dnf search". Além disso, para
chamar atenção para informações importantes, podem ser utilizados comandos divertidos e
criativos, como o "figlet" e o "cowsay".
$ sudo apt-get remove figlet
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be removed:
figlet
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 741 kB disk space will be freed.
Do you want to continue? [Y/n] Y
Depois de confirmar a operação, o pacote é removido do sistema.
(Reading database... 115775 files and directories currently installed.)
Removing figlet (2.2.5-2)...
Processing triggers for man-db ([Link]-2)...
Para sistemas baseados em RPM, o procedimento é semelhante. Suponha que você queira
remover o pacote "cowsay" que foi instalado anteriormente em uma distribuição baseada em
RPM. Você pode executar o comando "sudo yum remove cowsay" ou "sudo dnf remove
cowsay". É importante lembrar-se de que a busca de pacotes pode ser realizada utilizando
comandos descritivos, semelhantes ao que ocorre em sistemas baseados em pacotes DEB. Para
destacar informações importantes, você pode usar comandos divertidos como "figlet" e
"cowsay". No entanto, é necessário utilizar o comando "sudo" para executar a remoção de
pacotes.
$ sudo yum remove cowsay
Dependencies resolved.
========================================================================
Package Arch Version Repository Size
========================================================================
Removing:
cowsay noarch 3.04-10.fc28 @fedora 76 k
Transaction Summary
========================================================================
Remove 1 Package
Freed space: 76 k
Is this ok [y/N]: y
Da mesma forma, uma confirmação é solicitada e o pacote é apagado do sistem
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Erasing : [Link] 1/1
Running scriptlet: [Link] 1/1
Verifying : [Link] 1/1
Removed:
[Link] 3.04-10.fc28
Complete!
Uma informação importante a se ter em mente é que, mesmo após a remoção de um pacote,
seus arquivos de configuração ainda permanecem no sistema e podem ser úteis caso o pacote
seja reinstalado posteriormente.
Definição de Software Aberto
Embora os termos "software livre" e "software de código aberto" sejam amplamente utilizados,
ainda existem equívocos sobre seus significados. Em particular, é importante examinar mais de
perto o conceito de "liberdade". Apesar de muitos considerarem esses termos sinônimos, é
válido diferenciá-los devido à sua origem e desenvolvimento. A abreviação frequentemente
usada "FOSS" (Free and Open Source Software) enfatiza a aproximação entre os dois conceitos,
enquanto "FLOSS" (Free/Libre and Open Source Software) reforça a ideia de liberdade em outros
idiomas além do Inglês. Portanto, é importante entender a definição de cada termo para
compreender completamente seus significados.
O termo "software livre", com suas quatro liberdades, foi definido por Richard Stallman e o
projeto GNU, que ele fundou em 1985, quase 10 anos antes do surgimento do Linux. O nome
"GNU não é Unix" descreve a intenção com um toque de humor: o GNU começou como uma
iniciativa para desenvolver um sistema operacional Unix do zero, torná-lo disponível para o
público e melhorá-lo continuamente junto com ele. Embora a abertura do código fonte tenha
sido uma necessidade técnica e organizacional para atingir esse objetivo, o movimento do
software livre ainda é visto como social, político e, segundo algumas fontes, ideológico. Com o
sucesso do Linux e a proliferação de projetos e Empresas de software, a abertura do código fonte
tornou-se uma característica determinante, substituindo os motivos sociais por uma
abordagem pragmática no desenvolvimento de software.
Embora o software livre e o software de código aberto possam parecer semelhantes, eles têm
origens e filosofias diferentes. O movimento do software livre é visto como social, político e
ideológico, enquanto o movimento de código aberto é mais pragmático e técnico. Conflitos
podem surgir quando esforços conjuntos não estão alinhados aos objetivos originais de ambos
os movimentos, especialmente quando o software abre seu código fonte, mas não segue as
quatro liberdades do software livre. Isso pode incluir restrições à divulgação, alteração ou
conexão com outros componentes do software. É importante entender essas diferenças para
garantir que o desenvolvimento de software esteja em conformidade com os princípios de
ambos os movimentos.
A licença sob a qual o software é disponibilizado determina as condições a que um software está
sujeito em relação ao seu uso, distribuição e modificação. E como os requisitos e motivos podem
ser muito diferentes, inúmeras licenças diferentes foram criadas na área de FOSS. Devido à
abordagem muito mais fundamental do movimento do software livre, não é de surpreender que
ele não reconheça muitas licenças de código aberto como “livres” e, assim, rejeite-as.
Inversamente, esse, raramente, é o caso da abordagem muito mais pragmática do código aberto.
A seguir, analisamos, em poucas palavras, o intricadíssimo campo das licenças.
Licenças
Diferentemente de produtos físicos, como geladeiras e carros, o software é um produto digital
que não pode ser transferido por meio da venda e transferência de posse física. Em vez disso, as
Empresas transferem os direitos de uso do produto e os usuários concordam contratualmente
com esses direitos. A definição e a limitação desses direitos são estabelecidas nas licenças de
software, o que ressalta a importância de entender as regulamentações contidas nelas. Enquanto
grandes fornecedores de software proprietário, como a Microsoft e a SAP, têm licenças
personalizadas para seus produtos, os defensores do software livre e de código aberto buscaram,
desde o início, criar licenças claras e universais. Isso é fundamental para garantir que qualquer
usuário possa compreendê-las e, se necessário, utilizá-las em seus próprios desenvolvimentos.
O ideal de simplicidade na criação de licenças de software livre e de código aberto pode não ser
facilmente alcançado, devido aos diversos requisitos específicos e às diferenças legais entre
países. Por exemplo, as Leis de direitos autorais diferem fundamentalmente entre a Alemanha e
os Estados Unidos. Na Alemanha, o autor é considerado o proprietário intelectual da obra e não
pode renunciar à autoria, embora possa autorizar sua utilização. Já nos EUA, o autor pode
transferir total ou parcialmente seus direitos de exploração, permitindo que se dissocie
completamente de sua obra. Portanto, é essencial interpretar as licenças de forma abrangente,
considerando as diferentes Legislações nacionais.
Uma consequência das diferentes ideologias que permeiam o universo FOSS é a existência de
licenças muito diversas, às vezes, com várias versões ou misturas de licenças em um mesmo
projeto, o que pode levar a confusões e disputas legais. Para lidar com isso, tanto os defensores
do software livre quanto os do movimento de código aberto – que tem foco predominantemente
econômico – criaram suas próprias Organizações. Essas Organizações são responsáveis pela
formulação de licenças de acordo com seus princípios e apoiam seus membros na aplicação
dessas licenças. É importante lembrar-se de que a complexidade das licenças FOSS requer
atenção e compreensão para evitar problemas legais.
Modelos de Negócios em Open Source
Em retrospecto, o sucesso da FLOSS reside em ser um movimento popular de tecnófilos
idealistas que trabalham livremente, sem restrições econômicas ou dependências monetárias,
visando ao benefício do público em geral. Surpreendentemente, Empresas bilionárias foram
criadas dentro do ambiente FLOSS, como a Red Hat, uma Empresa americana fundada em 1993,
que teve vendas anuais superiores a 3 bilhões de dólares em 2018, e foi adquirida pela gigante de
TI ,a IBM, em 2018.
Vamos analisar a tensão entre a distribuição gratuita de software de alta qualidade e os modelos
de negócio para seus criadores. É importante entender que, apesar de serem altamente
qualificados, os desenvolvedores de software livre também precisam ganhar dinheiro. Portanto,
o ambiente FLOSS original, que era puramente não comercial, precisa desenvolver modelos de
negócios sustentáveis para preservar seu próprio ecossistema.
Uma prática comum, especialmente em projetos maiores em fase inicial, é o crowdfunding, em
que os desenvolvedores coletam doações monetárias por meio de plataformas como o
Kickstarter. Em troca, os doadores recebem um bônus predefinido no caso de sucesso, como
acesso ilimitado ao produto ou recursos exclusivos. Essa abordagem pode ser uma maneira
eficaz de financiar o desenvolvimento de software livre e de código aberto, mas também pode
apresentar desafios. É importante que os desenvolvedores estejam cientes das implicações
legais e fiscais do crowdfunding e que ofereçam recompensas realistas e viáveis para garantir a
satisfação dos doadores.
Uma abordagem alternativa é a adoção da licença dual, em que o software livre é disponibilizado
sob uma licença restritiva ou proprietária, oferecendo, assim, serviços mais completos aos
clientes, como tempos de resposta mais rápidos em caso de erros, atualizações e versões
personalizadas para Plataformas específicas. Um exemplo de sucesso é o ownCloud, que é
desenvolvido sob a GPL e fornece aos clientes empresariais uma "Edição empresarial" sob uma
licença proprietária. Essa estratégia permite que os desenvolvedores de software possam manter
um modelo de negócio sustentável, sem comprometer os princípios do software livre e os
benefícios que ele oferece.
Vamos usar o ownCloud como exemplo de um modelo de negócio FLOSS amplamente difundido:
serviços profissionais. Muitas Empresas não possuem o conhecimento técnico interno
necessário para configurar e operar softwares complexos e críticos de forma confiável e segura.
Assim, elas contratam serviços profissionais diretamente do fabricante, como consultoria,
manutenção ou assistência técnica. As questões de responsabilidade também desempenham um
papel importante nessa decisão, já que a Empresa transfere os riscos da operação para o
fabricante.
Se um software é bem-sucedido e popular em seu campo, há possibilidades periféricas de
monetização, como o merchandising ou certificações adquiridas pelos clientes para indicar seu
status especial no uso do software. A plataforma de aprendizagem Moodle é um exemplo de um
software que oferece a certificação de instrutores para oficializar seus conhecimentos perante
os clientes potenciais. Existem muitas outras possibilidades de monetização periférica para
software bem-sucedido.
O Software como Serviço (Software as a Service ou SaaS) é outro modelo de negócios,
especialmente para tecnologias baseadas na web. Aqui, um provedor de nuvem executa um
software como uma Gestão de Relacionamento com o Cliente (Customer Relationship
Management ou CRM) ou um Sistema de Gerenciamento de Conteúdo (Content Management
System ou CMS) em seus servidores e oferece aos seus clientes acesso ao aplicativo instalado.
Isso evita que o cliente precise se preocupar com a instalação e a manutenção do software. Em
contrapartida, o cliente paga pelo uso do software de acordo com diversos parâmetros, como,
por exemplo, o número de usuários. A disponibilidade e a segurança têm papel importante,
sendo fatores críticos no mundo empresarial.
Por último, mas não menos importante, o modelo de desenvolvimento por encomenda de
extensões específicas em software livre para um determinado cliente é particularmente comum
em projetos menores. Normalmente, cabe ao cliente decidir o que se poderia fazer com essas
extensões, ou seja, se ele também as libera ou se as mantêm privadas como parte de seu próprio
modelo de negócios.
É importante ressaltar que, apesar do software livre ser geralmente disponibilizado
gratuitamente, existem diversos modelos de negócios criados nesse ambiente. Inúmeros
freelancers e Empresas ao redor do mundo têm modificado e ampliado esses modelos de
maneira criativa, garantindo a continuidade do movimento FLOSS. Essa dinâmica mostra como
a comunidade open source é capaz de fomentar a inovação e a sustentabilidade de negócios, sem
comprometer os princípios e benefícios do software livre.
Habilidades com Linux
Antes, trabalhar com Linux no desktop era considerado difícil, pois o sistema não oferecia muitos
aplicativos e ferramentas de configuração sofisticados, disponíveis em outros sistemas
operacionais. Por isso, era necessário começar com os aplicativos essenciais em linha de
comando e deixar as ferramentas gráficas mais complexas para depois. No entanto, esses dias
ficaram para trás. Atualmente, os ambientes de desktop Linux estão mais maduros e apresentam
recursos e facilidade de uso comparáveis aos outros sistemas operacionais. Ainda assim, a linha
de comando é considerada uma ferramenta poderosa pelos usuários avançados. Nesta Unidade,
apresentaremos conhecimentos básicos do desktop para ajudá-lo(a) a escolher a melhor
ferramenta para cada tarefa, começando pelo acesso à linha de comando.
Interfaces de Usuário Linux
A utilização de um sistema Linux possibilita a interação com o computador por meio de duas
principais interfaces: a linha de comando (CLI) e a interface gráfica de usuário (GUI). Ambas
fornecem acesso a uma vasta gama de aplicativos capazes de executar praticamente qualquer
tarefa no computador. Nesta Unidade, além de apresentar alguns dos aplicativos mais comuns,
abordaremos os ambientes desktop, as diferentes formas de acessar o terminal, bem como as
ferramentas utilizadas para apresentações e gestão de projetos.
Ambientes Desktop
O Linux adota uma abordagem modular, em que diferentes partes do sistema são desenvolvidas
por diferentes projetos e desenvolvedores para atender a objetivos específicos. Isso resulta em
várias opções de ambientes desktop e gerenciadores de pacotes, o que leva a uma variedade
significativa entre as distribuições existentes. Ao contrário dos sistemas operacionais
proprietários, como Windows e macOS, que limitam os usuários a um único ambiente desktop, o
Linux oferece a possibilidade de instalar e escolher entre diferentes ambientes, adaptando-se às
necessidades e às preferências de cada usuário.
O Linux oferece uma vasta gama de opções para ambientes de trabalho, sendo o Gnome e o KDE
os dois principais. Ambos são muito completos e contam com uma grande comunidade, mas
têm abordagens diferentes. O Gnome adere ao princípio KISS ("keep it simple, stupid", ou
"mantenha simples, estúpido", em português), com aplicações simplificadas e limpas. Já o KDE
tem uma perspectiva mais aberta, fornecendo ampla variedade de aplicativos e permitindo que o
usuário personalize cada configuração do ambiente. Com essas opções, os usuários podem
escolher o ambiente de trabalho que melhor atenda às suas necessidades e preferências.
Enquanto os aplicativos Gnome são baseados no kit de ferramentas GTK, escrito em linguagem
C, os aplicativos KDE usam a biblioteca Qt, escrita em C++. Uma das principais vantagens de usar
o mesmo kit de ferramentas gráficas é a consistência visual e de usabilidade entre os aplicativos,
proporcionando uma experiência mais coesa para o usuário. Além disso, o uso da mesma
biblioteca gráfica compartilhada em vários aplicativos reduz o uso de memória e o tempo de
carregamento, já que a biblioteca só precisa ser carregada uma vez.
Como Abrir a Linha de Comando
Para nós, um dos aplicativos mais importantes é o emulador de terminal gráfico. São chamados
de emuladores de terminal porque realmente emulam, em um ambiente gráfico, os antigos
terminais seriais (muitas vezes máquinas de teletipo) que eram, realmente, clientes conectados
a uma máquina remota na qual a computação acontecia de fato. Essas máquinas eram, na
verdade, computadores muito simples e sem gráficos, usados nas primeiras versões do Unix. No
Gnome, esse aplicativo se chama Gnome Terminal, enquanto no KDE ele é conhecido como
Konsole.
Existem diversas opções disponíveis para acessar o ambiente de linha de comando, como o
Xterm. Esses aplicativos permitem interagir com um shell e são facilmente encontrados no menu
de programas da distribuição escolhida. Embora haja pequenas diferenças entre eles, todos os
aplicativos oferecem as ferramentas necessárias para que você se sinta confiante no uso da
linha de comando. Outra maneira de acessar o terminal é por meio do TTY virtual. Para isso,
basta pressionar Ctrl + Alt + F# (leia F# como uma das teclas de função de 1 a 7). Algumas das
combinações podem estar associadas ao gerenciador de sessão ou ambiente gráfico, portanto, é
preciso testar todas até encontrar o prompt de login, como no exemplo a seguir:
Ubuntu 18.10 arrelia tty3
arrelia login:
O hostname da máquina, conhecido como "arrelia", é importante para acessar o terminal através
de virtual TTYs no Ubuntu Linux. Para acessar o terminal pelo tty3, você pode usar a combinação
de teclas Ctrl + Alt + F3. Depois de inserir suas credenciais de login, você terá acesso ao terminal,
mas sem uma interface gráfica. Isso significa que você não poderá usar o mouse ou executar
aplicativos gráficos até iniciar uma sessão X ou Wayland. No entanto, essa etapa está fora do
escopo desse material.
📄 Material Complementar
Página 2 de 3
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
Livros
Dominando o Linux: Red Hat e Fedora
BALL, B. DUFF, H. Dominando o Linux: Red Hat e Fedora. São Paulo: Pearson Makron Books,
2004.
Leitura
Curso de Linux Básico: Versão 3.0
Clique no botão para conferir o conteúdo.
ACESSE
Introdução ao Linux e Programação em Script-Shell
Clique no botão para conferir o conteúdo.
ACESSE
Linux: Configuração e Administração
Clique no botão para conferir o conteúdo.
ACESSE
📄 Referências
Página 3 de 3
HILL, B. M.; BACON, J. O livro oficial do Ubuntu 2. Porto Alegre: Bookman, 2008.
LPI. Linux Essentials. Linux Professional Institute. Estados Unidos da América: [n.p], 2021.
NEMETH, E.; SNYDER, G.; HEIN, T. R. Manual Completo do Linux Guia do Administrador. São
Paulo: Pearson, Prentice Hall, 2007.