Você está na página 1de 27

Fundamentos

Computacionais

Linux

Prof. Dr. Alex Mulattieri Suarez Orozco


Introdução
• Em 1965 formou-se um grupo de programadores, num esforço conjunto
da AT&T (Laboratórios Bell), da General Electric (GE) e
do MIT (Massachussets Institute of Technology) para o desenvolvimento de
um sistema operacional chamado Multics.

• Em1969, Ken Thompson começou a reescrever o Multics, batizado de


Unics, usando linguagem assembly. Mais tarde, Brian Kernighan rebatizou
o novo sistema de UNIX.

• Em 1973, Dennis Ritchie e Ken Thompson reescreveram o Unix, usando a


linguagem C. A linguagem C havia sido desenvolvida por Ritchie.

• Atualmente, Unix é o nome dado a uma grande família de Sistemas


Operacionais que partilham muitos dos conceitos dos Sistemas Unix
originais.
Introdução
• Em 1984, Richard Stallmann cria a Free Software Foundation
• Objetivo: Desenvolver um sistema operacional semelhante ao
UNIX
• Projeto GNU (Gnu’s Not Unix)
• Sistema Operacional:
• Kernel: Hurd – Muito complexo
• Bibliotecas e Utilitários

• Fundador do Movimento Software Livre


Introdução
• Em 1988, Andy Tanenbaum (Universidade de Helsinki) traz a público o SO
MINIX, um derivativo do Unix para fins didáticos que rodava em
computadores pessoais.

• Em 1991, Linus Torvalds, toma contato com o Unix da Universidade de


Helsinki (SunOS, atualmente Solaris) e desejava usar o Minix no PC 80386.
• Descontente com os recursos do Minix, começa a desenvolver seu
próprio emulador de terminal.
• Esse projeto pessoal foi sendo modificado gradualmente e adquirindo
características de um sistema operacional independente do Minix.

• Esse é o início do desenvolvimento do kernel Linux


• Inicialmente Linus Torvalds nomeou seu sistema como freax
Introdução
• Os primeiros protótipos do Linux foram publicados ainda em 1991
• A versão 1.0, em 14 de março de 1994.

• Em 1991, Linus participa de uma palestra do Richard Stallman,


conhecendo assim, o Projeto GNU
• Publicando mais tarde o kernel Linux sob licença GNU General
Public License, versão 2 (GPLv2).

• 1992: Primeira instalação auto-suficiente (SLS – Safe Landing System


Linux)

• 1993: Primeira distribuição comercial (Slackware)


