UNIX
                      e sistemas unix-like




                                             Raphael Cruzeiro - 2012
Sunday, November 25, 12
O que é UNIX?




Sunday, November 25, 12
O que é UNIX?

                   •      Qual a diferença entre Unix, Unix-like, Linux, etc?




Sunday, November 25, 12
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
O que é UNIX?




Sunday, November 25, 12
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
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
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
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
OS Unix e unix-like




Sunday, November 25, 12
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
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
Software Livre


                   •      Faltava apenas uma coisa para tornar o GNU um sistema
                          operacional completo: um kernel.




Sunday, November 25, 12
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
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
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
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
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
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
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
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
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
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
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
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
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
Permissões de arquivos

                             Demonstração: utilizando os
                             comandos chmod e chown




Sunday, November 25, 12
Dúvidas?



Sunday, November 25, 12

Unix

  • 1.
    UNIX e sistemas unix-like Raphael Cruzeiro - 2012 Sunday, November 25, 12
  • 2.
    O que éUNIX? Sunday, November 25, 12
  • 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
  • 5.
    O que éUNIX? 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
  • 10.
    OS Unix eunix-like 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 deHelsinki • 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 deHelsinki • 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
  • 28.