SlideShare uma empresa Scribd logo
Evandro Madeira de Albuquerque




Sistema Operacional Mac OSX




           Bras´ - DF, Brasil
               ılia
          30 de Novembro de 2011
Evandro Madeira de Albuquerque




Sistema Operacional Mac OSX

                    Trabalho apresentado para conclus˜o da
                                                         a
                    disciplina Sistemas Operacionais na UDF-
                    Centro Universit´rio do Distrito Federal
                                     a




                  Orientador:
                 Thiago Leite




                         ´              ¸˜
  Departamento de Tecnologia da Informacao
                     ´
 UDF-Centro Universitario do Distrito Federal




               Bras´ - DF, Brasil
                   ılia
             30 de Novembro de 2011
Trabalho Apresentado sob o t´
                            ıtulo “Sistema Operacional Mac OSX”, defendido por:


• Evandro Madeira de Albuquerque



Bras´
    ılia, DF, 30 de Novembro de 2011
Resumo

    Neste trabalho, fazemos um estudo sobre o sistema operacional da Aplle Mac OSX,
faremos uma abordagem sobre as principais funcionalidades do sistema operacional como:
Vers˜es do sistema, tipos de arquivos, gerenciamento de mem´ria, processos e theads,
    o                                                         o
estruturas do kernel e interface gr´fica.
                                   a
Dedicat´ria
                                     o

    Aos meus amigos da faculdade, os quais se tornaram minha segunda fam´lia nesta ci-
                                                                        ı
dade, obrigado por compartilhar os conhecimentos adquiridos, que s´ fortalece, os ˆnamimos
                                                                  o               a
para continuar com meus objetivos.    Enfim, a todos aqueles que fazem ou fizeram parte
da minha vida. E por ultimo, por´m mais importante, a Deus por tudo e por todos.
                     ´          e
Agradecimentos

   Agrade¸o ao meu professor-amigo Thiago Leite, a quem a realiza¸˜o deste trabalho n˜o
         c                                                       ca                  a
seria concretizada sem sua imensa colabora¸˜o, obrigado pelos conselhos, pelas orienta¸˜es
                                          ca                                          co
e pela paciˆncia, que me impulsionaram a terminar este trabalho usando a linguagem de
           e
programa¸˜o LTEX.
        ca A
Sum´rio
                                      a


1 Introdu¸˜o
         ca                                                                                p. 8

  1.1   Objetivo deste trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . .      p. 9


2 Vers˜es Mac OS X
      o                                                                                   p. 10

  2.1   Mac OS X v10.0 Cheetah        . . . . . . . . . . . . . . . . . . . . . . . . .   p. 10

  2.2   Mac OS X v10.1 Puma . . . . . . . . . . . . . . . . . . . . . . . . . . .         p. 10

  2.3   Mac OS X v10.2 Jaguar . . . . . . . . . . . . . . . . . . . . . . . . . .         p. 10

  2.4   Mac OS X v10.4 Tiger . . . . . . . . . . . . . . . . . . . . . . . . . . .        p. 11

  2.5   Mac OS X v10.5 Leopard . . . . . . . . . . . . . . . . . . . . . . . . . .        p. 11

  2.6   Mac OS X v10.6 Snow Leopard . . . . . . . . . . . . . . . . . . . . . .           p. 11

  2.7   Mac OS X v10.7 Lion . . . . . . . . . . . . . . . . . . . . . . . . . . . .       p. 11


3 Sistemas de arquivos                                                                    p. 12

  3.1   Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     p. 12

  3.2   N´cleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
         u                                                                                p. 12

  3.3   Sobre o XNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       p. 13

  3.4   Implementa¸˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
                  ca                                                                      p. 14

  3.5   Sistema Monol´
                     ıtico . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      p. 14

  3.6   Microkernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     p. 15

  3.7   kernel h´
                ıbrido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    p. 16

  3.8   Funcionalidade MACH no XNU . . . . . . . . . . . . . . . . . . . . . .            p. 17

  3.9   Sistemas de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . .      p. 18
3.10 Cocoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     p. 21

  3.11 Carbon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    p. 21

  3.12 Java Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     p. 22

  3.13 OpenGl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      p. 23


4 Gest˜o de Entrada/Sa´
      a               ıda                                                                p. 24

  4.1   I/O Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    p. 24


5 Gerenciamento de Mem´ria
                      o                                                                  p. 25


6 Processos e Threads                                                                    p. 27

  6.1   thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   p. 27

  Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   p. 29

  6.2   Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    p. 30
8




1       Introdu¸˜o
               ca



    O Mac OS foi o primeiro sistema gr´fico a usar ´
                                      a           ıcones para representar os itens do com-
putador. O sistema tamb´m foi pioneiro na dissemina¸ao do conceito de ”Desktop”com
                       e                           c˜
      ´
uma ”Area de Trabalho”com ´ıcones de documentos, pastas e uma lixeira, em analogia
ao ambiente de escrit´rio.At´ a vers˜o 7.6 o sistema operacional da Apple era chamado
                     o      e       a
apenas de ”System”. S´ a partir da´ ele passou a ser chamado de Mac OS, que evoluiu
                     o            ı
at´ sua ”vers˜o 10”. O lan¸amento oficial e completo do Mac OS X ocorreu em 24 de
  e          a            c
mar¸o de 2001.[1]
   c




                    Figura 1: Primeira GUI desenvolvida para Macintosh
1.1 Objetivo deste trabalho                                                           9


1.1      Objetivo deste trabalho

    O objetivo deste trabalho ´ fazer um estudo mais detalhado Sobre a arquitetura
                              e
do sistema operacional Mac OSX da Apple computer, divulgar os resultados estudados
apresentando as aplica¸oes e linguagens de programa¸ao utilizadas nesta arquitetura com-
                      c                            c˜
putacional.
10




2       Vers˜es Mac OS X
            o



2.1     Mac OS X v10.0 Cheetah

    Mac OS X v10.0 ”Cheetah”Lan¸ado em 2001 por um pre¸o de US$129,95. Substituiu
                               c                      c
o Mac OS X P´blico Beta. Apresentou um novo conceito de c´digo criado completamente
            u                                            o
diferente do modelo do Mac OS 9 introduziu o novo n´cleo Darwin Unix-like e um sistema
                                                   u
totalmente novo de administra¸ao de mem´ria.
                             c˜        o


2.2     Mac OS X v10.1 Puma

    Tamb´m lan¸ado em 2001 como atualiza¸ao gratuita o Mac OS X v10.1 ”Puma”foi
        e     c                         c˜
a segunda vers˜o do sistema operacional Mac OS X e antecedeu ao Mac OS X v10.2 A
              a
partir da vers˜o 10.1.2, a Apple fez do Mac OS X o sistema operacional padr˜o dos novos
              a                                                            a
Macs Vers˜es Mac OS X
         o


2.3     Mac OS X v10.2 Jaguar

    Jaguar foi a terceira vers˜o lan¸ada em 2002 permitindo cinco instala¸oes em com-
                              a     c                                    c˜
putadores separados. Foi bem aceito pelos usu´rios do Macintosh pelo grande avan¸o na
                                             a                                  c
estabilidade e velocidade. Jaguar foi o primeiro sistema operacional Mac OS X onde o
codinome foi usado em an´ncios publicit´rios
                        u              a

    Mac OS X v10.3 Panther O Mac OS X v10.3 ”Panther”foi o quarto lan¸amento do
                                                                     c
Mac OS X, foi lan¸ado em 2003 substituindo assim o jaguar. O seu custo era de US$
                 c
129 para uma unica licen¸a de usu´rio e US$ 199 para um pack familiar (licen¸a para 5
             ´          c        a                                          c
computadores).
2.4 Mac OS X v10.4 Tiger                                                               11


2.4         Mac OS X v10.4 Tiger

    ”Tiger”foi o quinto lan¸amento do Mac OS X. lan¸ado em 2005 Alguns dos novos
                           c                       c
recursos incluem uma nova vers˜o do navegador Safari, Dashboard, um novo tema unifi-
                              a
cado, e suporte aperfei¸oado para uso em processadores 64 bits. O ”Tiger”foi tamb´m a
                       c                                                         e
primeira vers˜o do sistema operacional Mac OS X liberada para trabalhar com m´quinas
             a                                                               a
Apple com arquitetura Intel.


2.5         Mac OS X v10.5 Leopard

    O Mac OS X v10.5 ”Leopard”´ o sexto lan¸amento da fam´ Mac OS X , foi lan¸ado
                              e            c             ılia                c
2007 e esteve dispon´
                    ıvel em duas variantes: uma vers˜o desktop, adequada para com-
                                                    a
putadores pessoais, e uma vers˜o para servidor, a vers˜o Mac OS X Server. De acordo
                              a                       a
com a Apple, O ”Leopard”contem mais de 300 altera¸˜es e melhorias, abrangendo desde
                                                 co
o n´cleo do sistema operacional at´ componentes inclu´
   u                              e                  ıdos em aplica¸˜es e ferramentas
                                                                   co
para desenvolvedores.


2.6         Mac OS X v10.6 Snow Leopard

    Em 2009, Apple e Microsoft mudaram a estrat´gia, lan¸ando novas vers˜es de seus
                                               e        c               o
sistemas operacionais. Enquanto o Windows 7 foi lan¸ado em outubro, o Mac OS X
                                                   c
Snow Leopard 10.6 chegou ao mercado americano na ultima semana de agosto. Como
                                                 ´
