1 of 79

Linux

Aula I

Semana de Calouros 2025

Login: linux25X (X: 1-150)

Senha: Linux25#X

2025

2 of 79

Atenção

  • As aulas não vão cair em prova nenhuma e nem será cobrado de vocês logo de cara
  • Não se preocupe em tentar memorizar tudo ou anotar comandos etc. Foque em se familiarizar com a estrutura dos comandos e em entender o que está acontecendo
  • Sinta-se livre e tranquilo para tirar dúvidas sobre o que está ouvindo e vendo durante as aulas, já estivemos nos seus lugares e sabemos que é muita informação

3 of 79

Sistemas Operacionais

1.

4 of 79

5 of 79

Sistema Operacional

“O sistema operacional é uma camada de software que opera entre o hardware e os programas aplicativos voltados ao usuário final. Trata-se de uma estrutura de software ampla, muitas vezes complexa, que incorpora aspectos de baixo nível (como drivers de dispositivos e gerência de memória física) e de alto nível (como programas utilitários e a própria interface gráfica).” Carlos Maziero

Sistemas Operacionais - Maziero

6 of 79

Abstração e Gerência

7 of 79

Kernel

  • O SO é dividido em diversas partes
  • O kernel (núcleo) é a parte mais baixo nível do sistema operacional
  • Gerencia recursos do sistema, hardware etc.
  • Outra possível parte de um SO é o conjunto de programas utilitários disponibilizados, como compiladores e editor de texto

8 of 79

Windows

  • Desenvolvido pela Microsoft a partir de 1985
  • Escrito em C/C++ e C#
  • Originado do MS-DOS, feito pela Microsoft e baseado no IBM PC DOS
  • Baixa segurança (muitos malwares)
  • Falta de privacidade (telemetria e coleta de dados)
  • Código fechado
  • Programas pagos
  • Possibilidade de instalação em computadores x86-64
  • Apenas é preciso comprar licença… 🤫

9 of 79

macOS

  • Desenvolvido pela Apple a partir de 2001
  • Escrito em Objective-C (Kernel em C e Assembly)
  • Originado do BSD (Berkeley Software Distribution)
  • Falta de privacidade
  • Código fechado
  • Programas pagos
  • Exclusivo para MacBook e outros PCs da Apple (ou você pode usar hackintosh 🕵️)

10 of 79

11 of 79

Seria possível existir um sistema operacional livre?

12 of 79

História do Linux

2.

13 of 79

Unix Uniplexed Information and Computing Service

  • Sistema operacional desenvolvido pela Bell Labs da AT&T a partir de 1969
  • Criado por Ken Thompson e Dennis Ritchie (desenvolvedores das linguagens B e C)
  • Escrito em Assembly e C
  • Código fechado
  • 💡 Pesquise sobre a Unix philosophy
  • Oferece comandos simples que podem ser combinados com pipes
  • Shell scripting
  • Deu origem a variantes:
    • BSD → FreeBSD e macOS
    • Solaris
    • IBM AIX

14 of 79

Unix Uniplexed Information and Computing Service

15 of 79

Unix Uniplexed Information and Computing Service

Contudo, o Unix disponibilizado pela AT&T não era livre.

Ken Thompson e Dennis Ritchie

16 of 79

GNU GNU is Not Unix

  • Sistema operacional baseado no comportamento do Unix (Unix-like)
  • Criado por Richard Stallman e comunidade
  • Centrado no conceito de Free Software
  • A comunidade do GNU se concentrou em desenvolver principalmente programas utilitários disponibilizados pelo sistema operacional
  • Ex: gcc (GNU Compiler Collection)
  • O kernel do GNU, Hurd, não atraiu atenção o suficiente para seu desenvolvimento, ficando incompleto
  • 💡 Pesquise sobre a GNU General Public License (GPL)

17 of 79

GNU Free Software

  • “meios técnicos para um fim social
  • Free não está para gratuito, mas para livre
  • Liberdades fundamentais:
    • Poder utilizar um software para qualquer propósito
    • Poder estudar o código e modificá-lo
    • Poder redistribuir cópias, cobrando ou não
    • Poder distribuir cópias de sua versão modificada
  • Ou seja, acesso ao código-fonte (open-source)
  • 💡 Pesquise sobre o movimento software livre e o Manifesto GNU

Richard Stallman

18 of 79

E o kernel?

19 of 79

