O documento descreve o sistema operacional Unix e sistemas unix-like. Ele explica que Unix foi desenvolvido na década de 1970 e tornou-se popular nas universidades por ser gratuito e ter código aberto. O documento também descreve como o projeto GNU e o kernel Linux levaram ao desenvolvimento do sistema operacional Linux livre.
3. O que é UNIX?
• Qual a diferença entre Unix, Unix-like, Linux, etc?
Sunday, November 25, 12
4. O que é UNIX?
• Unix é um sistema operacional desenvolvido na década de
70 (a primeira versão saiu em 1969) pelo Ken Thompson
no Bell Laboratories (divisão de pesquisa e
desenvolvimento da AT&T).
• Originalmente escrito para o Digital PDP-7
Sunday, November 25, 12
6. O que é UNIX?
• As primeiras versões eram reescritas em Assembly para
maquinas especificas (série PDP)
• No início da década de 70, Dennis Ritchie criou a linguagem
de programação C que permitiu que as próximas versões
do Unix fossem portaveis e tornou o Unix um dos
primeiros OS escritos em uma linguagem de alto-nível.
Sunday, November 25, 12
7. O que é UNIX?
• Como a AT&T possuia o monopólio de telecomunicações
nos EUA, eles não podiam vender software o que fez com
que o Unix fosse distribuido por uma taxa simbólica.
• Universidades (principalmente Berkley e o MIT) adotaram
o Unix por ser um sistema operacional barato e distribuido
em código fonte o que permitia que ele fosse modificado
para necessidades especificas (o que tornou o unix muito
popular com a comunidade científica).
Sunday, November 25, 12
8. O que é UNIX?
• O desenvolvimento não era chefiado por um comitê, o que
permitiu que o Unix progredisse rápidamente porém fez
com que as implementações divergissem com o tempo.
• No início da decada de 80 a legislação antitrust americana
quebrou a AT&T que agora pôde vender o Unix porém a
especificação aberta permitiu que várias distribuições
independentes continuassem.
Sunday, November 25, 12
9. O que é UNIX?
• Atualmente Unix é uma marca registrada do Open Group e
um sistema operacional só pode ser marcado como Unix
de tiver sido homologado pelo Open Group (um processo
extremamente caro).
• Os sistemas operacionais que implementam as interfaces
especificadas pelo Unix são conhecidos como unix-like.
(entre esses sistemas podemos encontrar o Linux)
Sunday, November 25, 12
11. Software Livre
• Richard Stallman, um hacker do MIT, criou em 85 a Free
Software Foundation para promover os ideais do software
livre.
• Uma das primeiras vitórias da FSF foi a criação da licença
GPL que usa uma brecha nas leis de copyright para
garantir que um determinado trabalho e todos os seus
derivativos sejam distribuidos com a mesma licença
(copyleft).
Sunday, November 25, 12
12. Software Livre
• Foi iniciado o projeto GNU (GNU is not Unix) para criar uma
implementação livre do Unix.
• O projeto GNU criou diversas versões livres dos programas
disponíveis no Unix: GCC, Emacs, bash, glibc, etc
Sunday, November 25, 12
13. Software Livre
• Faltava apenas uma coisa para tornar o GNU um sistema
operacional completo: um kernel.
Sunday, November 25, 12
14. O garoto de Helsinki
• 1991 - Linus Torvalds, um simples estudande finlandês
resolveu escrever um sistema operacional por diversão.
• No final do ano o sistema já estava minimamente estável e
conseguia rodar alguns programas do projeto GNU como:
gcc, gnu-make, bash, compress, etc.
Sunday, November 25, 12
15. O garoto de Helsinki
• Linus postou uma mensagem na Usenet mostrando o seu
trabalho e procurando voluntários para ajuda-lo a dar
continuidade. Assim nasceu o Linux.
Sunday, November 25, 12
16. Linux
• Vem em diversas distribuições para as mais diversas
necessidades e públicos.
• Sistema operacional mais usado em servers (85.2% de
marketshare) e em super-computadores (92.4% de
marketshare)
Sunday, November 25, 12
17. File system
• Primeiro OS a utilizar um sistema de arquivos hierárquico.
/
bin boot etc home usr
bash vmlinuz group passwd include
sys stdio.h
types.h
Sunday, November 25, 12
18. File system
• Em Unix tudo é um arquivo, até mesmo um diretório que
na verdade é apenas um arquivo com links para outros
arquivos.
• Cada diretório contem obrigatóriamente ao menos duas
entradas o . que aponta para o próprio diretorio e o .. que
aponta para o diretório pai.
Sunday, November 25, 12
19. Grupos e usuários
• Em Unix podemos ter vários usuários. Cada usuário possui
um username único e um ID também único.
• Cada usuário pode pertencer a 1 ou mais grupos que
servem para tornar mais facil a administração das
permissões do usuário no sistema.
• Existe um super usuário denominado root que é imune a
todas as checagens de permissão do sistema.
Sunday, November 25, 12
20. Noções básicas
• Bash (Bourne again shell) - Processador de comandos que
permite que o usuário digite comandos a serem
executados pelo sistema.
Sunday, November 25, 12
21. Noções básicas (demonstração)
• Listagem de arquivos com o comando ls
• Navegação pelo file system com o comando cd
• Copia de arquivos com o comando cp
• Mover e renomear arquvios com mv
• Listar processos
• Matar um processo
• Editar arquivos no vim
Sunday, November 25, 12
22. Permissões de arquivos
Podemos listar todos os arquivos de um diretório juntamente com
suas permissões utilizando o comando ls -l:
Sunday, November 25, 12
23. Permissões de arquivos
• Cada arquivo possui o ID do usuário que é dono deste arquivo
e o ID do grupo ao qual o arquivo pertence.
• A permissão de acesso a um arquivo é dada em 3 categorias:
owner, group e other. Por exemplo: é possivel dar acesso
completo ao dono do arquivo, dar acesso somente leitura
para o grupo e negar acesso a todos os outros.
Sunday, November 25, 12
24. Permissões de arquivos
• As permissões são calculadas pelo sistema utilizando uma
mascara de bits.
• Cada categoria de permissão é representada por uma triade
de bits: Read, Write, Execute
Sunday, November 25, 12
25. Permissões de arquivos
RWE
Sem permissão 0: 000 ---
Execute 1: 001 --x
Write 2: 010 -w-
Write and Execute 3: 011 -wx
Read 4: 100 r--
Read and Execute 5: 101 r-w
Read and Write 6: 110 rw-
Read, Write and Execute 7: 111 rwx
Sunday, November 25, 12
26. Permissões de arquivos
Owner / Group / Others
Triad 1 Triad 1 Triad 3
Exemplos:
600 - Read e Write para o dono e
nenhuma permissão para o grupo
ou para os outros.
750 - Read, write e execute para
o dono, execute para o grupo e
nenhuma permissão para os
outros.
Sunday, November 25, 12
27. Permissões de arquivos
Demonstração: utilizando os
comandos chmod e chown
Sunday, November 25, 12