O documento fornece um resumo da história e desenvolvimento do Linux. Começa com o desenvolvimento do Multics em 1965 e do Unix em 1969. Descreve como o Linux surgiu em 1991 quando Linus Torvalds começou a desenvolver seu próprio kernel com base no Minix. Também discute contribuições importantes como o Projeto GNU da Free Software Foundation e o primeiro fórum internacional de software livre no Brasil.
O documento fornece um resumo da história e desenvolvimento do Linux. Começa com o desenvolvimento do Multics em 1965 e do Unix em 1969. Descreve como o Linux surgiu em 1991 quando Linus Torvalds começou a desenvolver seu próprio kernel com base no Minix. Também discute contribuições importantes como o Projeto GNU da Free Software Foundation e o primeiro fórum internacional de software livre no Brasil.
O documento fornece um resumo da história e desenvolvimento do Linux. Começa com o desenvolvimento do Multics em 1965 e do Unix em 1969. Descreve como o Linux surgiu em 1991 quando Linus Torvalds começou a desenvolver seu próprio kernel com base no Minix. Também discute contribuições importantes como o Projeto GNU da Free Software Foundation e o primeiro fórum internacional de software livre no Brasil.
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