Minix Minimal Unix

  • Sistema operacional Unix-like desenvolvido por Andrew Tanenbaum a partir de 1987, em C, para fins educacionais
  • Apresentava uma arquitetura de microkernel, ou seja, seu núcleo possui o mínimo de código para funcionar
  • Tanenbaum escreveu o livro Operating Systems: Design and Implementation com um resumo do código do kernel e outros componentes

Andrew Tanenbaum

20 of 79

Linus Torvalds

  • Cientista da computação finlandês formado pela Universidade de Helsinki
  • Na universidade, fez um curso sobre Unix e leu o livro de Tanenbaum sobre o Minix
  • Mesmo com o código do Minix disponível, sua modificação e redistribuição não era permitida
  • Interessado, Linus iniciou um projeto…

Linus Torvalds

21 of 79

What would you like to see most in minix?

https://groups.google.com/forum/#!msg/comp.os.minix/dlNtH7RRrGA/SwRavCzVE7gJ

“Olá a todos que estão usando minix -

Estou fazendo um sistema operacional livre (apenas um hobby, não será grande e profissional como GNU) para clones AT-386. Está sendo desenvolvido desde abril, e está começando a ficar pronto. Gostaria de opiniões sobre o que as pessoas gostam e desgostam no minix, já que meu SO se assemelha a ele (mesmo layout físico do sistema de arquivos dentre outras coisas).

[...]”

22 of 79

Linux

  • Kernel de sistema operacional livre desenvolvido por Linus Torvalds a partir de 1991
  • Escrito em C, em 2021 chegou a 27.8 milhões de linhas de código
  • Em 5 de outubro de 1991 sua primeira versão oficial foi lançada, período em que o Linux já conseguia rodar alguns softwares do GNU, como bash e gcc
  • Inicialmente seu código era escrito apenas por Torvalds, após isso, se tornou um software com contribuições de diversas empresas e milhares de pessoas
  • Em fevereiro de 1992, Linux foi licenciado sob a GPL, tornando-se um software livre

Tux (mascote do Linux)

23 of 79

Recapitulando…

24 of 79

GNU, um sistema operacional livre com diversos programas

25 of 79

Linux, um kernel livre e poderoso

26 of 79

Nasce GNU/Linux

27 of 79

GNU/Linux ou apenas Linux

  • Sistema operacional Unix-like livre e open-source que utiliza o kernel Linux e programas (pacotes) do GNU
  • GNU não conta apenas com programas para usuário final, como o GIMP, mas também com inúmeros programas para desenvolvedores
  • Contudo, não há “o sistema operacional Linux”, isto é, Linux é uma família de diversos sistemas operacionais

28 of 79

Vantagens do GNU/Linux

  • Gratuito
  • Mais seguro
  • Código-livre, que permite a comunidade a checar o código
  • Mais liberdade para modificações
  • Melhor ambiente para programação

29 of 79

Estatísticas

  • Os 500 melhores supercomputadores do mundo rodam Linux
  • 85% de todos os smartphones do mundo usam Linux
  • Dos 25 maiores sites do mundo, 23 são hospedados em servidores que rodam Linux, como Facebook, Youtube e Intel
  • 73% dos PCs rodam Windows, 16% macOS e 3,77% Linux
  • Em PCs de profissionais de computação, Linux chega a mais de 45%

30 of 79

“Linux” vs. “GNU/Linux”

31 of 79

Mas quais são os SOs desta família?

32 of 79

Distribuições

3.

33 of 79

Distribuição ou distro

  • Uma distribuição Linux é um sistema operacional que utiliza o kernel Linux e os pacotes do GNU
  • Também, adiciona outros programas funcionais para um sistema operacional
  • Ex: sistema gerenciador de pacotes e interface gráfica
  • (Um gerenciador de pacotes é um programa que automatiza o processo de instalação, atualização e remoção de outros programas)
  • As distribuições Linux se diferem a partir de softwares que utilizam para compor o sistema
  • Desta forma, surgiram inúmeras distribuições, formando diversas famílias a partir de modificações feitas pela comunidade
  • Uma distribuição pode ter versões definidas ou ser atualizada constantemente (rolling-release)

Árvore de distribuições GNU/Linux

34 of 79

Principais famílias

35 of 79

Debian

  • Sua primeira versão foi lançada em 1993
  • Por padrão, utiliza o gerenciador de pacotes apt
  • Utilizado bastante em servidores, devido a sua estabilidade
  • Seus principais filhos, como o Ubuntu, são voltados ao usuário comum, visto sua interface amigável
  • Assim, é família mais popular para o público geral

36 of 79