Introdução
• 1994: Linux International
• Organização sem fins lucrativos
• Objetivo: Promover Sistemas Operacionais baseados em Linux
• Principal colaboradora para o sucesso do Linux
• John “Maddog” Hall: Diretor Executivo
• Um dos maiores divulgadores do Linux
Introdução
• 1996:
• O pinguim é escolhido como mascote
• TUX: Torvalds UniX
• Lançamento do Debian v1.0
• distribuição GNU/Linux a ser mantida de uma maneira livre, segundo o espírito do GNU.
• 1997: Conectiva Red Hat Linux - Parolin
• Primeira distribuição Brasileira
• 2000:
• Primeira certificação Linux
• Linux Professional Institute
• 1º Fórum Internacional de Software Livre (FISL)
• 2004: Lançamento do Ubuntu (baseado em Debian)
• 2005: Mandrakesoft compra a Conectiva
• Mandrake Linux + Conectiva Linux = Mandriva
Kernel Linux
Sistema de arquivos
Sistema de arquivos
• /bin: binários principais dos usuários
• /boot: arquivos do sistema de boot
• /dev: arquivos dos Componentes físicos do computador
• /etc: arquivos de configuração do sistema
• /home: diretório dos usuários
• /lib: bibliotecas do sistema e módulos do kernel
• /mnt: ponto de montagem para sistemas de arquivos
• /media: mesmo que /mnt
• /opt: instalação de programas não oficiais da distro
• /sbin: arquivos executáveis administrativos
Sistema de arquivos
• /srv: dados de serviços fornecidos pelo sistema
• /tmp: arquivos temporários
• /usr: (Unix System Resources) segunda hierarquia do sistema,
responsável pela grande maioria dos aplicativos e bibliotecas do
sistema.
• /var: arquivos variáveis, ex: logs, cache, spool de impressora
• /root: diretório do usuário root
• /proc: diretório virtual controlado pelo kernel com a configuração
do sistema.
• /initrd: Arquivos necessários ao boot (em algumas distribuições).
• /swap: Área de troca. Arquivo de paginação.
Montagem de sistema de arquivo
• Montar e desmontar um dispositivo no Linux é como se tivéssemos
que ativar ou desativar ele.
• Ex: quando conectamos um pendrive e ele abre o seu conteúdo,
estamos montando. Portanto, quando remover estamos
desmontando.
• Fazer isso evita perda de dados, problemas no hardware e outros
problemas que podem levar a perda do dispositivo ou das
informações ali contidas
Montagem de sistema de arquivo
• O diretório /dev contém todos os arquivos que mapeiam
dispositivos. É neste diretório onde constará os dispositivos mais
utilizados para montagem.
• Existem inúmeros arquivos contendo as informações de cada
dispositivo que podemos montar ou desmontar no Linux.
• Principais arquivos:
• sda: disco rígido em sua máquina, ele representa o disco principal, e quando
ele tem 4 dígitos, por exemplo sda1 ele se refere ao número da partição.
• sdb: indica que essa máquina possui outro disco ou unidade de
armazenamento. Desta forma, sdb pode significar outro disco rígido ou até
mesmo um pendrive.
• cdrom: arquivo responsável pelo seu CD-ROM.
Montagem de sistema de arquivo
• Como montar um dispositivo
• mount -t FS /dev/sdXN /media/PASTA
• FS: File System
• vfat – Referência ao Windows, ao FAT 32, ideal para arquivos menos que 4GB.
• ntfs – Referência ao Windows, ao NTFS arquivos maiores que 4GB.
• ext4 – Partição Linux
• iso9660 –CD/DVD e imagens ISOS.
• X: letra do dispositivo de armazenamento
• N: número da partição
• PASTA: diretório onde será montado o dispositivo
• Ex: mount -t ntfs /dev/sdb1 /media/pendrive
• Como desmontar um dispositivo
• umount dispositivo
• Ex: umount /dev/sdb
Arquivos
• Tipos de arquivos:
• d: diretório (pasta)
• -: arquivo
• Permissão de acesso:
• Tipos de usuários
• Dono
• Grupo
• Outros
• Tipos de acesso
• Read
• Write
• Execute
• Ex:
• -rwxr----- aluno grupoAluno arquivo.txt
• -rw-rw-r-- alunoinfo grupo1 arquivo2.txt
Arquivos
• Propriedades:
• Nome (case sensitive)
• Tipo
• Tamanho
• Data/hora
• Dono
• Grupo
• Permissões de acesso
• Inode
• O super usuário (root) pode alterar os atributos de qualquer arquivo
Arquivos
• Permissões de acesso:
• Diretório:
• Read: ler a lista de arquivos
• Write: Criar, renomear e apagar
• Execute: Entrar e acessar arquivos
• Ler:
• --x: em todos os diretórios do caminho
• r--: o arquivo
• Criar:
• --x: em todos os diretórios do caminho
• -wx: no último diretório do caminho
• Escrever:
• --x: em todos os diretórios do caminho
• -w-: no arquivo
Arquivos
• Comandos de terminal
• ls: Lista o conteúdo de um diretório
• pwd: Imprime o caminho do diretório de trabalho
• cd: Troca de diretório
• cp: Copia um arquivo ou diretório
• rm: Remove um arquivo ou diretório
• mv: Movimenta (renomeia) arquivo ou diretório
• mkdir: Cria diretório
• touch: Cria arquivo vazio
• chmod: Muda as permissões dos arquivos
• ./: Executa um executável
• sudo: Executa comandos como superusuário
Arquivos
• Comandos de terminal
• cat: Imprime o conteúdo do arquivo
• shred: Sobrescreve um arquivo para esconder seu conteúdo
• less: Inspeciona arquivos de forma interativa
• tail: Exibe as últimas linhas de um arquivo
• head: Exibe as primeiras linhas de um arquivo
• grep: Imprime linhas que combinam padrões
• find: Busca por arquivos que seguem um padrão
• chgrp: Altera a associação de um grupo
• chown: Alterar o dono e o grupo de um arquivo ou diretório
• cmp: Comparar dois arquivos
• df: Mostrar o espaço livre em disco
• du: Estima o espaço ocupado pelo arquivo.
Arquivos
• Comandos de terminal
• file: determina o(s) tipo(s) de arquivo;
• ln: criar links simbólicos ou físicos entre arquivos
• locate: buscar arquivos
• more: exibe a saída em uma tela com pausas
• sed: editor de fluxo de caracteres para filtrar e formatar texto
• split: dividir um arquivo em partes de um determinado tamanho
• vi: editor de texto
• nano: editor de texto
Usuários
• Propriedades:
• Nome
• Senha
• UID (User Identification)
• GID (Group Identification)
• Diretório home
• Shell
• Arquivos de configuração
• /etc/passwd
• /etc/shadow
Grupos
• Propriedades
• Nome
• Senha
• GID (Group Identification)
• Lista de usuários
• Arquivo de configuração
• /etc/group
Programa e processo
• Programa
• Sequencia de instruções
• Não altera o seu estado
• Entidade estática e permanente
• Processo
• Programa + dados + contexto
• Altera o seu estado
• Entidade dinâmica e efêmera
• Atributos:
• PID: Process ID
• Usuário
• Prioridade
• Tamanho
• Estado
• Comando de origem
Ciclo de vida de um processo
• Criação
• É sempre feita a partir de um processo pai
• O primeiro criado é o init (pid 1)
• Execução:
• Estados:
• R: Executando
• S:Aguardando
• D: Bloqueado
• T: Parado
• Z: Zumbi
• Término:
• exit(): normal
• kill(): forçado
Comandos de processos
• ps –aux: Lista os processos
• killall: encerra um processo pelo nome
• kill -9: encerra um processo pelo PID imediatamente
• kill -15: encerra um processo pelo PID dando um tempo para salvar
o progresso.
• uname: lista informações sobre o sistema
• top: lista os processos e quanto de CPU cada processo usa.
Caracteres especiais
• > : redireciona a saída do comando especificado
• Ex: ls –la * > lista.txt

• < : redireciona a entrada para o comando especificado

• >> : redireciona a saída do comando para o fim do arquivo


• Ex: ls –la dir3 >> lista.doc

• $variável: fornece o conteúdo da variável de ambiente


• Ex: $PATH

• & : faz um processo ser executado em backgrond


• Ex: wget http://ifsul.edu.br/index.html &
Caracteres especiais
• \ : anula a função do metacaracter
• Ex: wget http://ifsul.edu.br/index.html \&
• | : utiliza a saída do comando1 como entrada do comando2
• Ex: find / | grep alunoinfo

Você também pode gostar