UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
$whoami
Marido
Pai de um jovem universitário e 10 gatos
• Ok, 12 cães também...
Apaixonado por programação (desde os ≈12) e felinos desde sempre
Cinéfilo
Bacharel em Informática (Unioeste, 1999)
Mestre em Ciência da Computação (UFSC, 2002)
Doutor em Ciência da Computação UFPR/Université de Rouen (2018)
Professor na UTFPR-TD (desde 2009)
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
GNU is Not Unix
Iniciado em 1984 por Richard M.
Stallman
Objetivava criar um sistema
operacional, compatível com o
UNIX, que fosse totalmente livre
• Vários programadores se juntaram a
causa e passaram a desenvolver as
partes principais do SO, como o
compilador C, editores de texto, etc.
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Em 1985, Stallman fundou a Free Software
Foundation (FSF), uma organização sem fins
lucrativos
visa divulgar o movimento SL
dar amparo legal, trabalhando nas licenças e
documentação
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Final dos anos 1980, muito
do SO GNU estava pronto, com
exceção do kernel, o GNU Hurd
Em 1991, o universitário Linus
Torvalds usa as ferramentas
GNU para criar o kernel Linux
Nasce um SO completo, o
GNU/Linux
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Sim, Linux é um kernel!
criado por Torvalds, então estudante de
computação na Universidade de Helsinki, 1991
Foi baseado no Minix (1987), de Tanenbaum
• Clone do Unix para PCs, fins didáticos
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Torvalds inicialmente escreveu o Linux
(kernel), em C e Assembly, como um clone do
Minix
Motivação: “a better Minix then Minix”!
• Maior número de recursos
• Aplicações comerciais
Atualmente o desenvolvimento é apoiado por
pessoas do mundo inteiro → patches
• Tovarlds é quem decide (decidia?) o que vai para o
kernel
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Software Livre (SL) ou Free Software se
refere à liberdade dos usuários executarem,
copiarem, distribuirem, estudarem, modificarem
e aperfeiçoarem o software
SL é uma questão de liberdade, não de preço
pensar em "liberdade de expressão", não em
"cerveja grátis"!
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Distribuir software em Domínio Público, sem copyright, não
garante liberdade!
Intermediários não-cooperativos podem tornar o software não-livre
(proprietário)
O Projeto GNU encoraja o uso do copyleft
copyleft diz que qualquer um que distribui o software, com ou sem
modificações, tem que passar adiante a liberdade de copiar e
modificar novamente o programa
copyleft garante que todos os usuários tenham liberdade
Licença Pública Genérica do GNU (GPL)
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Utilitários
Executados fora do kernel
Implementam tarefas básicas
Confundidos com o SO
Compiladores (compilers), montadores
(assemblers), ligadores (linkers), etc.
• GCC, emacs, gdb, make, etc.
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Interpreador de Comandos (shell)
Ativado sempre que o SO inicia uma sessão de
trabalho
Texto
• Bash, tsch, sh, etc.
GUI (Graphical User Interface)
• Família M$-Windows, MacOS, etc.
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Bash é uma shell Unix e
linguagem de comando criada
por Brian Fox (1989) para o GNU
Bourne-Again Shell → substituição
GNU da Bourne Shell do Unix
• Processador de comandos que roda
em modo texto → CLI
https://www.gnu.org/software/bash/
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Bash script: Várias instruções bash em um
arquivo de texto puro
por convenção extensão .sh
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Em Linux (Unix-like) tudo é considerado arquivo
Se não for arquivo, então é processo!
Tipos
Regular (-): texto, imagem, executável, etc.
Diretório (d): lista de outros arquivos, incluindo diretórios
Especial (b, c, p, s) : mecanismos de E/S, ligados a
dispositivos, interface com o usuário, sockets, etc.
Link (l): arquivos ligados a outros arquivos
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Todos os arquivos e diretórios estão sob a raiz (/)
No Linux, os diretórios estão organizados segundo a
Filesystem Hierarchy Standard (FHS)
Especificação da Linux Foundation
• Última versão 3.0 (2015)
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
FHS
/ - raiz (root). Diretório principal
/bin - Arquivos executáveis (binários) de
comandos essenciais do sistema usados com
frequência
/boot - Arquivos estáticos de boot (boot-loader)
/dev - Arquivos de dispositivos de E/S
/etc - Configuração do sistema da máquina local
com arquivos diversos para a administração de
sistema
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
/home - Diretórios locais dos usuários
/lib - Arquivos das bibliotecas compartilhadas
usados com frequência
/mnt - Ponto de montagem de sistema de
arquivos temporários usados pelo administrador do
sistema
/media – Ponto de montagem para mídias
removíveis (aparecem automaticamente no
ambiente gráfico)
/root - Diretório local do superusuário (root)
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
/sbin - Arquivos de sistema essenciais que só
podem ser acessados pelo root
/tmp - Arquivos temporários gerados por alguns
utilitários
/usr - Arquivos de programas de usuários
(segunda maior hierarquia)
/var - Informação variável (cache, logs, dados
temporários, …)
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Emulador de terminal
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
No terminal
FD 0 entrada padrão, associada com o teclado
FD 1 saída padrão, vídeo
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ
Alguns diagramas usados aqui foram
extraídos do formidável projeto
https://guide.bash.academy
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Quem Tem Medo do Terminal?

  • 1.
  • 2.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ $whoami Marido Pai de um jovem universitário e 10 gatos • Ok, 12 cães também... Apaixonado por programação (desde os ≈12) e felinos desde sempre Cinéfilo Bacharel em Informática (Unioeste, 1999) Mestre em Ciência da Computação (UFSC, 2002) Doutor em Ciência da Computação UFPR/Université de Rouen (2018) Professor na UTFPR-TD (desde 2009)
  • 3.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ GNU is Not Unix Iniciado em 1984 por Richard M. Stallman Objetivava criar um sistema operacional, compatível com o UNIX, que fosse totalmente livre • Vários programadores se juntaram a causa e passaram a desenvolver as partes principais do SO, como o compilador C, editores de texto, etc.
  • 4.
  • 5.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Em 1985, Stallman fundou a Free Software Foundation (FSF), uma organização sem fins lucrativos visa divulgar o movimento SL dar amparo legal, trabalhando nas licenças e documentação
  • 6.
  • 7.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Final dos anos 1980, muito do SO GNU estava pronto, com exceção do kernel, o GNU Hurd Em 1991, o universitário Linus Torvalds usa as ferramentas GNU para criar o kernel Linux Nasce um SO completo, o GNU/Linux
  • 8.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Sim, Linux é um kernel! criado por Torvalds, então estudante de computação na Universidade de Helsinki, 1991 Foi baseado no Minix (1987), de Tanenbaum • Clone do Unix para PCs, fins didáticos
  • 9.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Torvalds inicialmente escreveu o Linux (kernel), em C e Assembly, como um clone do Minix Motivação: “a better Minix then Minix”! • Maior número de recursos • Aplicações comerciais Atualmente o desenvolvimento é apoiado por pessoas do mundo inteiro → patches • Tovarlds é quem decide (decidia?) o que vai para o kernel
  • 10.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Software Livre (SL) ou Free Software se refere à liberdade dos usuários executarem, copiarem, distribuirem, estudarem, modificarem e aperfeiçoarem o software SL é uma questão de liberdade, não de preço pensar em "liberdade de expressão", não em "cerveja grátis"!
  • 11.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Distribuir software em Domínio Público, sem copyright, não garante liberdade! Intermediários não-cooperativos podem tornar o software não-livre (proprietário) O Projeto GNU encoraja o uso do copyleft copyleft diz que qualquer um que distribui o software, com ou sem modificações, tem que passar adiante a liberdade de copiar e modificar novamente o programa copyleft garante que todos os usuários tenham liberdade Licença Pública Genérica do GNU (GPL)
  • 12.
  • 13.
  • 14.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Utilitários Executados fora do kernel Implementam tarefas básicas Confundidos com o SO Compiladores (compilers), montadores (assemblers), ligadores (linkers), etc. • GCC, emacs, gdb, make, etc.
  • 15.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Interpreador de Comandos (shell) Ativado sempre que o SO inicia uma sessão de trabalho Texto • Bash, tsch, sh, etc. GUI (Graphical User Interface) • Família M$-Windows, MacOS, etc.
  • 16.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Bash é uma shell Unix e linguagem de comando criada por Brian Fox (1989) para o GNU Bourne-Again Shell → substituição GNU da Bourne Shell do Unix • Processador de comandos que roda em modo texto → CLI https://www.gnu.org/software/bash/
  • 17.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Bash script: Várias instruções bash em um arquivo de texto puro por convenção extensão .sh
  • 18.
  • 19.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Em Linux (Unix-like) tudo é considerado arquivo Se não for arquivo, então é processo! Tipos Regular (-): texto, imagem, executável, etc. Diretório (d): lista de outros arquivos, incluindo diretórios Especial (b, c, p, s) : mecanismos de E/S, ligados a dispositivos, interface com o usuário, sockets, etc. Link (l): arquivos ligados a outros arquivos
  • 20.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Todos os arquivos e diretórios estão sob a raiz (/) No Linux, os diretórios estão organizados segundo a Filesystem Hierarchy Standard (FHS) Especificação da Linux Foundation • Última versão 3.0 (2015)
  • 21.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ FHS / - raiz (root). Diretório principal /bin - Arquivos executáveis (binários) de comandos essenciais do sistema usados com frequência /boot - Arquivos estáticos de boot (boot-loader) /dev - Arquivos de dispositivos de E/S /etc - Configuração do sistema da máquina local com arquivos diversos para a administração de sistema
  • 22.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ /home - Diretórios locais dos usuários /lib - Arquivos das bibliotecas compartilhadas usados com frequência /mnt - Ponto de montagem de sistema de arquivos temporários usados pelo administrador do sistema /media – Ponto de montagem para mídias removíveis (aparecem automaticamente no ambiente gráfico) /root - Diretório local do superusuário (root)
  • 23.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ /sbin - Arquivos de sistema essenciais que só podem ser acessados pelo root /tmp - Arquivos temporários gerados por alguns utilitários /usr - Arquivos de programas de usuários (segunda maior hierarquia) /var - Informação variável (cache, logs, dados temporários, …)
  • 24.
  • 25.
  • 26.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Emulador de terminal
  • 27.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ No terminal FD 0 entrada padrão, associada com o teclado FD 1 saída padrão, vídeo
  • 28.
  • 29.
    UNIVERSIDADE TECNOLÓGICA FEDERALDO PARANÁ Alguns diagramas usados aqui foram extraídos do formidável projeto https://guide.bash.academy
  • 30.