Fedora

  • Sua primeira versão foi lançada em 2003
  • Criada pela empresa Red Hat, após a descontinuação do Red Hat Linux
  • Sua irmã, a Red Hat Enterprise Linux, é voltada para a utilização em ambientes corporativos
  • Por padrão, utiliza o gerenciador de pacotes rpm

37 of 79

Arch

  • Lançamento inicial em 2002
  • Não possui versões definidas, é uma distribuição rolling-release, ou seja, é atualizado constantemente para possuir as versões mais recentes dos softwares instalados
  • Utiliza o gerenciador de pacotes pacman
  • Por padrão, vem com o mínimo de software instalado, e cabe ao usuário montar seu próprio ambiente
  • Possui a filha manjaro como um sistema amigável, que possui alguns softwares instalados por padrão

38 of 79

Curiosidade: Android

  • Android é um sistema operacional mobile open-source desenvolvido principalmente pela Google
  • Apesar de não ser considerada uma distribuição GNU/Linux, utiliza uma versão modificada do kernel Linux em seu interior

39 of 79

Interface Gráfica

4.

40 of 79

GUI Graphical User Interface

  • Interface visual para usuários interagirem com os dispositivos através de componentes gráficos
  • Alternativa ao CLI (command-line interface)
  • Menor curva de aprendizagem em relação a comandos por texto
  • Assim, surgem os programas com interface gráfica e suas janelas (windows)

41 of 79

Window Manager

  • Software do sistema que controla a localização, comportamento e aparência das janelas de programas
  • Determina tamanho e bordas das janelas, dentre outras características
  • Pode conter menus que iniciam outros programas, assim como barras de status com horário, data e outras informações
  • Faz parte de desktop environments, mas pode ser utilizado sozinho
  • Sendo utilizado sozinho, faz grande uso de atalhos de teclado para gerenciamento das janelas
  • Há três tipos de WMs: stacking, tiling e dinâmica (combina as duas primeiras)
  • 💡 Pesquise sobre display servers (Xorg e Wayland)

42 of 79

Stacking

43 of 79

Tiling

44 of 79

Desktop Environment

  • Contém um window manager (geralmente stacking), adicionando (muitas) outras funcionalidades
  • Geralmente, adiciona:
    • Ícones de atalhos para iniciar programas
    • Barra de janela com botões de minimizar/maximizar/fechar
    • Barras de ferramentas
    • Widgets na área de trabalho
    • Conjunto de programas utilitários (ex: office e editor de texto com GUI)

45 of 79

Exemplos de

Desktop Environments

46 of 79

GNOME

47 of 79

Cinnamon

48 of 79

Exemplos de

Window Managers

49 of 79

i3

50 of 79

Hyprland

51 of 79

52 of 79

Terminal e Shell

4.

53 of 79

CLI Command-Line Interface

  • Interface que recebe comandos do usuário em forma de linhas de texto
  • Através de comandos, o usuário pode alterar o ambiente e utilizar programas
  • Maior poder de automatização
  • Mais rapidez para executar tarefas
  • porém, mais difícil para usuários leigos

54 of 79

Terminal

  • Dispositivo eletrônico ou eletromecânico que permite a entrada e saída de dados
  • Os primeiros terminais eram os teletipos (Teletypes), máquinas de escrever que enviava e recebia mensagens
  • Os TTY eram telégrafos que enviavam mensagens escritas em seu teclado (como máquina de escrever)
  • Recebia mensagens e imprimia em papel

Teleprinter / Teletype / TTY usado na WW2

55 of 79

Terminal

  • Nos anos 50, a impressão em papel começou a ser substituída por displays de vídeo
  • Nos anos 60, terminais inteligentes foram lançados, os quais possuíam processamento próprio a partir de microprocessadores
  • Apesar de poder fazer algum processamento de dados, estes terminais eram conectados a um computador externo, como um mainframe, que executava os comandos digitados no terminal

56 of 79

Computadores pessoais

  • Diversos terminais eram conectados a cada computador, exigindo grande processamento
  • Com o barateamento de CPUs, os terminais foram ficando cada vez mais poderosos
  • Com isso, surgem os PCs (Personal Computers), criados para uso pessoal

Computador Pravetz 82, utilizado na União Soviética

57 of 79

Emuladores de terminal

  • Os PCs ofereciam terminais, mas estes não eram como os terminais anteriores
  • Visto que um PC não possui um hardware para a geração de caracteres, mas sim placas de vídeo, os terminais são emulados
  • Emuladores de terminal são programas que emulam terminais de vídeo, dentro de uma arquitetura de display

58 of 79