desvantagem est´ a exigˆncia do processador Intel, o que significa que n˜o roda nos antigos
               a       e                                               a
Macs. Mas por outro lado, custa apenas US$ 30 para quem j´ possui o Leopard 10.5, o
                                                         a
anterior.


2.7         Mac OS X v10.7 Lion

    O Mac OS X v10.7 ”Lion”´ o oitavo lan¸amento da fam´ Mac OS X, sendo o sucessor
                           e             c             ılia
do Mac OS X v10.6 ”Snow Leopard”. Lion foi anunciado em 20 de Outubro de 2010 na
conferˆncia ”Back To The Mac”e foi lan¸ado em 20 de Julho de 2011, estando dispon´
      e                               c                                          ıvel
para download atrav´s da Mac App Store. Apple: ”Pegamos nossas melhores ideias do
                   e
Mac OS X e aplicamos no iPhone. Pegamos nossas melhores ideias do iPhone e aplicamos
no iPad. Agora chegou a hora de aplicar tudo isso no Mac”[2].
12




3       Sistemas de arquivos



3.1     Arquitetura

    O Mac OS X possui uma arquitetura constru´ em torno dos principais componentes:
                                             ıda
o sistema operacional central Darwin, um grupo diversificado de estruturas de aplicativo,
sistemas de imagem (ou sistemas gr´ficos)[3].
                                  a




                      Figura 2: Arquitetura interna do Mac OS X



3.2     N´ cleo
         u

    O cora¸ao do Mac OS X ´ o kernel XNU. XNU ´ composto basicamente de um N´cleo
          c˜              e                   e                             u
Mach, com caracter´
                  ısticas complementares previstos do Berkeley Software Distribution
(BSD). Al´m disso, o XNU ´ respons´vel por proporcionar um ambiente de drivers do
         e               e        a
kernel chamado de I / O Kit. XNU tem todo o c´digo fonte dispon´ livremente.
                                             o                 ıvel
3.3 Sobre o XNU                                                                     13


3.3     Sobre o XNU

   XNU foi lan¸ado como software livre no sistema operacional Darwin. XNU ´ o
              c                                                           e
acrˆnimo de X is Not Unix. Originalmente desenvolvido pela NeXT para o NEXTS-
   o
TEP, XNU era um n´cleo h´
                 u      ıbrido combinando a vers˜o 2.5 do n´cleo Mach desenvolvido
                                                a          u
pela Universidade Carnegie Mellon com componentes do BSD 4.3 e uma API orientada a
objeto para escrever drivers.

   Depois da aquisi¸˜o da NeXT pela Apple Computer, o Mach foi atualizado para 3.0 e
                   ca
o componente BSD foi atualizado usando c´digo do projeto FreeBSD, e a API orientada
                                        o
a objeto foi substitu´ por outra em C++ chamada de I/O Kit.
                     ıda

   Observe que no XNU fica as bibliotecas de drives e as APIs de programa¸ao, uma
                                                                        c˜