Shell

  • Software que interpreta comandos de texto
  • Linguagem de comandos interativa
  • Linguagem de scripting
  • É acessada utilizando um emulador de terminal
  • Ex: gnome terminal, terminator, kitty, st
  • Permite a combinação de diversos comandos (programas)
  • bash: shell da GNU
  • zsh: shell que adiciona outras funcionaliades além das presentes no bash

59 of 79

Dicas e Dual boot

5.

60 of 79

Arch Linux Wiki wiki.archlinux.org

  • Maior wiki sobre assuntos relacionados ao Linux
  • Mantida pela comunidade
  • Traduzida para várias línguas

61 of 79

Dual boot — Linux e Windows

  • Instalação de dois (ou mais) sistemas operacionais em um computador
  • Seleção do sistema operacional será feita durante o boot do computador
  • Não divide o processamento ou memória do seu computador
  • 🚨 Atenção: Isso não é um tutorial propriamente dito. Nossa intenção é explicar o processo e principalmente contar pra vocês os termos técnicos que veremos
  • Durante o curso, e provavelmente na sua vida profissional, você irá utilizar muito o Linux
  • O quanto antes você começar, mais fácil será na hora que precisar usar
  • A maioria dos alunos usa Linux no computador de casa e no dia a dia
  • Windows só serve pra jogar…
  • Tutorial (Diolinux):
    • https://www.youtube.com/watch?v=6D6L9Wml1oY

62 of 79

Dual boot — O que vamos fazer

  • O passo a passo para fazermos o dual boot será:
    1. Particionar o seu disco
    2. Baixar uma imagem Linux da sua distro desejada (recomendamos Mint ou Ubuntu)
    3. Criar um pendrive “bootável” com a imagem linux
    4. Instalar o Linux a partir do pendrive
  • vários tutoriais na internet para fazer o dual boot com Windows e Linux
  • Um usuário médio consegue fazer dual boot apenas com tutoriais (sem entender bem o que está acontecendo)
  • Vocês não são usuários médios (com o tempo, irão entender o que está acontecendo)

63 of 79

Dual boot — Partições e sistemas de arquivos

  • Podemos formatar uma partição para diversos sistemas de arquivos diferentes. Os principais são: NTFS, ext4, HFS e FAT32
  • SOs diferentes podem ter sistemas de arquivos diferentes
  • Na matéria de Sistemas Operacionais isso será explicado mais a fundo.
  • NTFS é o sistema de arquivos do Windows (antigamente era o FAT ou FAT32)
  • ext4 é o sistema de arquivos do Linux
  • Partições são as divisões lógicas do disco (HD ou SSD) e podem ter um tamanho arbitrário (menor que a capacidade do disco).
  • Cada partição contém informações sobre o sistema de arquivos utilizado ou o SO em si e seus dados
  • Um sistema de arquivos é a forma como o SO organiza e gerencia seus arquivos e diretórios
  • wiki.archlinux.org/title/File_systems

64 of 79

Dual boot — Partições e sistemas de arquivos

  • Com a partição formatada, podemos partir para preparar nosso pendrive bootável
  • Mais a frente, iremos instalar o novo SO nessa partição recém formatada
  • Precisamos dividir uma partição do nosso disco para abrir espaço para o novo SO
  • Para fazer isso, vamos utilizar o “Criar e formatar partições de disco rígido” do Windows, basta pesquisar por ele na barra de pesquisa do SO
  • Vamos formatar nossa partição com pelo menos 60GB e como ext ou ext4
  • Tenha em mente que isso vai diminuir o espaço disponível para o windows no tamanho escolhido (60GB)

65 of 79

“Partições”

66 of 79

“Diminuindo o Volume”

67 of 79

“Espaço não alocado”

68 of 79

Dual boot — Imagens ISO

  • Precisamos baixar uma iso para o Linux desejado. Vamos baixar uma iso do Ubuntu-23.10
  • https://releases.ubuntu.com/23.10.1/ubuntu-23.10.1-desktop-amd64.iso
  • Vamos utilizar esse arquivo “.iso” para tornar nosso pendrive “bootável
  • Você vai precisar de um USB com pelo menos 6 GB
  • Um arquivo ISO (Optical Disk Image, vem da ISO 9660) contém os dados de um sistema de arquivos qualquer.
  • Seu uso vem historicamente dos CDs e DVDs
  • Arquivos “.iso” são usados para instalar sistemas operacionais em computadores ou máquinas virtuais
  • Existem outros tipos de arquivos com propósito parecido, mas não nos interessam agora

69 of 79

Dual boot — Mídia bootável

  • Um USB bootável é um pendrive que contém informações sobre como inicializar um sistema operacional
  • Para tornar um pendrive bootável precisamos “queimar” ele com nosso arquivo “.iso”. Para isso, vamos utilizar o software “Balena Etcher”
  • Iremos selecionar o arquivo “.iso” e o pendrive desejado e então “queimar” a mídia
  • Após um instante nosso pendrive já será uma mídia bootável

“Tela inicial do Balena Etcher”

70 of 79

“ISO selecionada”

“PenDrive selecionado”

71 of 79

Dual boot — BIOS e UEFI

  • A BIOS (Basic Input/Output System) é um firmware responsável por iniciar e testar periféricos, encontrar sistemas operacionais, listar os dispositivos conectados à placa mãe etc.
  • Possui diversas limitações: deve rodar em modo 16 bits, não reconhece discos maiores que ~2 TB, não permite o uso de mouse, possui apenas 1 MB de endereçamento
  • O UEFI (Unified Extensible Firmware Interface) é o substituto da BIOS
  • Tem várias vantagens em relação à BIOS: permite secure boot, permite discos de até 9 ZB, a inicialização é mais rápida, permite navegação com mouse e teclado
  • O UEFI roda aplicações EFI, como o boot loader do disco escolhido, geralmente o GRUB com instalações Linux

72 of 79

Dual boot — Mudando a ordem de boot

  • Para instalar o SO presente no nosso pendrive bootável precisamos: abrir a BIOS, mudar a prioridade de boot para o USB, salvar e sair e por fim, seguir o instalador do SO
  • Para acessarmos a BIOS devemos ligar o computador e, enquanto ele está ligando, pressionarmos repetidamente F2 ou F12
  • Essa tecla varia de placa mãe para placa mãe mas tende a ser alguma entre: F1, F2, F10, F12, Del, ou Esc

  • Ao acessarmos a BIOS, vamos navegar até a aba de boot (inicialização) e vamos mudar a ordem de boot para o pendrive inserido
  • Caso não encontre, dê uma fuçada, só cuidado pra não mudar configurações que não sabe o que fazem. O google é seu melhor amigo agora
  • wiki.archlinux.org/title/Arch_boot_process

73 of 79

“Ordem de boot alterada na BIOS”

74 of 79

Dual boot — Instalando o novo SO

  • Com a ordem de boot alterada, devemos reiniciar o PC e ele deverá abrir o guia de instalação do novo SO. Basta segui-lo para concluirmos o nosso dual boot
  • Ao chegar na parte onde você escolhe a partição desejada, escolha a partição formatada anteriormente
  • A partir daqui, você deverá selecionar seu fuso-horário, disposição de teclado, nome da máquina, usuário e senha
  • Junto ao novo SO um programa chamado GRUB foi instalado na sua máquina
  • Este programa será responsável por identificar e selecionar o SO em que sua máquina irá bootar

75 of 79

Dual boot — GRUB (GNU Grand Unified Bootloader)

  • O GRUB é um gerenciador de inicialização (boot loader). Ele é necessário para selecionar o Sistema Operacional em que a sua máquina irá bootar
  • Por debaixo dos panos, o GRUB descobre os SO’s presentes nos seus discos e carrega o selecionado

  • Além disso, o GRUB também permite boot via rede, customização da interface, mudança do tempo de seleção do SO e outras opções que não nos importam agora
  • Existem alternativas ao GRUB que contém mudanças técnicas e avançadas mas que também não importam agora

76 of 79

Dual boot — Parabéns

  • Agora você tem um computador com 2 sistemas operacionais
  • Experimente um pouco o seu novo SO e descubra o que pode fazer com ele e o que mudou do tão famoso Windows

  • Recomendamos que tente (pesquise):
    • Instalar algo (Discord, Telegram, Spotify, Steam)
    • Alterar configurações básicas da interface (plano de fundo, tamanho da fonte, resolução da tela, etc.)
    • Atualizar o computador

77 of 79

Exercício (para casa)

  • Revise a aula, com calma, em web.inf.ufpr.br/pet/linux
  • Instale alguma distribuição GNU/Linux em seu computador
  • Recomendamos alguma distribuição para leigos, como o Ubuntu ou Linux Mint
  • Pesquise um pouco mais sobre o Linux e seu sistema de arquivos (está tudo bem não entender tudo)

78 of 79

Avalie a aula

forms.gle/ktHeeQYVA9WfLqTP6

Conta como presença!

79 of 79

Obrigado!

Obrigado!

pet.inf.ufpr.br

pet@inf.ufpr.br

@petcompufpr