aten¸ao especial deve ser dada para o item NKE (network kernel extensions (NKEs).
    c˜
NKE permite criar m´dulos de rede e pilhas de protocolo podem ser carregados dinami-
                   o
camente no kernel e descarregados a partir dele. NKEs tamb´m torna poss´ configurar
                                                          e            ıvel
automaticamente pilhas de protocolo.[4]




                       Figura 2: Representa¸ao do XNU no Mach
                                           c˜




                      Figura 3: Filtros de soquete na pilha de rede
3.4 Implementa¸˜o
              ca                                                                       14


3.4     Implementa¸˜o
                  ca

   Diferentemente de muitos SOs o MAC OS X n˜o foi planejado e implementado a
                                            a
partir do zero, ele foi desenvolvido a partir da combina¸ao de v´rios outros SOs. Ele ´ um
                                                        c˜      a                     e
Kernel h´
        ıbrido com caracter´
                           ısticas de microkernel e monol´
                                                         ıtica, buscando tirar proveito
das vantagens de cada tecnologia.


3.5     Sistema Monol´
                     ıtico

   A organiza¸˜o mais comum ´ aquela que estrutura o sistema como um conjunto de
             ca             e
rotinas que podem interagir livremente umas com as outras. Pode ser comparada com
uma aplica¸˜o formada por v´rios procedimentos que s˜o compilados separadamente e
          ca               a                        a
depois linkados, formando um grande e unico programa execut´vel. Vantagen: Grande
                                      ´                    a
desempenho Desvantagens: Uma falha pode paralisar o todo o n´cleo[5].
                                                            u




                    Figura 4: Representa¸ao de um kernel monol´
                                        c˜                    ıtico
3.6 Microkernel                                                                        15


3.6     Microkernel

   Uma tendˆncia dos sistemas operacionais ´ tornar o n´cleo menor e mais simples
           e                               e           u
poss´ e para implementar esta id´ia o sistema ´ dividido em processos. Desta forma,
    ıvel                        e             e
sempre que uma aplica¸ao deseja algum servi¸o ela solicita ao processo respons´vel, assim,
                     c˜                    c                                  a
a aplica¸˜o que solicita um servi¸o ´ chamada de cliente e o processo que responde a
        ca                       c e
solicita¸ao ´ chamado de servidor[6].
        c˜ e




                      Figura 5: Representa¸ao de um Microkernel
                                          c˜
3.7 kernel h´
            ıbrido                                                                  16


3.7      kernel h´
                 ıbrido

    Como vimos, o XNU ´ um kernel h´
                      e            ıbrido porque ele inclui muitas das fun¸oes do
                                                                          c˜
BSD (que roda como um servidor) ao pr´prio kernel. Isso ´ feito porque um microkernel
                                     o                  e
geralmente ´ muito lento. Isso porque toda chamada de uma aplica¸ao de usu´rio requer
           e                                                    c˜        a
que a mensagem seja enviada ao kernel (uma opera¸˜o custosa chamada mudan¸a de
                                                ca                       c
contexto), que ent˜o seria enviada a biblioteca Unix com outra mudan¸a de contexto.
                  a                `                                c
Essa opera¸˜o seria ainda repetida para todas as respostas.
          ca

    N´cleo h´
     u      ıbrido define um n´cleo baseado em micron´cleo no qual m´dulos externos
                             u                      u              o
a ele podem executar opera¸˜es em modo protegido, a fim de evitar trocas de contexto
                          co
e melhorar o desempenho geral do sistema.Por´m sendo h´
                                            e         ıbrido, tem a capacidade de
agregar ou desagregar funcionalidades, sem perder performance ou estabilidade presentes
na sua estrutura inicial, proporcionais a sua organiza¸ao[7].
                                                      c˜




                     Figura 6: Representa¸ao de um kernel h´
                                         c˜                ıbrido
3.8 Funcionalidade MACH no XNU                                                    17


3.8     Funcionalidade MACH no XNU

   O componente Mach do XNU ´ baseado na vers˜o 3.0 do Mach, mas n˜o ´ usado
                            e                a                    a e
como um microkernel. O Mach ´ um subsistema de parte do kernel como tamb´m s˜o
                            e                                           e   a
v´rios outros subsistemas que s˜o tipicamente implementados nos sistemas microkernel.
 a                             a
O Mach do XNU ´ respons´vel por v´rios aspectos de baixo n´ do sistema, tais como:
              e        a         a                        ıvel


   • Prote¸ao de mem´ria;
          c˜        o

   • Gerenciamento de mem´ria virtual;
                         o

   • Comunica¸˜o inter-processos;
             ca

   • Gerenciamento de interrup¸ao;
                              c˜

   • Suporte real-time;

   • Console I/O

   • Multitarefa preemptiva, incluindo threads de kernel;

   • Suporte a depura¸˜o do kernel.
                     ca
3.9 Sistemas de arquivos                                                              18


3.9      Sistemas de arquivos

   • HFS+ ou HFS Plus

   • UFS (Unix file system)

   • NFS (Network File System)


    HFS- (Hierarchical File System), e um sistema de arquivos desenvolvido pela
Apple Computer para uso em computadores rodando o Mac OS. Originalmente projetado
para uso em floppy e discos rigidos, ele tambem pode ser encontrado em suporte read-only
como CD-ROMs. no Mac OSX, os arquivos s˜o gerenciados em um sistema de arquivos
                                       a
hier´rquico . O sistema hier´rquico representa uma ´rvore de cabe¸a para baixo. No Mac
    a                       a                      a             c
OSX, o diret´rio raiz ´ o disco r´
            o         e          ıgido. O disco r´
                                                 ıgido ´ organizado por pastas, subpastas
                                                       e
e arquivos[8].




                           Figura 7: Arvore hier´rquica HFS
                                                a
3.9 Sistemas de arquivos                                                              19


   UFS-(Unix file system) O sistema de arquivos UFS ´ hier´rquico, distribuindo os
                                                   e     a
v´rios arquivos em uma ´rvore de diret´rios. A base desta ´rvore ´ um diret´rio chamado
 a                     a              o                   a      e         o
diret´rio raiz, que possui o nome especial de ”/”(o caractere barra). Enquanto outros
     o
sistemas operacionais consideram discos individualmente, cada um possuindo seu diret´rio
                                                                                    o
raiz, arquivos e subdiret´rios, o UFS considera todos os dispositivos, discos, arquivos e
                         o
diret´rios como um todo, alocando-os na mesma ´rvore do sistema de arquivos. Assim,
     o                                        a
o usu´rio n˜o precisa especificar o disco ou dispositivo onde est´ um arquivo, somente o
     a     a                                                    a
diret´rio onde ele est´ armazenado. O pr´prio sistema operacional se encarrega de mapear
     o                a                 o
o acesso ao disco ou dispositivo correspondente[9].




                           Figura 8: Arvore hier´rquica UFS
                                                a
3.9 Sistemas de arquivos                                                               20


   NFS-(Network File System) ´ um protocolo de rede do sistema de arquivos ori-
                             e
ginalmente desenvolvido pela Sun Microsystems. Seu principal uso ´ um cliente-servidor
                                                                 e
do sistema de arquivos distribu´
                               ıdos. NFS est´ dispon´ para uma ampla gama de sis-
                                            a       ıvel
temas heterogˆneos, incluindo UNIX, Linux, Mac OSX e Windows da Microsoft, Novell
             e
Netware e OpenVMS. A partir de NFSv4.1 o protocolo adicionado Parallel NFS (pNFS)
para dados paralelismo de acesso. Isso efetivamente fornece a op¸ao de separar o sistema
                                                                c˜
de arquivos de meta-dados a partir da localiza¸ao do arquivo de dados.
                                              c˜

   No NFS se pode montar um peda¸o do sistema de arquivos distribu´ em algum di-
                                c                                 ıdo
ret´rio do sistema de arquivos local do cliente, de modo que a nomenclatura dos diret´rios
   o                                                                                 o
provenientes do NFS segue o mesmo padr˜o do sistema de arquivos local. Portanto o NFS
                                      a
provˆ transparˆncia no acesso, pois se o servidor onde os dados se encontram mudar de
    e         e
lugar, o cliente n˜o precisa saber dessa mudan¸a para continuar a usar o NFS[10].
                  a                           c




                       Figura 9: NFS monta peda¸os de arquivos
                                               c




               Figura 10: Algoritimo de reinicializa¸ao do servi¸o de rede
                                                    c˜          c
3.10 Cocoa                                                                            21


3.10      Cocoa

   Cocoa ´ uma API, ou seja, uma interface de programa¸ao de aplicativos para computa-
         e                                            c˜
dores da Apple e seu sistema operacional Mac OS X. Cocoa ´ a linguagem de programa¸˜o
                                                         e                        ca
nativa do MAC OS, e para se fazer aplica¸oes em Cocoa ´ necess´rio ter o conhecimento
                                        c˜            e       a
da linguagem C Orientada a Objeto[11].




                     Figura 11: Exemplo de c´digo feito em cocoa
                                            o

   O c´digo acima imprime uma mensagem de Apple Mac OSX artigo
      o


3.11      Carbon

   O Carbon ´ um conjunto de APIS que permite que os usu´rios fa¸am aplicativos em
            e                                           a       c
C e C++. A transi¸ao para aplica¸˜es de 64 bits Macintosh come¸ando com Mac OS X
                 c˜             co                            c
v10.5, lan¸ado 26 de outubro de 2007, trouxe as limita¸oes para o Carbono. A Apple n˜o
          c                                           c˜                            a
fornece compatibilidade entre a interface de usu´rio gr´fica do Macintosh e a linguagem
                                                a      a
de programa¸ao C no ambiente de 64 bits, em vem exigindo o uso do dialeto Objective-C
           c˜
com a API Cocoa.
Apesar de Objective-C poder oferecer vantagens significativas para c´digo j´ escritos para
                                                                   o      a
tirar vantagem de sua filosofia orientada a objetos, a necessidade de reescrever grandes
quantidades de c´digo legado retardou a transi¸ao de aplica¸oes a base de carbono, famosa
                o                             c˜           c˜ `
como o Adobe Photoshop, que acabou por ser atualizado para Cocoa, em abril de 2010[12].
3.12 Java Applet                                                           22


3.12      Java Applet

   O MAC OS X tem suporte para a linguagem de programa¸˜o Java assim todos os
                                                      ca
usu´rios conseguem fazer aplica¸oes em Java[13].
   a                           c˜




                   Figura 12: C´digo utilizando a classe java.Applet
                               o




                   Figura 13: Mensagem da classe java.awt.Graphics
3.13 OpenGl                                                                      23


3.13      OpenGl

   Open GL permite que jogos e aplicativos que exijam gr´ficos pesados, rodem com
                                                        a
melhor desempenho no sistema. Isso tudo afiliado com o Darwin, melhora a performance
do Open GL, transformando o Mac num dos melhores computadores para jogos 3D e
cria¸ao de imagens pesadas.
    c˜




                              Figura 14: Estrura do OpenGL




                        Figura 15: Anima¸˜o usando OpenGL
                                        ca

   Usando o Core Animation, QuickTime Player fornece uma interface limpa e organi-
zada, com controles que simplesmente desaparecem
24




4        Gest˜o de Entrada/Sa´
             a               ıda



4.1      I/O Kit

    O I/O Kit ´ uma cole¸ao de frameworks, bibliotecas, ferramentas e outros recursos
              e         c˜
para cria¸˜o de drivers de dispositivos no Mac OS X totalmente orientada a objetos e
         ca
baseada numa implementa¸ao de C++ esse kit oferece:
                       c˜


    • Configura¸ao autom´tica e dinˆmica. (Plug and play);
              c˜       a          a

    • Novos tipos de dispositivos, como acelera¸ao gr´fica e de multim´
                                               c˜    a               ıdia.

      O gr´fico a seguir apresenta a hierarquia de todas as classes I / O Kit que s˜o mem-
          a                                                                       a
      bros desta fam´
                    ılia. Veja as Referˆncia da Fam´ I / O Kit para mais detalhes[15].
                                       e           ılia




                             Figura 16: Classes do I/O Kit
25




5       Gerenciamento de Mem´ria
                            o


Uma das grandes novidades neste novo sistema operacional, ´ o esquema de mem´ria
                                                          e                 o
protegida, que ´ respons´vel por manter a integridade dos dados, ou seja, evitar que
               e        a
eles sejam perdidos ou corrompidos. Com isso, o sistema alocar´ um unico espa¸o
                                                              a    ´         c
na mem´ria para cada programa aberto, e o programa n˜o poder´ interferir no
      o                                             a       a
espa¸o de outros, pois isso pode causar grandes problemas, como travamento do
    c
computador e conseq¨entemente, perda dos dados. Se um programa apresentar um
                   u
problema desse tipo, o Darwin simplesmente fecha esse programa, permitindo que
vocˆ continue seu trabalho nos outros programas abertos.
   e

  – Cada processo tem seu pr´prio conjunto (32 bits ou 64 bits) de espa¸o de
                            o                                          c
     endere¸o virtual. Para processos de 32 bits, cada processo tem um espa¸o que
           c                                                               c
     pode endere¸ar dinamicamente chegando ao limite de 4GB. Para processos de
                c
     64 bits, pode endere¸ar at´ o limite de 18 exabytes.
                         c     e
5 Gerenciamento de Mem´ria
                      o                                                            26




              Figura 17: Exemplo de c´digo para gerencia de mem´ria
                                     o                         o

     O c´digo acima cria e usa v´rios objetos, uma poll autorelease para gerencia-
        o                       a
     mento de mem´ria, uma cole¸ao de objetos (conjunto de matrizes) para ”uni-
                 o             c˜
     quing”classificando as palavras especificadas, e um objeto enumerador para itera-
     gir atrav´s dos elementos da matriz e imprimi-los na sa´ padr˜o.
              e                                             ıda   a
     Uniquing Garante um Objeto Gerenciado por registro de Contexto
     que em um determinado objeto gerenciado uma entrada em um armazenamento
     persistente ´ associado com apenas um objeto gerenciado. Esta t´cnica ´ conhecida
                 e                                                  e      e
     como uniquing. Sem o uniquing, vocˆ podia acabar com um contexto para mais
                                       e
     de um objeto para representar um determinado registro.
27




6       Processos e Threads


6.1     thread

Uma thread ´ um contexto da execu¸ao dentro de um processo, ela ´ associada com
           e                     c˜                             e
uma pilha de chamada e um estado do processador. Uma thread compartilha do
espa¸o de endere¸o virtual e de outros recursos com outras threads do processo. As
    c           c
threads s˜o programadas para funcionar preemptivamente ou, com multiprocessa-
         a
mento sim´trico, concorrentemente.
         e

Cada processo (aplica¸ao) no Mac OS X ´ composto de um ou mais threads, cada
                     c˜               e
uma delas representa um unico caminho de execu¸˜o atrav´s do c´digo do aplicativo.
                        ´                     ca       e      o
Cada aplicativo ´ iniciado com um unico segmento, que executa a fun¸˜o principal
                e                 ´                                ca
do aplicativo. Aplica¸oes pode gerar t´picos adicionais, cada um dos quais executa
                     c˜               o
o c´digo de uma fun¸˜o espec´
   o               ca       ıfica.


Quando um aplicativo gera um novo segmento, esse segmento se torna uma enti-
dade independente dentro do espa¸o do aplicativo e processo. Cada segmento tem
                                c
sua pr´pria pilha de execu¸˜o e est´ prevista para tempo de execu¸˜o separada-
      o                   ca       a                             ca
mente pelo kernel. Um segmento pode se comunicar com outros segmentos e outros
processos, podem realizar outras opera¸oes de I / O, e fazer qualquer outra coisa
                                      c˜
que vocˆ pode precisar fazer. Porque eles est˜o dentro do mesmo espa¸o de processo.
       e                                     a                      c
6.1 thread                                                                            28


     Usando Threads POSIX O Mac OS X e fornece suporte baseado em C para
     criar threads usando o POSIX THREAD API. essa tecnologia pode realmente
     ser usada em qualquer tipo de aplica¸ao (incluindo Cocoa e aplica¸oes Cocoa Touch)
                                         c˜                           c˜
     e pode ser mais conveniente se vocˆ estiver escrevendo o seu software para m´ltiplas
                                       e                                         u
     plataformas.


     A figura abaixo mostra duas fun¸˜es personalizadas para criar uma thread usando
                                   co
     chamadas POSIX. A fun¸ao LaunchThread cria um novo segmento, cuja principal
                          c˜
     rotina ´ implementado na fun¸ao PosixThreadMainRoutine[17].
            e                    c˜




                       Figura 18: Cria Threads Usando POSIX
6.1 Loop                                                                            29


                                         Loop

     UM Loop de execu¸ao recebe eventos de dois tipos diferentes de dados, entrada e
                     c˜
     sa´ de eventos ass´
       ıda             ıncronos, geralmente mensagens de outro segmento ou de uma
     aplica¸ao diferente. Dados de temporizador, sa´ de eventos s´
           c˜                                      ıda           ıncronos; executando
     de forma agendado, ou em um intervalo de tempo programado[18].




             Figura 19: Estrutura de um loop de um c´digo em execu¸˜o
                                                    o             ca

     A figura acima mostra a estrutura conceitual de um loop de execu¸˜o e uma varie-
                                                                    ca
     dade de eventos. Os dados de entrada proporciona a execu¸ao de eventos ass´
                                                             c˜                ıncronos
     para os manipuladores correspondente e faz com que, o (runUntilDate) m´todo
                                                                           e
     chamado no objeto do thread saia do temporizador e entregue seus eventos
     para as rotinas do manipulador.
6.2 Bibliografia                                                                  30


     6.2      Bibliografia

     [1]Primeira GUI desenvolvida para Macintosh. Dispon´ em:
                                                        ıvel
     http://www.judsonmaria.net/index.php/geral/a-evolucao-dos-sistemas-operacionais
     Acessado em 30/11/2011.

     [2]Vers˜es Mac OS X. Dispon´ em:
            o                   ıvel
     http://pt.wikipedia.org/wiki/versoe
     Acessado em 30/11/2011.

     [3]Arquitetura interna do Mac OS X. Dispon´ em:
                                               ıvel
     http://pt.wikipedia.org/wiki/Mac OS X
     Acessado em 30/11/2011.

     [4]Filtros de soquete na pilha de rede. Dispon´ em:
                                                   ıvel
     http://http://developer.apple.com/library/mac/documentation/MacOSX/
     Conceptual/OSXT echnologyO verview/SystemT echnology/SystemT echnology.html
     Acessadoem30/11/2011.

[5]Representa¸˜o de um kernel monol´
             ca                    ıtico. Dispon´ em:
                                                ıvel
http://pt.wikipedia.org/wiki/kernel monolitico
Acessado em 30/11/2011.

[6]Representa¸˜o de um Microkernel. Dispon´ em:
             ca                           ıvel
http://wiki.osdev.org/Micro kernel
Acessado em 30/11/2011.

[7]Representa¸˜o de um kernel h´
             ca                ıbrido. Dispon´ em:
                                             ıvel
http://pt.wikipedia.org/wiki/Nucleo hibrido
Acessado em 30/11/2011.

[8]Arvore hier´rquica HFS. Dispon´ em:
              a                  ıvel
http://academic.stedwards.edu/competency/module1/lesson6/filemgtstructuremac.htm
Acessado em 30/11/2011.

[9]Arvore hier´rquica UFS. Dispon´ em:
              a                  ıvel
http://www cefet-to.org
Acessado em 30/11/2011.

[10]Network File System. Dispon´ em:
                               ıvel
http://www.linuxfocus.org/English/November2000/article164.shtml
Acessado em 30/11/2011.
6.2 Bibliografia                                                                  31


[11]Cocoa. Dispon´ em:
                 ıvel
http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/
CocoaFundamentals/CocoaObjects/CocoaObjects.html
Acessado em 30/11/2011.

[12]Carbon. Dispon´ em:
                  ıvel
http://en.wikipedia.org/wiki/carbon
Acessado em 30/11/2011.

[13]Java Applet. Dispon´ em:
                       ıvel
http://www.java-examples.com/hello-world-applet-example
Acessado em 30/11/2011.

[14]OpenGlt. Dispon´ em:
                   ıvel
http://developer.apple.com/library/mac/documentation/GraphicsImaging/
Conceptual/OpenGL-MacProgGuide/opengli ntro/opengli ntro.html
Acessadoem30/11/2011.

[15]I/O Kit. Dispon´ em:
                   ıvel
http://developer.apple.com/library/mac/documentation/devicedrivers/Conceptual/
IOKitFundamentals/HelperClassesChart/HelperClassesChart.html
Acessado em 30/11/2011.

[16]Gerenciamento de Mem´ria. Dispon´ em:
                        o           ıvel
http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/
CreatingThreads/CreatingThreads.html
Acessado em 30/11/2011.

[17]Usando Threads POSIX. Dispon´ em:
                                ıvel
http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/
CreatingThreads/CreatingThreads.html
Acessado em 30/11/2011.

[17]Estrutura de um loop. Dispon´ em:
                                ıvel
http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/
RunLoopManagement/RunLoopManagement.html
Acessado em 30/11/2011.

Mais conteúdo relacionado

Mais procurados

Mac OS X
Mac OS XMac OS X
Trabalho do sistemas operativos
Trabalho do sistemas operativosTrabalho do sistemas operativos
Trabalho do sistemas operativosDavid Pereira
 
Mac
MacMac
So-mod-1
So-mod-1So-mod-1
So-mod-1
diogoa21
 
Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em Linux
Fábio dos Reis
 
Ubuntu Linux
Ubuntu LinuxUbuntu Linux
Ubuntu Linux
israeljrs
 
Sistema de ficheiros
Sistema de ficheirosSistema de ficheiros
Sistema de ficheirosATEC
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linux
Rogério Cardoso
 
História dos Sistemas Operativos
História dos Sistemas OperativosHistória dos Sistemas Operativos
História dos Sistemas Operativos
TROLITO LALALAL
 
Classificação – sistemas operativos
Classificação – sistemas operativosClassificação – sistemas operativos
Classificação – sistemas operativos
TROLITO LALALAL
 
História do linux ppt
História do linux pptHistória do linux ppt
História do linux pptshade09
 
Apresentação fedora linux
Apresentação fedora linux Apresentação fedora linux
Apresentação fedora linux
José Nascimento
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
Sandu Postolachi
 
SO de computadores pessoais
SO de computadores pessoaisSO de computadores pessoais
SO de computadores pessoaisAmanda Larentis
 
Apresentação Linux
Apresentação LinuxApresentação Linux
Apresentação Linux
guestca430
 
Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open Source
Diogo Silva
 

Mais procurados (20)

MAC OS
MAC OSMAC OS
MAC OS
 
Mac OS X
Mac OS XMac OS X
Mac OS X
 
Trabalho do sistemas operativos
Trabalho do sistemas operativosTrabalho do sistemas operativos
Trabalho do sistemas operativos
 
Mac
MacMac
Mac
 
Trabalho linux
Trabalho linuxTrabalho linux
Trabalho linux
 
So-mod-1
So-mod-1So-mod-1
So-mod-1
 
Discos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em LinuxDiscos e sistemas de arquivos em Linux
Discos e sistemas de arquivos em Linux
 
Ubuntu Linux
Ubuntu LinuxUbuntu Linux
Ubuntu Linux
 
Sistema de ficheiros
Sistema de ficheirosSistema de ficheiros
Sistema de ficheiros
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linux
 
História dos Sistemas Operativos
História dos Sistemas OperativosHistória dos Sistemas Operativos
História dos Sistemas Operativos
 
Classificação – sistemas operativos
Classificação – sistemas operativosClassificação – sistemas operativos
Classificação – sistemas operativos
 
História do linux ppt
História do linux pptHistória do linux ppt
História do linux ppt
 
Apresentação fedora linux
Apresentação fedora linux Apresentação fedora linux
Apresentação fedora linux
 
Linux
LinuxLinux
Linux
 
Sistema operativo servidor
Sistema operativo servidorSistema operativo servidor
Sistema operativo servidor
 
SO de computadores pessoais
SO de computadores pessoaisSO de computadores pessoais
SO de computadores pessoais
 
Apresentação Linux
Apresentação LinuxApresentação Linux
Apresentação Linux
 
Sistema Operacional Android
Sistema Operacional AndroidSistema Operacional Android
Sistema Operacional Android
 
Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open Source
 

Semelhante a Apple mac-osx

4767121 Apostila Sobre Kde Linux Educacional Mec
4767121 Apostila Sobre Kde Linux Educacional Mec4767121 Apostila Sobre Kde Linux Educacional Mec
4767121 Apostila Sobre Kde Linux Educacional Mecguest3615dd6
 
Kde MEC
Kde MECKde MEC
Começando com o Linux.pdf
Começando com o Linux.pdfComeçando com o Linux.pdf
Começando com o Linux.pdf
AdilsonMelodeMoura1
 
Comandos
ComandosComandos
Comandos
Lucas Andrade
 
Apostila
ApostilaApostila
Apostila
NeyOliveira11
 
Apostila
ApostilaApostila
Apostila
SENAC RIO
 
Apostila esssa
Apostila   esssaApostila   esssa
Apostila esssa
João moreira
 
sistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdfsistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdf
JoelManuel8
 
Apostila linux 3.0
Apostila linux 3.0Apostila linux 3.0
Apostila linux 3.0Maria Lopes
 
Apostila kde edu3
Apostila kde edu3Apostila kde edu3
Apostila kde edu3
Mônix Sousa
 
Manual magalhaes
Manual magalhaesManual magalhaes
Manual magalhaesviagens
 
Latex2009
Latex2009Latex2009
Latex2009
Ronaldo Brandao
 
Latex2009
Latex2009Latex2009
Latex2009
Cleiciana Sousa
 
Linux basico
Linux basicoLinux basico
Linux basico
clopes005
 
Linux
LinuxLinux
Linux
SENAC RIO
 
Enviando linux
Enviando linuxEnviando linux
Enviando linux
Jose Antonio Silva
 
Linux cursos
Linux cursosLinux cursos
Linux cursos
SENAC RIO
 
Linux basico
Linux basicoLinux basico
Linux basico
clopes005
 

Semelhante a Apple mac-osx (20)

4767121 Apostila Sobre Kde Linux Educacional Mec
4767121 Apostila Sobre Kde Linux Educacional Mec4767121 Apostila Sobre Kde Linux Educacional Mec
4767121 Apostila Sobre Kde Linux Educacional Mec
 
Kde MEC
Kde MECKde MEC
Kde MEC
 
Começando com o Linux.pdf
Começando com o Linux.pdfComeçando com o Linux.pdf
Começando com o Linux.pdf
 
Comandos
ComandosComandos
Comandos
 
Apostila
ApostilaApostila
Apostila
 
Apostila latex
Apostila latexApostila latex
Apostila latex
 
Apostila
ApostilaApostila
Apostila
 
Apostila esssa
Apostila   esssaApostila   esssa
Apostila esssa
 
sistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdfsistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdf
 
Linux
LinuxLinux
Linux
 
Apostila linux 3.0
Apostila linux 3.0Apostila linux 3.0
Apostila linux 3.0
 
Apostila kde edu3
Apostila kde edu3Apostila kde edu3
Apostila kde edu3
 
Manual magalhaes
Manual magalhaesManual magalhaes
Manual magalhaes
 
Latex2009
Latex2009Latex2009
Latex2009
 
Latex2009
Latex2009Latex2009
Latex2009
 
Linux basico
Linux basicoLinux basico
Linux basico
 
Linux
LinuxLinux
Linux
 
Enviando linux
Enviando linuxEnviando linux
Enviando linux
 
Linux cursos
Linux cursosLinux cursos
Linux cursos
 
Linux basico
Linux basicoLinux basico
Linux basico
 

Último

AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
CrislaineSouzaSantos
 
proposta curricular ou plano de cursode lingua portuguesa eja anos finais ( ...
proposta curricular  ou plano de cursode lingua portuguesa eja anos finais ( ...proposta curricular  ou plano de cursode lingua portuguesa eja anos finais ( ...
proposta curricular ou plano de cursode lingua portuguesa eja anos finais ( ...
Escola Municipal Jesus Cristo
 
HISTÓRIA DO CEARÁ MOVIMENTOS REVOLUCIONARIOS NO CEARÁ.pptx
HISTÓRIA DO CEARÁ MOVIMENTOS REVOLUCIONARIOS NO CEARÁ.pptxHISTÓRIA DO CEARÁ MOVIMENTOS REVOLUCIONARIOS NO CEARÁ.pptx
HISTÓRIA DO CEARÁ MOVIMENTOS REVOLUCIONARIOS NO CEARÁ.pptx
WALTERDECARVALHOBRAG
 
Aula01 - ensino médio - (Filosofia).pptx
Aula01 - ensino médio - (Filosofia).pptxAula01 - ensino médio - (Filosofia).pptx
Aula01 - ensino médio - (Filosofia).pptx
kdn15710
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
curso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdfcurso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdf
LeandroTelesRocha2
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
WelidaFreitas1
 
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxCIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
MariaSantos298247
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
Caça-palavras ortografia M antes de P e B.
Caça-palavras    ortografia M antes de P e B.Caça-palavras    ortografia M antes de P e B.
Caça-palavras ortografia M antes de P e B.
Mary Alvarenga
 
o que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sulo que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sul
CarlaInsStaub
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
Letícia Butterfield
 
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
IsabelPereira2010
 
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdfcurso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
LeandroTelesRocha2
 
Unificação da Itália e a formação da Alemanha
Unificação da Itália e a formação da AlemanhaUnificação da Itália e a formação da Alemanha
Unificação da Itália e a formação da Alemanha
Acrópole - História & Educação
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
jbellas2
 
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptxMÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
Martin M Flynn
 
História Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco LeiteHistória Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco Leite
profesfrancleite
 
Acróstico - Reciclar é preciso
Acróstico   -  Reciclar é preciso Acróstico   -  Reciclar é preciso
Acróstico - Reciclar é preciso
Mary Alvarenga
 
Saudações e como se apresentar em português
Saudações e como se apresentar em portuguêsSaudações e como se apresentar em português
Saudações e como se apresentar em português
jacctradutora
 

Último (20)

AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
AULA-8-PARTE-2-MODELO-DE-SITE-EDITÁVEL-ENTREGA2-CURRICULARIZAÇÃO-DA-EXTENSÃO-...
 
proposta curricular ou plano de cursode lingua portuguesa eja anos finais ( ...
proposta curricular  ou plano de cursode lingua portuguesa eja anos finais ( ...proposta curricular  ou plano de cursode lingua portuguesa eja anos finais ( ...
proposta curricular ou plano de cursode lingua portuguesa eja anos finais ( ...
 
HISTÓRIA DO CEARÁ MOVIMENTOS REVOLUCIONARIOS NO CEARÁ.pptx
HISTÓRIA DO CEARÁ MOVIMENTOS REVOLUCIONARIOS NO CEARÁ.pptxHISTÓRIA DO CEARÁ MOVIMENTOS REVOLUCIONARIOS NO CEARÁ.pptx
HISTÓRIA DO CEARÁ MOVIMENTOS REVOLUCIONARIOS NO CEARÁ.pptx
 
Aula01 - ensino médio - (Filosofia).pptx
Aula01 - ensino médio - (Filosofia).pptxAula01 - ensino médio - (Filosofia).pptx
Aula01 - ensino médio - (Filosofia).pptx
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
curso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdfcurso-de-direito-constitucional-gilmar-mendes.pdf
curso-de-direito-constitucional-gilmar-mendes.pdf
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
 
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptxCIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
CIDADANIA E PROFISSIONALIDADE 4 - PROCESSOS IDENTITÁRIOS.pptx
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
Caça-palavras ortografia M antes de P e B.
Caça-palavras    ortografia M antes de P e B.Caça-palavras    ortografia M antes de P e B.
Caça-palavras ortografia M antes de P e B.
 
o que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sulo que está acontecendo no Rio grande do Sul
o que está acontecendo no Rio grande do Sul
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
 
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
 
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdfcurso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
curso-de-direito-administrativo-celso-antonio-bandeira-de-mello_compress.pdf
 
Unificação da Itália e a formação da Alemanha
Unificação da Itália e a formação da AlemanhaUnificação da Itália e a formação da Alemanha
Unificação da Itália e a formação da Alemanha
 
Sócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slidesSócrates e os sofistas - apresentação de slides
Sócrates e os sofistas - apresentação de slides
 
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptxMÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
 
História Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco LeiteHistória Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco Leite
 
Acróstico - Reciclar é preciso
Acróstico   -  Reciclar é preciso Acróstico   -  Reciclar é preciso
Acróstico - Reciclar é preciso
 
Saudações e como se apresentar em português
Saudações e como se apresentar em portuguêsSaudações e como se apresentar em português
Saudações e como se apresentar em português
 

Apple mac-osx

  • 1. Evandro Madeira de Albuquerque Sistema Operacional Mac OSX Bras´ - DF, Brasil ılia 30 de Novembro de 2011
  • 2. Evandro Madeira de Albuquerque Sistema Operacional Mac OSX Trabalho apresentado para conclus˜o da a disciplina Sistemas Operacionais na UDF- Centro Universit´rio do Distrito Federal a Orientador: Thiago Leite ´ ¸˜ Departamento de Tecnologia da Informacao ´ UDF-Centro Universitario do Distrito Federal Bras´ - DF, Brasil ılia 30 de Novembro de 2011
  • 3. Trabalho Apresentado sob o t´ ıtulo “Sistema Operacional Mac OSX”, defendido por: • Evandro Madeira de Albuquerque Bras´ ılia, DF, 30 de Novembro de 2011
  • 4. Resumo Neste trabalho, fazemos um estudo sobre o sistema operacional da Aplle Mac OSX, faremos uma abordagem sobre as principais funcionalidades do sistema operacional como: Vers˜es do sistema, tipos de arquivos, gerenciamento de mem´ria, processos e theads, o o estruturas do kernel e interface gr´fica. a
  • 5. Dedicat´ria o Aos meus amigos da faculdade, os quais se tornaram minha segunda fam´lia nesta ci- ı dade, obrigado por compartilhar os conhecimentos adquiridos, que s´ fortalece, os ˆnamimos o a para continuar com meus objetivos. Enfim, a todos aqueles que fazem ou fizeram parte da minha vida. E por ultimo, por´m mais importante, a Deus por tudo e por todos. ´ e
  • 6. Agradecimentos Agrade¸o ao meu professor-amigo Thiago Leite, a quem a realiza¸˜o deste trabalho n˜o c ca a seria concretizada sem sua imensa colabora¸˜o, obrigado pelos conselhos, pelas orienta¸˜es ca co e pela paciˆncia, que me impulsionaram a terminar este trabalho usando a linguagem de e programa¸˜o LTEX. ca A
  • 7. Sum´rio a 1 Introdu¸˜o ca p. 8 1.1 Objetivo deste trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 9 2 Vers˜es Mac OS X o p. 10 2.1 Mac OS X v10.0 Cheetah . . . . . . . . . . . . . . . . . . . . . . . . . p. 10 2.2 Mac OS X v10.1 Puma . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 10 2.3 Mac OS X v10.2 Jaguar . . . . . . . . . . . . . . . . . . . . . . . . . . p. 10 2.4 Mac OS X v10.4 Tiger . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11 2.5 Mac OS X v10.5 Leopard . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11 2.6 Mac OS X v10.6 Snow Leopard . . . . . . . . . . . . . . . . . . . . . . p. 11 2.7 Mac OS X v10.7 Lion . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 11 3 Sistemas de arquivos p. 12 3.1 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 12 3.2 N´cleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u p. 12 3.3 Sobre o XNU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 13 3.4 Implementa¸˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ca p. 14 3.5 Sistema Monol´ ıtico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 14 3.6 Microkernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 15 3.7 kernel h´ ıbrido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 16 3.8 Funcionalidade MACH no XNU . . . . . . . . . . . . . . . . . . . . . . p. 17 3.9 Sistemas de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 18
  • 8. 3.10 Cocoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21 3.11 Carbon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 21 3.12 Java Applet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 22 3.13 OpenGl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 23 4 Gest˜o de Entrada/Sa´ a ıda p. 24 4.1 I/O Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 24 5 Gerenciamento de Mem´ria o p. 25 6 Processos e Threads p. 27 6.1 thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 27 Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 29 6.2 Bibliografia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . p. 30
  • 9. 8 1 Introdu¸˜o ca O Mac OS foi o primeiro sistema gr´fico a usar ´ a ıcones para representar os itens do com- putador. O sistema tamb´m foi pioneiro na dissemina¸ao do conceito de ”Desktop”com e c˜ ´ uma ”Area de Trabalho”com ´ıcones de documentos, pastas e uma lixeira, em analogia ao ambiente de escrit´rio.At´ a vers˜o 7.6 o sistema operacional da Apple era chamado o e a apenas de ”System”. S´ a partir da´ ele passou a ser chamado de Mac OS, que evoluiu o ı at´ sua ”vers˜o 10”. O lan¸amento oficial e completo do Mac OS X ocorreu em 24 de e a c mar¸o de 2001.[1] c Figura 1: Primeira GUI desenvolvida para Macintosh
  • 10. 1.1 Objetivo deste trabalho 9 1.1 Objetivo deste trabalho O objetivo deste trabalho ´ fazer um estudo mais detalhado Sobre a arquitetura e do sistema operacional Mac OSX da Apple computer, divulgar os resultados estudados apresentando as aplica¸oes e linguagens de programa¸ao utilizadas nesta arquitetura com- c c˜ putacional.
  • 11. 10 2 Vers˜es Mac OS X o 2.1 Mac OS X v10.0 Cheetah Mac OS X v10.0 ”Cheetah”Lan¸ado em 2001 por um pre¸o de US$129,95. Substituiu c c o Mac OS X P´blico Beta. Apresentou um novo conceito de c´digo criado completamente u o diferente do modelo do Mac OS 9 introduziu o novo n´cleo Darwin Unix-like e um sistema u totalmente novo de administra¸ao de mem´ria. c˜ o 2.2 Mac OS X v10.1 Puma Tamb´m lan¸ado em 2001 como atualiza¸ao gratuita o Mac OS X v10.1 ”Puma”foi e c c˜ a segunda vers˜o do sistema operacional Mac OS X e antecedeu ao Mac OS X v10.2 A a partir da vers˜o 10.1.2, a Apple fez do Mac OS X o sistema operacional padr˜o dos novos a a Macs Vers˜es Mac OS X o 2.3 Mac OS X v10.2 Jaguar Jaguar foi a terceira vers˜o lan¸ada em 2002 permitindo cinco instala¸oes em com- a c c˜ putadores separados. Foi bem aceito pelos usu´rios do Macintosh pelo grande avan¸o na a c estabilidade e velocidade. Jaguar foi o primeiro sistema operacional Mac OS X onde o codinome foi usado em an´ncios publicit´rios u a Mac OS X v10.3 Panther O Mac OS X v10.3 ”Panther”foi o quarto lan¸amento do c Mac OS X, foi lan¸ado em 2003 substituindo assim o jaguar. O seu custo era de US$ c 129 para uma unica licen¸a de usu´rio e US$ 199 para um pack familiar (licen¸a para 5 ´ c a c computadores).
  • 12. 2.4 Mac OS X v10.4 Tiger 11 2.4 Mac OS X v10.4 Tiger ”Tiger”foi o quinto lan¸amento do Mac OS X. lan¸ado em 2005 Alguns dos novos c c recursos incluem uma nova vers˜o do navegador Safari, Dashboard, um novo tema unifi- a cado, e suporte aperfei¸oado para uso em processadores 64 bits. O ”Tiger”foi tamb´m a c e primeira vers˜o do sistema operacional Mac OS X liberada para trabalhar com m´quinas a a Apple com arquitetura Intel. 2.5 Mac OS X v10.5 Leopard O Mac OS X v10.5 ”Leopard”´ o sexto lan¸amento da fam´ Mac OS X , foi lan¸ado e c ılia c 2007 e esteve dispon´ ıvel em duas variantes: uma vers˜o desktop, adequada para com- a putadores pessoais, e uma vers˜o para servidor, a vers˜o Mac OS X Server. De acordo a a com a Apple, O ”Leopard”contem mais de 300 altera¸˜es e melhorias, abrangendo desde co o n´cleo do sistema operacional at´ componentes inclu´ u e ıdos em aplica¸˜es e ferramentas co para desenvolvedores. 2.6 Mac OS X v10.6 Snow Leopard Em 2009, Apple e Microsoft mudaram a estrat´gia, lan¸ando novas vers˜es de seus e c o sistemas operacionais. Enquanto o Windows 7 foi lan¸ado em outubro, o Mac OS X c Snow Leopard 10.6 chegou ao mercado americano na ultima semana de agosto. Como ´ desvantagem est´ a exigˆncia do processador Intel, o que significa que n˜o roda nos antigos a e a Macs. Mas por outro lado, custa apenas US$ 30 para quem j´ possui o Leopard 10.5, o a anterior. 2.7 Mac OS X v10.7 Lion O Mac OS X v10.7 ”Lion”´ o oitavo lan¸amento da fam´ Mac OS X, sendo o sucessor e c ılia do Mac OS X v10.6 ”Snow Leopard”. Lion foi anunciado em 20 de Outubro de 2010 na conferˆncia ”Back To The Mac”e foi lan¸ado em 20 de Julho de 2011, estando dispon´ e c ıvel para download atrav´s da Mac App Store. Apple: ”Pegamos nossas melhores ideias do e Mac OS X e aplicamos no iPhone. Pegamos nossas melhores ideias do iPhone e aplicamos no iPad. Agora chegou a hora de aplicar tudo isso no Mac”[2].
  • 13. 12 3 Sistemas de arquivos 3.1 Arquitetura O Mac OS X possui uma arquitetura constru´ em torno dos principais componentes: ıda o sistema operacional central Darwin, um grupo diversificado de estruturas de aplicativo, sistemas de imagem (ou sistemas gr´ficos)[3]. a Figura 2: Arquitetura interna do Mac OS X 3.2 N´ cleo u O cora¸ao do Mac OS X ´ o kernel XNU. XNU ´ composto basicamente de um N´cleo c˜ e e u Mach, com caracter´ ısticas complementares previstos do Berkeley Software Distribution (BSD). Al´m disso, o XNU ´ respons´vel por proporcionar um ambiente de drivers do e e a kernel chamado de I / O Kit. XNU tem todo o c´digo fonte dispon´ livremente. o ıvel
  • 14. 3.3 Sobre o XNU 13 3.3 Sobre o XNU XNU foi lan¸ado como software livre no sistema operacional Darwin. XNU ´ o c e acrˆnimo de X is Not Unix. Originalmente desenvolvido pela NeXT para o NEXTS- o TEP, XNU era um n´cleo h´ u ıbrido combinando a vers˜o 2.5 do n´cleo Mach desenvolvido a u pela Universidade Carnegie Mellon com componentes do BSD 4.3 e uma API orientada a objeto para escrever drivers. Depois da aquisi¸˜o da NeXT pela Apple Computer, o Mach foi atualizado para 3.0 e ca o componente BSD foi atualizado usando c´digo do projeto FreeBSD, e a API orientada o a objeto foi substitu´ por outra em C++ chamada de I/O Kit. ıda Observe que no XNU fica as bibliotecas de drives e as APIs de programa¸ao, uma c˜ aten¸ao especial deve ser dada para o item NKE (network kernel extensions (NKEs). c˜ NKE permite criar m´dulos de rede e pilhas de protocolo podem ser carregados dinami- o camente no kernel e descarregados a partir dele. NKEs tamb´m torna poss´ configurar e ıvel automaticamente pilhas de protocolo.[4] Figura 2: Representa¸ao do XNU no Mach c˜ Figura 3: Filtros de soquete na pilha de rede
  • 15. 3.4 Implementa¸˜o ca 14 3.4 Implementa¸˜o ca Diferentemente de muitos SOs o MAC OS X n˜o foi planejado e implementado a a partir do zero, ele foi desenvolvido a partir da combina¸ao de v´rios outros SOs. Ele ´ um c˜ a e Kernel h´ ıbrido com caracter´ ısticas de microkernel e monol´ ıtica, buscando tirar proveito das vantagens de cada tecnologia. 3.5 Sistema Monol´ ıtico A organiza¸˜o mais comum ´ aquela que estrutura o sistema como um conjunto de ca e rotinas que podem interagir livremente umas com as outras. Pode ser comparada com uma aplica¸˜o formada por v´rios procedimentos que s˜o compilados separadamente e ca a a depois linkados, formando um grande e unico programa execut´vel. Vantagen: Grande ´ a desempenho Desvantagens: Uma falha pode paralisar o todo o n´cleo[5]. u Figura 4: Representa¸ao de um kernel monol´ c˜ ıtico
  • 16. 3.6 Microkernel 15 3.6 Microkernel Uma tendˆncia dos sistemas operacionais ´ tornar o n´cleo menor e mais simples e e u poss´ e para implementar esta id´ia o sistema ´ dividido em processos. Desta forma, ıvel e e sempre que uma aplica¸ao deseja algum servi¸o ela solicita ao processo respons´vel, assim, c˜ c a a aplica¸˜o que solicita um servi¸o ´ chamada de cliente e o processo que responde a ca c e solicita¸ao ´ chamado de servidor[6]. c˜ e Figura 5: Representa¸ao de um Microkernel c˜
  • 17. 3.7 kernel h´ ıbrido 16 3.7 kernel h´ ıbrido Como vimos, o XNU ´ um kernel h´ e ıbrido porque ele inclui muitas das fun¸oes do c˜ BSD (que roda como um servidor) ao pr´prio kernel. Isso ´ feito porque um microkernel o e geralmente ´ muito lento. Isso porque toda chamada de uma aplica¸ao de usu´rio requer e c˜ a que a mensagem seja enviada ao kernel (uma opera¸˜o custosa chamada mudan¸a de ca c contexto), que ent˜o seria enviada a biblioteca Unix com outra mudan¸a de contexto. a ` c Essa opera¸˜o seria ainda repetida para todas as respostas. ca N´cleo h´ u ıbrido define um n´cleo baseado em micron´cleo no qual m´dulos externos u u o a ele podem executar opera¸˜es em modo protegido, a fim de evitar trocas de contexto co e melhorar o desempenho geral do sistema.Por´m sendo h´ e ıbrido, tem a capacidade de agregar ou desagregar funcionalidades, sem perder performance ou estabilidade presentes na sua estrutura inicial, proporcionais a sua organiza¸ao[7]. c˜ Figura 6: Representa¸ao de um kernel h´ c˜ ıbrido
  • 18. 3.8 Funcionalidade MACH no XNU 17 3.8 Funcionalidade MACH no XNU O componente Mach do XNU ´ baseado na vers˜o 3.0 do Mach, mas n˜o ´ usado e a a e como um microkernel. O Mach ´ um subsistema de parte do kernel como tamb´m s˜o e e a v´rios outros subsistemas que s˜o tipicamente implementados nos sistemas microkernel. a a O Mach do XNU ´ respons´vel por v´rios aspectos de baixo n´ do sistema, tais como: e a a ıvel • Prote¸ao de mem´ria; c˜ o • Gerenciamento de mem´ria virtual; o • Comunica¸˜o inter-processos; ca • Gerenciamento de interrup¸ao; c˜ • Suporte real-time; • Console I/O • Multitarefa preemptiva, incluindo threads de kernel; • Suporte a depura¸˜o do kernel. ca
  • 19. 3.9 Sistemas de arquivos 18 3.9 Sistemas de arquivos • HFS+ ou HFS Plus • UFS (Unix file system) • NFS (Network File System) HFS- (Hierarchical File System), e um sistema de arquivos desenvolvido pela Apple Computer para uso em computadores rodando o Mac OS. Originalmente projetado para uso em floppy e discos rigidos, ele tambem pode ser encontrado em suporte read-only como CD-ROMs. no Mac OSX, os arquivos s˜o gerenciados em um sistema de arquivos a hier´rquico . O sistema hier´rquico representa uma ´rvore de cabe¸a para baixo. No Mac a a a c OSX, o diret´rio raiz ´ o disco r´ o e ıgido. O disco r´ ıgido ´ organizado por pastas, subpastas e e arquivos[8]. Figura 7: Arvore hier´rquica HFS a
  • 20. 3.9 Sistemas de arquivos 19 UFS-(Unix file system) O sistema de arquivos UFS ´ hier´rquico, distribuindo os e a v´rios arquivos em uma ´rvore de diret´rios. A base desta ´rvore ´ um diret´rio chamado a a o a e o diret´rio raiz, que possui o nome especial de ”/”(o caractere barra). Enquanto outros o sistemas operacionais consideram discos individualmente, cada um possuindo seu diret´rio o raiz, arquivos e subdiret´rios, o UFS considera todos os dispositivos, discos, arquivos e o diret´rios como um todo, alocando-os na mesma ´rvore do sistema de arquivos. Assim, o a o usu´rio n˜o precisa especificar o disco ou dispositivo onde est´ um arquivo, somente o a a a diret´rio onde ele est´ armazenado. O pr´prio sistema operacional se encarrega de mapear o a o o acesso ao disco ou dispositivo correspondente[9]. Figura 8: Arvore hier´rquica UFS a
  • 21. 3.9 Sistemas de arquivos 20 NFS-(Network File System) ´ um protocolo de rede do sistema de arquivos ori- e ginalmente desenvolvido pela Sun Microsystems. Seu principal uso ´ um cliente-servidor e do sistema de arquivos distribu´ ıdos. NFS est´ dispon´ para uma ampla gama de sis- a ıvel temas heterogˆneos, incluindo UNIX, Linux, Mac OSX e Windows da Microsoft, Novell e Netware e OpenVMS. A partir de NFSv4.1 o protocolo adicionado Parallel NFS (pNFS) para dados paralelismo de acesso. Isso efetivamente fornece a op¸ao de separar o sistema c˜ de arquivos de meta-dados a partir da localiza¸ao do arquivo de dados. c˜ No NFS se pode montar um peda¸o do sistema de arquivos distribu´ em algum di- c ıdo ret´rio do sistema de arquivos local do cliente, de modo que a nomenclatura dos diret´rios o o provenientes do NFS segue o mesmo padr˜o do sistema de arquivos local. Portanto o NFS a provˆ transparˆncia no acesso, pois se o servidor onde os dados se encontram mudar de e e lugar, o cliente n˜o precisa saber dessa mudan¸a para continuar a usar o NFS[10]. a c Figura 9: NFS monta peda¸os de arquivos c Figura 10: Algoritimo de reinicializa¸ao do servi¸o de rede c˜ c
  • 22. 3.10 Cocoa 21 3.10 Cocoa Cocoa ´ uma API, ou seja, uma interface de programa¸ao de aplicativos para computa- e c˜ dores da Apple e seu sistema operacional Mac OS X. Cocoa ´ a linguagem de programa¸˜o e ca nativa do MAC OS, e para se fazer aplica¸oes em Cocoa ´ necess´rio ter o conhecimento c˜ e a da linguagem C Orientada a Objeto[11]. Figura 11: Exemplo de c´digo feito em cocoa o O c´digo acima imprime uma mensagem de Apple Mac OSX artigo o 3.11 Carbon O Carbon ´ um conjunto de APIS que permite que os usu´rios fa¸am aplicativos em e a c C e C++. A transi¸ao para aplica¸˜es de 64 bits Macintosh come¸ando com Mac OS X c˜ co c v10.5, lan¸ado 26 de outubro de 2007, trouxe as limita¸oes para o Carbono. A Apple n˜o c c˜ a fornece compatibilidade entre a interface de usu´rio gr´fica do Macintosh e a linguagem a a de programa¸ao C no ambiente de 64 bits, em vem exigindo o uso do dialeto Objective-C c˜ com a API Cocoa. Apesar de Objective-C poder oferecer vantagens significativas para c´digo j´ escritos para o a tirar vantagem de sua filosofia orientada a objetos, a necessidade de reescrever grandes quantidades de c´digo legado retardou a transi¸ao de aplica¸oes a base de carbono, famosa o c˜ c˜ ` como o Adobe Photoshop, que acabou por ser atualizado para Cocoa, em abril de 2010[12].
  • 23. 3.12 Java Applet 22 3.12 Java Applet O MAC OS X tem suporte para a linguagem de programa¸˜o Java assim todos os ca usu´rios conseguem fazer aplica¸oes em Java[13]. a c˜ Figura 12: C´digo utilizando a classe java.Applet o Figura 13: Mensagem da classe java.awt.Graphics
  • 24. 3.13 OpenGl 23 3.13 OpenGl Open GL permite que jogos e aplicativos que exijam gr´ficos pesados, rodem com a melhor desempenho no sistema. Isso tudo afiliado com o Darwin, melhora a performance do Open GL, transformando o Mac num dos melhores computadores para jogos 3D e cria¸ao de imagens pesadas. c˜ Figura 14: Estrura do OpenGL Figura 15: Anima¸˜o usando OpenGL ca Usando o Core Animation, QuickTime Player fornece uma interface limpa e organi- zada, com controles que simplesmente desaparecem
  • 25. 24 4 Gest˜o de Entrada/Sa´ a ıda 4.1 I/O Kit O I/O Kit ´ uma cole¸ao de frameworks, bibliotecas, ferramentas e outros recursos e c˜ para cria¸˜o de drivers de dispositivos no Mac OS X totalmente orientada a objetos e ca baseada numa implementa¸ao de C++ esse kit oferece: c˜ • Configura¸ao autom´tica e dinˆmica. (Plug and play); c˜ a a • Novos tipos de dispositivos, como acelera¸ao gr´fica e de multim´ c˜ a ıdia. O gr´fico a seguir apresenta a hierarquia de todas as classes I / O Kit que s˜o mem- a a bros desta fam´ ılia. Veja as Referˆncia da Fam´ I / O Kit para mais detalhes[15]. e ılia Figura 16: Classes do I/O Kit
  • 26. 25 5 Gerenciamento de Mem´ria o Uma das grandes novidades neste novo sistema operacional, ´ o esquema de mem´ria e o protegida, que ´ respons´vel por manter a integridade dos dados, ou seja, evitar que e a eles sejam perdidos ou corrompidos. Com isso, o sistema alocar´ um unico espa¸o a ´ c na mem´ria para cada programa aberto, e o programa n˜o poder´ interferir no o a a espa¸o de outros, pois isso pode causar grandes problemas, como travamento do c computador e conseq¨entemente, perda dos dados. Se um programa apresentar um u problema desse tipo, o Darwin simplesmente fecha esse programa, permitindo que vocˆ continue seu trabalho nos outros programas abertos. e – Cada processo tem seu pr´prio conjunto (32 bits ou 64 bits) de espa¸o de o c endere¸o virtual. Para processos de 32 bits, cada processo tem um espa¸o que c c pode endere¸ar dinamicamente chegando ao limite de 4GB. Para processos de c 64 bits, pode endere¸ar at´ o limite de 18 exabytes. c e
  • 27. 5 Gerenciamento de Mem´ria o 26 Figura 17: Exemplo de c´digo para gerencia de mem´ria o o O c´digo acima cria e usa v´rios objetos, uma poll autorelease para gerencia- o a mento de mem´ria, uma cole¸ao de objetos (conjunto de matrizes) para ”uni- o c˜ quing”classificando as palavras especificadas, e um objeto enumerador para itera- gir atrav´s dos elementos da matriz e imprimi-los na sa´ padr˜o. e ıda a Uniquing Garante um Objeto Gerenciado por registro de Contexto que em um determinado objeto gerenciado uma entrada em um armazenamento persistente ´ associado com apenas um objeto gerenciado. Esta t´cnica ´ conhecida e e e como uniquing. Sem o uniquing, vocˆ podia acabar com um contexto para mais e de um objeto para representar um determinado registro.
  • 28. 27 6 Processos e Threads 6.1 thread Uma thread ´ um contexto da execu¸ao dentro de um processo, ela ´ associada com e c˜ e uma pilha de chamada e um estado do processador. Uma thread compartilha do espa¸o de endere¸o virtual e de outros recursos com outras threads do processo. As c c threads s˜o programadas para funcionar preemptivamente ou, com multiprocessa- a mento sim´trico, concorrentemente. e Cada processo (aplica¸ao) no Mac OS X ´ composto de um ou mais threads, cada c˜ e uma delas representa um unico caminho de execu¸˜o atrav´s do c´digo do aplicativo. ´ ca e o Cada aplicativo ´ iniciado com um unico segmento, que executa a fun¸˜o principal e ´ ca do aplicativo. Aplica¸oes pode gerar t´picos adicionais, cada um dos quais executa c˜ o o c´digo de uma fun¸˜o espec´ o ca ıfica. Quando um aplicativo gera um novo segmento, esse segmento se torna uma enti- dade independente dentro do espa¸o do aplicativo e processo. Cada segmento tem c sua pr´pria pilha de execu¸˜o e est´ prevista para tempo de execu¸˜o separada- o ca a ca mente pelo kernel. Um segmento pode se comunicar com outros segmentos e outros processos, podem realizar outras opera¸oes de I / O, e fazer qualquer outra coisa c˜ que vocˆ pode precisar fazer. Porque eles est˜o dentro do mesmo espa¸o de processo. e a c
  • 29. 6.1 thread 28 Usando Threads POSIX O Mac OS X e fornece suporte baseado em C para criar threads usando o POSIX THREAD API. essa tecnologia pode realmente ser usada em qualquer tipo de aplica¸ao (incluindo Cocoa e aplica¸oes Cocoa Touch) c˜ c˜ e pode ser mais conveniente se vocˆ estiver escrevendo o seu software para m´ltiplas e u plataformas. A figura abaixo mostra duas fun¸˜es personalizadas para criar uma thread usando co chamadas POSIX. A fun¸ao LaunchThread cria um novo segmento, cuja principal c˜ rotina ´ implementado na fun¸ao PosixThreadMainRoutine[17]. e c˜ Figura 18: Cria Threads Usando POSIX
  • 30. 6.1 Loop 29 Loop UM Loop de execu¸ao recebe eventos de dois tipos diferentes de dados, entrada e c˜ sa´ de eventos ass´ ıda ıncronos, geralmente mensagens de outro segmento ou de uma aplica¸ao diferente. Dados de temporizador, sa´ de eventos s´ c˜ ıda ıncronos; executando de forma agendado, ou em um intervalo de tempo programado[18]. Figura 19: Estrutura de um loop de um c´digo em execu¸˜o o ca A figura acima mostra a estrutura conceitual de um loop de execu¸˜o e uma varie- ca dade de eventos. Os dados de entrada proporciona a execu¸ao de eventos ass´ c˜ ıncronos para os manipuladores correspondente e faz com que, o (runUntilDate) m´todo e chamado no objeto do thread saia do temporizador e entregue seus eventos para as rotinas do manipulador.
  • 31. 6.2 Bibliografia 30 6.2 Bibliografia [1]Primeira GUI desenvolvida para Macintosh. Dispon´ em: ıvel http://www.judsonmaria.net/index.php/geral/a-evolucao-dos-sistemas-operacionais Acessado em 30/11/2011. [2]Vers˜es Mac OS X. Dispon´ em: o ıvel http://pt.wikipedia.org/wiki/versoe Acessado em 30/11/2011. [3]Arquitetura interna do Mac OS X. Dispon´ em: ıvel http://pt.wikipedia.org/wiki/Mac OS X Acessado em 30/11/2011. [4]Filtros de soquete na pilha de rede. Dispon´ em: ıvel http://http://developer.apple.com/library/mac/documentation/MacOSX/ Conceptual/OSXT echnologyO verview/SystemT echnology/SystemT echnology.html Acessadoem30/11/2011. [5]Representa¸˜o de um kernel monol´ ca ıtico. Dispon´ em: ıvel http://pt.wikipedia.org/wiki/kernel monolitico Acessado em 30/11/2011. [6]Representa¸˜o de um Microkernel. Dispon´ em: ca ıvel http://wiki.osdev.org/Micro kernel Acessado em 30/11/2011. [7]Representa¸˜o de um kernel h´ ca ıbrido. Dispon´ em: ıvel http://pt.wikipedia.org/wiki/Nucleo hibrido Acessado em 30/11/2011. [8]Arvore hier´rquica HFS. Dispon´ em: a ıvel http://academic.stedwards.edu/competency/module1/lesson6/filemgtstructuremac.htm Acessado em 30/11/2011. [9]Arvore hier´rquica UFS. Dispon´ em: a ıvel http://www cefet-to.org Acessado em 30/11/2011. [10]Network File System. Dispon´ em: ıvel http://www.linuxfocus.org/English/November2000/article164.shtml Acessado em 30/11/2011.
  • 32. 6.2 Bibliografia 31 [11]Cocoa. Dispon´ em: ıvel http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ CocoaFundamentals/CocoaObjects/CocoaObjects.html Acessado em 30/11/2011. [12]Carbon. Dispon´ em: ıvel http://en.wikipedia.org/wiki/carbon Acessado em 30/11/2011. [13]Java Applet. Dispon´ em: ıvel http://www.java-examples.com/hello-world-applet-example Acessado em 30/11/2011. [14]OpenGlt. Dispon´ em: ıvel http://developer.apple.com/library/mac/documentation/GraphicsImaging/ Conceptual/OpenGL-MacProgGuide/opengli ntro/opengli ntro.html Acessadoem30/11/2011. [15]I/O Kit. Dispon´ em: ıvel http://developer.apple.com/library/mac/documentation/devicedrivers/Conceptual/ IOKitFundamentals/HelperClassesChart/HelperClassesChart.html Acessado em 30/11/2011. [16]Gerenciamento de Mem´ria. Dispon´ em: o ıvel http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/ CreatingThreads/CreatingThreads.html Acessado em 30/11/2011. [17]Usando Threads POSIX. Dispon´ em: ıvel http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/ CreatingThreads/CreatingThreads.html Acessado em 30/11/2011. [17]Estrutura de um loop. Dispon´ em: ıvel http://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Multithreading/ RunLoopManagement/RunLoopManagement.html Acessado em 30/11/2011.